X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=src%2Fcxr_math.h;h=17c9902b390e3539a8a46af711f4d601727288a8;hb=4b19eaf2f9c56078172b3979e856da7abf372e91;hp=5f1bfc2fb3d32e3efa47832712ab3884955a81a0;hpb=6c3271c6e76e1e3d3b0a5ab6ea466827832d3046;p=convexer.git diff --git a/src/cxr_math.h b/src/cxr_math.h index 5f1bfc2..17c9902 100644 --- a/src/cxr_math.h +++ b/src/cxr_math.h @@ -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 ); +}