Blender  V3.3
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
btManifoldResult Class Reference

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

#include <btManifoldResult.h>

Inheritance diagram for btManifoldResult:
btDiscreteCollisionDetectorInterface::Result btBridgedManifoldResult 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 More...
 
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 More...
 
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;. More...
 
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 btPerturbedContactResult, and btBridgedManifoldResult.

Definition at line 105 of file btManifoldResult.cpp.

References BT_CONTACT_FLAG_CONTACT_STIFFNESS_DAMPING, BT_CONTACT_FLAG_FRICTION_ANCHOR, btAssert, btPlaneSpace1(), btVector3, CF_CUSTOM_MATERIAL_CALLBACK, CF_HAS_CONTACT_STIFFNESS_DAMPING, CF_HAS_FRICTION_ANCHOR, 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, m_index0, btManifoldPoint::m_index0, m_index1, btManifoldPoint::m_index1, btManifoldPoint::m_lateralFrictionDir1, btManifoldPoint::m_lateralFrictionDir2, m_manifoldPtr, btManifoldPoint::m_normalWorldOnB, m_partId0, btManifoldPoint::m_partId0, m_partId1, btManifoldPoint::m_partId1, btManifoldPoint::m_positionWorldOnA, and btManifoldPoint::m_positionWorldOnB.

Referenced by btGImpactCollisionAlgorithm::addContactPoint(), btPerturbedContactResult::addContactPoint(), b2CollidePolygons(), 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()

const btCollisionObjectWrapper* btManifoldResult::getBody0Wrap ( ) const
inline

◆ getBody1Internal()

const btCollisionObject* btManifoldResult::getBody1Internal ( ) const
inline

◆ getBody1Wrap()

const btCollisionObjectWrapper* btManifoldResult::getBody1Wrap ( ) const
inline

◆ 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()

SIMD_FORCE_INLINE void btManifoldResult::refreshContactPoints ( )
inline

◆ setBody0Wrap()

void btManifoldResult::setBody0Wrap ( const btCollisionObjectWrapper obj0Wrap)
inline

◆ setBody1Wrap()

void btManifoldResult::setBody1Wrap ( const btCollisionObjectWrapper obj1Wrap)
inline

◆ setPersistentManifold()

void btManifoldResult::setPersistentManifold ( btPersistentManifold manifoldPtr)
inline

◆ setShapeIdentifiersA()

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

◆ setShapeIdentifiersB()

virtual void btManifoldResult::setShapeIdentifiersB ( int  partId1,
int  index1 
)
inlinevirtual

Member Data Documentation

◆ m_body0Wrap

const btCollisionObjectWrapper* btManifoldResult::m_body0Wrap
protected

◆ m_body1Wrap

const btCollisionObjectWrapper* btManifoldResult::m_body1Wrap
protected

◆ m_closestPointDistanceThreshold

btScalar btManifoldResult::m_closestPointDistanceThreshold

◆ m_index0

int btManifoldResult::m_index0
protected

◆ m_index1

int btManifoldResult::m_index1
protected

◆ m_manifoldPtr

btPersistentManifold* btManifoldResult::m_manifoldPtr
protected

◆ 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: