X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=mathlib.h;h=30d5b1d7f4c93d3c98939015ef318bfe2c3b353a;hb=124eb6e58f2e96ee0d10da77045c4ec5a45e811b;hp=880c51f6c5cf92217119dab64f47f8d4deedb73c;hpb=ed88ce2b8cbe4beefc930eca3f773997d649e23c;p=xonotic%2Fdarkplaces.git diff --git a/mathlib.h b/mathlib.h index 880c51f6..30d5b1d7 100644 --- a/mathlib.h +++ b/mathlib.h @@ -96,6 +96,7 @@ extern vec3_t vec3_origin; } #define VectorRandom(v) do{(v)[0] = lhrandom(-1, 1);(v)[1] = lhrandom(-1, 1);(v)[2] = lhrandom(-1, 1);}while(DotProduct(v, v) > 1) #define VectorLerp(v1,lerp,v2,c) ((c)[0] = (v1)[0] + (lerp) * ((v2)[0] - (v1)[0]), (c)[1] = (v1)[1] + (lerp) * ((v2)[1] - (v1)[1]), (c)[2] = (v1)[2] + (lerp) * ((v2)[2] - (v1)[2])) +#define VectorReflect(a,r,b,c) do{double d;d = DotProduct((a), (b)) * -(1.0 + (r));VectorMA((a), (d), (b), (c));}while(0) #define BoxesOverlap(a,b,c,d) ((a)[0] <= (d)[0] && (b)[0] >= (c)[0] && (a)[1] <= (d)[1] && (b)[1] >= (c)[1] && (a)[2] <= (d)[2] && (b)[2] >= (c)[2]) #define TriangleNormal(a,b,c,n) ((n)[0] = ((a)[1] - (b)[1]) * ((c)[2] - (b)[2]) - ((a)[2] - (b)[2]) * ((c)[1] - (b)[1]), (n)[1] = ((a)[2] - (b)[2]) * ((c)[0] - (b)[0]) - ((a)[0] - (b)[0]) * ((c)[2] - (b)[2]), (n)[2] = ((a)[0] - (b)[0]) * ((c)[1] - (b)[1]) - ((a)[1] - (b)[1]) * ((c)[0] - (b)[0])) @@ -236,5 +237,7 @@ struct matrix4x4_s; void Matrix4x4_Print(const struct matrix4x4_s *in); int Math_atov(const char *s, vec3_t out); +void BoxFromPoints(vec3_t mins, vec3_t maxs, int numpoints, vec_t *point3f); + #endif