ReactPhysics3D
v0.10.2
C++ Physics engine library

This class implements the Separating Axis Theorem algorithm (SAT). More...
#include <include/reactphysics3d/collision/narrowphase/SAT/SATAlgorithm.h>
Public Member Functions  
SATAlgorithm (bool clipWithPreviousAxisIfStillColliding, MemoryAllocator &memoryAllocator)  
Constructor.  
~SATAlgorithm ()=default  
Destructor.  
SATAlgorithm (const SATAlgorithm &algorithm)=delete  
Deleted copyconstructor.  
SATAlgorithm &  operator= (const SATAlgorithm &algorithm)=delete 
Deleted assignment operator.  
bool  testCollisionSphereVsConvexPolyhedron (NarrowPhaseInfoBatch &narrowPhaseInfoBatch, uint32 batchStartIndex, uint32 batchNbItems) const 
Test collision between a sphere and a convex mesh.  
bool  testCollisionCapsuleVsConvexPolyhedron (NarrowPhaseInfoBatch &narrowPhaseInfoBatch, uint32 batchIndex) const 
Test collision between a capsule and a convex mesh.  
bool  computeCapsulePolyhedronFaceContactPoints (uint32 referenceFaceIndex, decimal capsuleRadius, const ConvexPolyhedronShape *polyhedron, decimal penetrationDepth, const Transform &polyhedronToCapsuleTransform, Vector3 &normalWorld, const Vector3 &separatingAxisCapsuleSpace, const Vector3 &capsuleSegAPolyhedronSpace, const Vector3 &capsuleSegBPolyhedronSpace, NarrowPhaseInfoBatch &narrowPhaseInfoBatch, uint32 batchIndex, bool isCapsuleShape1) const 
Compute the two contact points between a polyhedron and a capsule when the separating axis is a face normal of the polyhedron.  
bool  isMinkowskiFaceCapsuleVsEdge (const Vector3 &capsuleSegment, const Vector3 &edgeAdjacentFace1Normal, const Vector3 &edgeAdjacentFace2Normal) const 
bool  testCollisionConvexPolyhedronVsConvexPolyhedron (NarrowPhaseInfoBatch &narrowPhaseInfoBatch, uint32 batchStartIndex, uint32 batchNbItems) const 
Test collision between two convex meshes.  
This class implements the Separating Axis Theorem algorithm (SAT).
This algorithm is used to find the axis of minimum penetration between two convex polyhedra. If none is found, the objects are separated. Otherwise, the two objects are in contact and we use clipping to get the contact points.