ReactPhysics3D  v0.10.2
C++ Physics engine library
Loading...
Searching...
No Matches
reactphysics3d::SATAlgorithm Class Reference

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 copy-constructor.
 
SATAlgorithmoperator= (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.
 

Detailed Description

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.


The documentation for this class was generated from the following files: