chrono::collision::btSphereCylinderCollisionAlgorithm 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 btActivatingCollisionAlgorithm.

Public Member Functions

 btSphereCylinderCollisionAlgorithm (btPersistentManifold *mf, const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *col0, const btCollisionObjectWrapper *col1, bool isSwapped)
 
 btSphereCylinderCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci)
 
virtual void processCollision (const btCollisionObjectWrapper *body0, const btCollisionObjectWrapper *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut) override
 
virtual btScalar calculateTimeOfImpact (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut) override
 
virtual void getAllContactManifolds (btManifoldArray &manifoldArray) override
 

Member Function Documentation

◆ processCollision()

void chrono::collision::btSphereCylinderCollisionAlgorithm::processCollision ( const btCollisionObjectWrapper *  body0,
const btCollisionObjectWrapper *  body1,
const btDispatcherInfo &  dispatchInfo,
btManifoldResult *  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/ChCollisionAlgorithmsBullet.h
  • /builds/uwsbel/chrono/src/chrono/collision/ChCollisionAlgorithmsBullet.cpp