Blender V4.3
btManifoldResult Class Reference

btManifoldResult is a helper class to manage contact results. More...

#include <btManifoldResult.h>

Inherits btDiscreteCollisionDetectorInterface::Result.

Inherited by btBridgedManifoldResult, and btPerturbedContactResult.

Public Member Functions

 btManifoldResult ()
 
 btManifoldResult (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
 
virtual ~btManifoldResult ()
 
void setPersistentManifold (btPersistentManifold *manifoldPtr)
 
const btPersistentManifoldgetPersistentManifold () const
 
btPersistentManifoldgetPersistentManifold ()
 
virtual void setShapeIdentifiersA (int partId0, int index0)
 setShapeIdentifiersA/B provides experimental support for per-triangle material / custom material combiner
 
virtual void setShapeIdentifiersB (int partId1, int index1)
 
virtual void addContactPoint (const btVector3 &normalOnBInWorld, const btVector3 &pointInWorld, btScalar depth)
 
SIMD_FORCE_INLINE void refreshContactPoints ()
 
const btCollisionObjectWrappergetBody0Wrap () const
 
const btCollisionObjectWrappergetBody1Wrap () const
 
void setBody0Wrap (const btCollisionObjectWrapper *obj0Wrap)
 
void setBody1Wrap (const btCollisionObjectWrapper *obj1Wrap)
 
const btCollisionObjectgetBody0Internal () const
 
const btCollisionObjectgetBody1Internal () const
 
- Public Member Functions inherited from btDiscreteCollisionDetectorInterface::Result
virtual ~Result ()
 

Static Public Member Functions

static btScalar calculateCombinedRestitution (const btCollisionObject *body0, const btCollisionObject *body1)
 in the future we can let the user override the methods to combine restitution and friction
 
static btScalar calculateCombinedFriction (const btCollisionObject *body0, const btCollisionObject *body1)
 User can override this material combiner by implementing gContactAddedCallback and setting body0->m_collisionFlags |= btCollisionObject::customMaterialCallback;.
 
static btScalar calculateCombinedRollingFriction (const btCollisionObject *body0, const btCollisionObject *body1)
 
static btScalar calculateCombinedSpinningFriction (const btCollisionObject *body0, const btCollisionObject *body1)
 
static btScalar calculateCombinedContactDamping (const btCollisionObject *body0, const btCollisionObject *body1)
 
static btScalar calculateCombinedContactStiffness (const btCollisionObject *body0, const btCollisionObject *body1)
 

Public Attributes

btScalar m_closestPointDistanceThreshold
 

Protected Attributes

btPersistentManifoldm_manifoldPtr
 
const btCollisionObjectWrapperm_body0Wrap
 
const btCollisionObjectWrapperm_body1Wrap
 
int m_partId0
 
int m_partId1
 
int m_index0
 
int m_index1
 

Detailed Description

btManifoldResult is a helper class to manage contact results.

Definition at line 47 of file btManifoldResult.h.

Constructor & Destructor Documentation

◆ btManifoldResult() [1/2]

btManifoldResult::btManifoldResult ( )
inline

Definition at line 60 of file btManifoldResult.h.

◆ btManifoldResult() [2/2]

btManifoldResult::btManifoldResult ( const btCollisionObjectWrapper * body0Wrap,
const btCollisionObjectWrapper * body1Wrap )

Definition at line 89 of file btManifoldResult.cpp.

◆ ~btManifoldResult()

virtual btManifoldResult::~btManifoldResult ( )
inlinevirtual

Definition at line 75 of file btManifoldResult.h.

Member Function Documentation

◆ addContactPoint()

void btManifoldResult::addContactPoint ( const btVector3 & normalOnBInWorld,
const btVector3 & pointInWorld,
btScalar depth )
virtual
Todo
, check this for any side effects

Implements btDiscreteCollisionDetectorInterface::Result.

Reimplemented in btBridgedManifoldResult, and btPerturbedContactResult.

Definition at line 105 of file btManifoldResult.cpp.

References BT_CONTACT_FLAG_CONTACT_STIFFNESS_DAMPING, BT_CONTACT_FLAG_FRICTION_ANCHOR, btAssert, btPlaneSpace1(), gCalculateCombinedContactDampingCallback, gCalculateCombinedContactStiffnessCallback, gCalculateCombinedFrictionCallback, gCalculateCombinedRestitutionCallback, gCalculateCombinedRollingFrictionCallback, gCalculateCombinedSpinningFrictionCallback, gContactAddedCallback, gContactStartedCallback, btCollisionObjectWrapper::getCollisionObject(), m_body0Wrap, m_body1Wrap, btManifoldPoint::m_combinedContactDamping1, btManifoldPoint::m_combinedContactStiffness1, btManifoldPoint::m_combinedFriction, btManifoldPoint::m_combinedRestitution, btManifoldPoint::m_combinedRollingFriction, btManifoldPoint::m_combinedSpinningFriction, btManifoldPoint::m_contactPointFlags, btManifoldPoint::m_index0, m_index0, btManifoldPoint::m_index1, m_index1, btManifoldPoint::m_lateralFrictionDir1, btManifoldPoint::m_lateralFrictionDir2, m_manifoldPtr, btManifoldPoint::m_normalWorldOnB, btManifoldPoint::m_partId0, m_partId0, btManifoldPoint::m_partId1, m_partId1, btManifoldPoint::m_positionWorldOnA, and btManifoldPoint::m_positionWorldOnB.

Referenced by btGImpactCollisionAlgorithm::addContactPoint(), btPerturbedContactResult::addContactPoint(), btConvexPlaneCollisionAlgorithm::collideSingleContact(), btConvexConvexAlgorithm::processCollision(), btConvexPlaneCollisionAlgorithm::processCollision(), btSphereBoxCollisionAlgorithm::processCollision(), and btSphereSphereCollisionAlgorithm::processCollision().

◆ calculateCombinedContactDamping()

btScalar btManifoldResult::calculateCombinedContactDamping ( const btCollisionObject * body0,
const btCollisionObject * body1 )
static

Definition at line 73 of file btManifoldResult.cpp.

◆ calculateCombinedContactStiffness()

btScalar btManifoldResult::calculateCombinedContactStiffness ( const btCollisionObject * body0,
const btCollisionObject * body1 )
static

Definition at line 78 of file btManifoldResult.cpp.

◆ calculateCombinedFriction()

btScalar btManifoldResult::calculateCombinedFriction ( const btCollisionObject * body0,
const btCollisionObject * body1 )
static

User can override this material combiner by implementing gContactAddedCallback and setting body0->m_collisionFlags |= btCollisionObject::customMaterialCallback;.

Definition at line 56 of file btManifoldResult.cpp.

◆ calculateCombinedRestitution()

btScalar btManifoldResult::calculateCombinedRestitution ( const btCollisionObject * body0,
const btCollisionObject * body1 )
static

in the future we can let the user override the methods to combine restitution and friction

Definition at line 68 of file btManifoldResult.cpp.

◆ calculateCombinedRollingFriction()

btScalar btManifoldResult::calculateCombinedRollingFriction ( const btCollisionObject * body0,
const btCollisionObject * body1 )
static

Definition at line 31 of file btManifoldResult.cpp.

◆ calculateCombinedSpinningFriction()

btScalar btManifoldResult::calculateCombinedSpinningFriction ( const btCollisionObject * body0,
const btCollisionObject * body1 )
static

Definition at line 43 of file btManifoldResult.cpp.

◆ getBody0Internal()

const btCollisionObject * btManifoldResult::getBody0Internal ( ) const
inline

◆ getBody0Wrap()

◆ getBody1Internal()

const btCollisionObject * btManifoldResult::getBody1Internal ( ) const
inline

◆ getBody1Wrap()

◆ getPersistentManifold() [1/2]

btPersistentManifold * btManifoldResult::getPersistentManifold ( )
inline

Definition at line 86 of file btManifoldResult.h.

References m_manifoldPtr.

◆ getPersistentManifold() [2/2]

const btPersistentManifold * btManifoldResult::getPersistentManifold ( ) const
inline

◆ refreshContactPoints()

◆ setBody0Wrap()

◆ setBody1Wrap()

◆ setPersistentManifold()

◆ setShapeIdentifiersA()

virtual void btManifoldResult::setShapeIdentifiersA ( int partId0,
int index0 )
inlinevirtual

◆ setShapeIdentifiersB()

Member Data Documentation

◆ m_body0Wrap

◆ m_body1Wrap

◆ m_closestPointDistanceThreshold

◆ m_index0

int btManifoldResult::m_index0
protected

◆ m_index1

int btManifoldResult::m_index1
protected

◆ m_manifoldPtr

◆ m_partId0

int btManifoldResult::m_partId0
protected

◆ m_partId1

int btManifoldResult::m_partId1
protected

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