X-Git-Url: https://harrygodden.com/git/?p=csRadar.git;a=blobdiff_plain;f=csrMath.h;h=c14234fe6f9da4a44d0278b8cfff498ffc2be8a9;hp=fae268daf0e2bf3e09784cec494018698b1aba5a;hb=a53095e1511fecb8cc83c692e7ce7b23852fff16;hpb=b95752d31a7b1e224b227093f13a72d8c2b7f34b diff --git a/csrMath.h b/csrMath.h index fae268d..c14234f 100644 --- a/csrMath.h +++ b/csrMath.h @@ -63,9 +63,29 @@ void v2_maxv( v2f a, v2f b, v2f dest ) dest[1] = csr_maxf(a[1], b[1]); } +void v2_sub( v2f a, v2f b, v2f d ) +{ + d[0] = a[0]-b[0]; d[1] = a[1]-b[1]; +} + +float v2_cross( v2f a, v2f b ) +{ + return a[0] * b[1] - a[1] * b[0]; +} + +void v2_add( v2f a, v2f b, v2f d ) +{ + d[0] = a[0]+b[0]; d[1] = a[1]+b[1]; +} + // Vector 3 // ================================================================================================================== +void v3_zero( v3f a ) +{ + a[0] = 0.f; a[1] = 0.f; a[2] = 0.f; +} + void v3_copy( v3f a, v3f b ) { b[0] = a[0]; b[1] = a[1]; b[2] = a[2]; @@ -388,6 +408,8 @@ void m4x3_transform_aabb( m4x3f m, boxf box ) v3_copy( box[0], a ); v3_copy( box[1], b ); + v3_fill( box[0], INFINITY ); + v3_fill( box[1], -INFINITY ); m4x3_expand_aabb_point( m, box, a ); m4x3_expand_aabb_point( m, box, (v3f){ a[0], b[1], a[2] } ); @@ -491,7 +513,7 @@ int csr_slabs( v3f box[2], v3f o, v3f id ) float csr_ray_tri( v3f o, v3f d, v3f v0, v3f v1, v3f v2, float *u, float *v ) { - float const k_cullEpsilon = 0.0001f; + float const k_cullEpsilon = 0.000001f; v3f v0v1; v3f v0v2;