chrono::cbtSphereCylinderCollisionAlgorithm Class Reference

Description

Custom override of the default Bullet algorithm for sphere-cylinder collision.

This replaces the default GJK algorithm in Bullet which is inaccurate if the cylinder is much larger than the sphere.

#include <ChCollisionAlgorithmsBullet.h>

Inherits cbtActivatingCollisionAlgorithm.

Public Member Functions

 cbtSphereCylinderCollisionAlgorithm (cbtPersistentManifold *mf, const cbtCollisionAlgorithmConstructionInfo &ci, const cbtCollisionObjectWrapper *col0, const cbtCollisionObjectWrapper *col1, bool isSwapped)
 
 cbtSphereCylinderCollisionAlgorithm (const cbtCollisionAlgorithmConstructionInfo &ci)
 
virtual void processCollision (const cbtCollisionObjectWrapper *body0, const cbtCollisionObjectWrapper *body1, const cbtDispatcherInfo &dispatchInfo, cbtManifoldResult *resultOut) override
 
virtual cbtScalar calculateTimeOfImpact (cbtCollisionObject *body0, cbtCollisionObject *body1, const cbtDispatcherInfo &dispatchInfo, cbtManifoldResult *resultOut) override
 
virtual void getAllContactManifolds (cbtManifoldArray &manifoldArray) override
 

Member Function Documentation

◆ processCollision()

void chrono::cbtSphereCylinderCollisionAlgorithm::processCollision ( const cbtCollisionObjectWrapper *  body0,
const cbtCollisionObjectWrapper *  body1,
const cbtDispatcherInfo &  dispatchInfo,
cbtManifoldResult *  resultOut 
)
overridevirtual

iff distance positive, don't generate a new contact

distance (negative means penetration)

point on B (worldspace)

report a contact. internally this will be kept persistent, and contact reduction is done


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/collision/bullet/ChCollisionAlgorithmsBullet.h
  • /builds/uwsbel/chrono/src/chrono/collision/bullet/ChCollisionAlgorithmsBullet.cpp