@@ -30,7 +30,7 @@ float64 double DVec2 DVec3 DVec4 DMat3 DMat4 DQuat
3030
3131]##
3232
33- import
33+ import
3434 std/ [macros, math, strutils]
3535export math except isNan
3636
@@ -853,6 +853,15 @@ proc min*(a, b: Vec3): Vec3 =
853853proc min * (a, b: Vec4 ): Vec4 =
854854 vec4 (min (a.x, b.x), min (a.y, b.y), min (a.z, b.z), min (a.w, b.w))
855855
856+ proc min * (a: Vec2 , b: float32 ): Vec2 =
857+ vec2 (min (a.x, b), min (a.y, b))
858+
859+ proc min * (a: Vec3 , b: float32 ): Vec3 =
860+ vec3 (min (a.x, b), min (a.y, b), min (a.z, b))
861+
862+ proc min * (a: Vec4 , b: float32 ): Vec4 =
863+ vec4 (min (a.x, b), min (a.y, b), min (a.z, b), min (a.w, b))
864+
856865proc max * (a, b: Vec2 ): Vec2 =
857866 vec2 (max (a.x, b.x), max (a.y, b.y))
858867
@@ -862,6 +871,33 @@ proc max*(a, b: Vec3): Vec3 =
862871proc max * (a, b: Vec4 ): Vec4 =
863872 vec4 (max (a.x, b.x), max (a.y, b.y), max (a.z, b.z), max (a.w, b.w))
864873
874+ proc max * (a: Vec2 , b: float32 ): Vec2 =
875+ vec2 (max (a.x, b), max (a.y, b))
876+
877+ proc max * (a: Vec3 , b: float32 ): Vec3 =
878+ vec3 (max (a.x, b), max (a.y, b), max (a.z, b))
879+
880+ proc max * (a: Vec4 , b: float32 ): Vec4 =
881+ vec4 (max (a.x, b), max (a.y, b), max (a.z, b), max (a.w, b))
882+
883+ proc clamp * (v, min, max: Vec2 ): Vec2 =
884+ vec2 (clamp (v.x, min.x, max.x), clamp (v.y, min.y, max.y))
885+
886+ proc clamp * (v, min, max: Vec3 ): Vec3 =
887+ vec3 (clamp (v.x, min.x, max.x), clamp (v.y, min.y, max.y), clamp (v.z, min.z, max.z))
888+
889+ proc clamp * (v, min, max: Vec4 ): Vec4 =
890+ vec4 (clamp (v.x, min.x, max.x), clamp (v.y, min.y, max.y), clamp (v.z, min.z, max.z), clamp (v.w, min.w, max.w))
891+
892+ proc clamp * (v: Vec2 , min, max: float32 ): Vec2 =
893+ vec2 (clamp (v.x, min, max), clamp (v.y, min, max))
894+
895+ proc clamp * (v: Vec3 , min, max: float32 ): Vec3 =
896+ vec3 (clamp (v.x, min, max), clamp (v.y, min, max), clamp (v.z, min, max))
897+
898+ proc clamp * (v: Vec4 , min, max: float32 ): Vec4 =
899+ vec4 (clamp (v.x, min, max), clamp (v.y, min, max), clamp (v.z, min, max), clamp (v.w, min, max))
900+
865901type
866902 Mat2 * = GMat2 [float32 ]
867903 Mat3 * = GMat3 [float32 ]
0 commit comments