Improved solid selection stability
[convexer.git] / src / cxr_math.h
index 5f1bfc2fb3d32e3efa47832712ab3884955a81a0..17c9902b390e3539a8a46af711f4d601727288a8 100644 (file)
@@ -38,6 +38,11 @@ CXR_INLINE void v2_zero( v2f a )
    a[0] = 0.0; a[1] = 0.0;
 }
 
+CXR_INLINE void v2_fill( v2f a, double v )
+{
+   a[0] = v; a[1] = v;
+}
+
 CXR_INLINE void v2_copy( v2f a, v2f b )
 {
        b[0] = a[0]; b[1] = a[1];
@@ -571,3 +576,12 @@ CXR_INLINE double plane_polarity( double p[4], double a[3] )
        -(p[0]*p[3] * p[0] + p[1]*p[3] * p[1] + p[2]*p[3] * p[2])
        ;
 }
+
+CXR_INLINE void plane_project_point( v4f plane, v3f a, v3f d )
+{
+   v3f ref, delta;
+   v3_muls( plane, plane[3], ref );
+
+   v3_sub( a, ref, delta );
+   v3_muladds( a, plane, -v3_dot(delta,plane), d );
+}