VectorClear(n); // FIXME: complain?
}
-float Q_RSqrt(float number)
-{
- float y;
-
- if (number == 0.0f)
- return 0.0f;
-
- *((int *)&y) = 0x5f3759df - ((* (int *) &number) >> 1);
- return y * (1.5f - (number * 0.5f * y * y));
-}
-
// assumes "src" is normalized
void PerpendicularVector( vec3_t dst, const vec3_t src )
{
d = DotProduct(forward, right);
VectorMA(right, -d, forward, right);
- VectorNormalizeFast(right);
+ VectorNormalize(right);
CrossProduct(right, forward, up);
}
case 5: outnear[0] = emins[0];outnear[1] = emaxs[1];outnear[2] = emins[2];outfar[0] = emaxs[0];outfar[1] = emins[1];outfar[2] = emaxs[2];break;
case 6: outnear[0] = emaxs[0];outnear[1] = emins[1];outnear[2] = emins[2];outfar[0] = emins[0];outfar[1] = emaxs[1];outfar[2] = emaxs[2];break;
case 7: outnear[0] = emins[0];outnear[1] = emins[1];outnear[2] = emins[2];outfar[0] = emaxs[0];outfar[1] = emaxs[1];outfar[2] = emaxs[2];break;
- }
+ }
}
void BoxPlaneCorners_Separate(const vec3_t emins, const vec3_t emaxs, const vec3_t normal, vec3_t outnear, vec3_t outfar)
case 5: outnear[0] = emins[0];outnear[1] = emaxs[1];outnear[2] = emins[2];outfar[0] = emaxs[0];outfar[1] = emins[1];outfar[2] = emaxs[2];break;
case 6: outnear[0] = emaxs[0];outnear[1] = emins[1];outnear[2] = emins[2];outfar[0] = emins[0];outfar[1] = emaxs[1];outfar[2] = emaxs[2];break;
case 7: outnear[0] = emins[0];outnear[1] = emins[1];outnear[2] = emins[2];outfar[0] = emaxs[0];outfar[1] = emaxs[1];outfar[2] = emaxs[2];break;
- }
+ }
}
void BoxPlaneCornerDistances(const vec3_t emins, const vec3_t emaxs, const mplane_t *p, vec_t *outneardist, vec_t *outfardist)
return i;
}
+void BoxFromPoints(vec3_t mins, vec3_t maxs, int numpoints, vec_t *point3f)
+{
+ int i;
+ VectorCopy(point3f, mins);
+ VectorCopy(point3f, maxs);
+ for (i = 1, point3f += 3;i < numpoints;i++, point3f += 3)
+ {
+ mins[0] = min(mins[0], point3f[0]);maxs[0] = max(maxs[0], point3f[0]);
+ mins[1] = min(mins[1], point3f[1]);maxs[1] = max(maxs[1], point3f[1]);
+ mins[2] = min(mins[2], point3f[2]);maxs[2] = max(maxs[2], point3f[2]);
+ }
+}
+