Jolt Physics
A multi core friendly Game Physics Engine
|
#include <Jolt/Geometry/OrientedBox.h>
Go to the source code of this file.
Functions | |
JPH_NAMESPACE_BEGIN JPH_INLINE UVec4 | AABox4VsBox (const AABox &inBox1, Vec4Arg inBox2MinX, Vec4Arg inBox2MinY, Vec4Arg inBox2MinZ, Vec4Arg inBox2MaxX, Vec4Arg inBox2MaxY, Vec4Arg inBox2MaxZ) |
JPH_INLINE void | AABox4Scale (Vec3Arg inScale, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ, Vec4 &outBoundsMinX, Vec4 &outBoundsMinY, Vec4 &outBoundsMinZ, Vec4 &outBoundsMaxX, Vec4 &outBoundsMaxY, Vec4 &outBoundsMaxZ) |
Scale 4 axis aligned boxes. More... | |
JPH_INLINE void | AABox4EnlargeWithExtent (Vec3Arg inExtent, Vec4 &ioBoundsMinX, Vec4 &ioBoundsMinY, Vec4 &ioBoundsMinZ, Vec4 &ioBoundsMaxX, Vec4 &ioBoundsMaxY, Vec4 &ioBoundsMaxZ) |
Enlarge 4 bounding boxes with extent (add to both sides) More... | |
JPH_INLINE UVec4 | AABox4VsPoint (Vec3Arg inPoint, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ) |
Test if 4 bounding boxes overlap with a point. More... | |
JPH_INLINE UVec4 | AABox4VsBox (Mat44Arg inOrientation, Vec3Arg inHalfExtents, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ, float inEpsilon=1.0e-6f) |
Test if 4 bounding boxes overlap with an oriented box. More... | |
JPH_INLINE UVec4 | AABox4VsBox (const OrientedBox &inBox, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ, float inEpsilon=1.0e-6f) |
Convenience function that tests 4 AABoxes vs OrientedBox. More... | |
JPH_INLINE Vec4 | AABox4DistanceSqToPoint (Vec4Arg inPointX, Vec4Arg inPointY, Vec4Arg inPointZ, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ) |
Get the squared distance between 4 AABoxes and a point. More... | |
JPH_INLINE Vec4 | AABox4DistanceSqToPoint (Vec3 inPoint, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ) |
Get the squared distance between 4 AABoxes and a point. More... | |
JPH_INLINE UVec4 | AABox4VsSphere (Vec4Arg inCenterX, Vec4Arg inCenterY, Vec4Arg inCenterZ, Vec4Arg inRadiusSq, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ) |
Test 4 AABoxes vs a sphere. More... | |
JPH_INLINE UVec4 | AABox4VsSphere (Vec3Arg inCenter, float inRadiusSq, Vec4Arg inBoxMinX, Vec4Arg inBoxMinY, Vec4Arg inBoxMinZ, Vec4Arg inBoxMaxX, Vec4Arg inBoxMaxY, Vec4Arg inBoxMaxZ) |
Test 4 AABoxes vs a sphere. More... | |
JPH_INLINE Vec4 AABox4DistanceSqToPoint | ( | Vec3 | inPoint, |
Vec4Arg | inBoxMinX, | ||
Vec4Arg | inBoxMinY, | ||
Vec4Arg | inBoxMinZ, | ||
Vec4Arg | inBoxMaxX, | ||
Vec4Arg | inBoxMaxY, | ||
Vec4Arg | inBoxMaxZ | ||
) |
Get the squared distance between 4 AABoxes and a point.
JPH_INLINE Vec4 AABox4DistanceSqToPoint | ( | Vec4Arg | inPointX, |
Vec4Arg | inPointY, | ||
Vec4Arg | inPointZ, | ||
Vec4Arg | inBoxMinX, | ||
Vec4Arg | inBoxMinY, | ||
Vec4Arg | inBoxMinZ, | ||
Vec4Arg | inBoxMaxX, | ||
Vec4Arg | inBoxMaxY, | ||
Vec4Arg | inBoxMaxZ | ||
) |
Get the squared distance between 4 AABoxes and a point.
JPH_INLINE void AABox4EnlargeWithExtent | ( | Vec3Arg | inExtent, |
Vec4 & | ioBoundsMinX, | ||
Vec4 & | ioBoundsMinY, | ||
Vec4 & | ioBoundsMinZ, | ||
Vec4 & | ioBoundsMaxX, | ||
Vec4 & | ioBoundsMaxY, | ||
Vec4 & | ioBoundsMaxZ | ||
) |
Enlarge 4 bounding boxes with extent (add to both sides)
JPH_INLINE void AABox4Scale | ( | Vec3Arg | inScale, |
Vec4Arg | inBoxMinX, | ||
Vec4Arg | inBoxMinY, | ||
Vec4Arg | inBoxMinZ, | ||
Vec4Arg | inBoxMaxX, | ||
Vec4Arg | inBoxMaxY, | ||
Vec4Arg | inBoxMaxZ, | ||
Vec4 & | outBoundsMinX, | ||
Vec4 & | outBoundsMinY, | ||
Vec4 & | outBoundsMinZ, | ||
Vec4 & | outBoundsMaxX, | ||
Vec4 & | outBoundsMaxY, | ||
Vec4 & | outBoundsMaxZ | ||
) |
Scale 4 axis aligned boxes.
JPH_NAMESPACE_BEGIN JPH_INLINE UVec4 AABox4VsBox | ( | const AABox & | inBox1, |
Vec4Arg | inBox2MinX, | ||
Vec4Arg | inBox2MinY, | ||
Vec4Arg | inBox2MinZ, | ||
Vec4Arg | inBox2MaxX, | ||
Vec4Arg | inBox2MaxY, | ||
Vec4Arg | inBox2MaxZ | ||
) |
Helper functions that process 4 axis aligned boxes at the same time using SIMD Test if 4 bounding boxes overlap with 1 bounding box, splat 1 box
JPH_INLINE UVec4 AABox4VsBox | ( | const OrientedBox & | inBox, |
Vec4Arg | inBoxMinX, | ||
Vec4Arg | inBoxMinY, | ||
Vec4Arg | inBoxMinZ, | ||
Vec4Arg | inBoxMaxX, | ||
Vec4Arg | inBoxMaxY, | ||
Vec4Arg | inBoxMaxZ, | ||
float | inEpsilon = 1.0e-6f |
||
) |
Convenience function that tests 4 AABoxes vs OrientedBox.
JPH_INLINE UVec4 AABox4VsBox | ( | Mat44Arg | inOrientation, |
Vec3Arg | inHalfExtents, | ||
Vec4Arg | inBoxMinX, | ||
Vec4Arg | inBoxMinY, | ||
Vec4Arg | inBoxMinZ, | ||
Vec4Arg | inBoxMaxX, | ||
Vec4Arg | inBoxMaxY, | ||
Vec4Arg | inBoxMaxZ, | ||
float | inEpsilon = 1.0e-6f |
||
) |
Test if 4 bounding boxes overlap with an oriented box.
JPH_INLINE UVec4 AABox4VsPoint | ( | Vec3Arg | inPoint, |
Vec4Arg | inBoxMinX, | ||
Vec4Arg | inBoxMinY, | ||
Vec4Arg | inBoxMinZ, | ||
Vec4Arg | inBoxMaxX, | ||
Vec4Arg | inBoxMaxY, | ||
Vec4Arg | inBoxMaxZ | ||
) |
Test if 4 bounding boxes overlap with a point.
JPH_INLINE UVec4 AABox4VsSphere | ( | Vec3Arg | inCenter, |
float | inRadiusSq, | ||
Vec4Arg | inBoxMinX, | ||
Vec4Arg | inBoxMinY, | ||
Vec4Arg | inBoxMinZ, | ||
Vec4Arg | inBoxMaxX, | ||
Vec4Arg | inBoxMaxY, | ||
Vec4Arg | inBoxMaxZ | ||
) |
Test 4 AABoxes vs a sphere.