chrono::collision::ChCollisionSystemBulletMulticore Class Reference

Description

Collision engine based on the 'Bullet' library.

Contains both the broadphase and the narrow phase Bullet methods.

#include <ChCollisionSystemBulletMulticore.h>

Inheritance diagram for chrono::collision::ChCollisionSystemBulletMulticore:
Collaboration diagram for chrono::collision::ChCollisionSystemBulletMulticore:

Public Member Functions

 ChCollisionSystemBulletMulticore (ChMulticoreDataManager *dc)
 
virtual ChCollisionSystemType GetType () const override
 Return the type of this collision system.
 
virtual void Clear (void) override
 Clear all data instanced by this algorithm if any (like persistent contact manifolds)
 
virtual void Add (ChCollisionModel *model) override
 Add a collision model to the collision engine (custom data may be allocated).
 
virtual void Remove (ChCollisionModel *model) override
 Remove a collision model from the collision engine.
 
virtual void SetNumThreads (int nthreads) override
 Set the number of OpenMP threads for collision detection.
 
virtual void Run () override
 Run the algorithm and finds all the contacts. More...
 
virtual void GetBoundingBox (ChVector<> &aabb_min, ChVector<> &aabb_max) const override
 Return an AABB bounding all collision shapes in the system.
 
virtual void ResetTimers () override
 Reset timers for collision detection.
 
virtual double GetTimerCollisionBroad () const override
 Return the time (in seconds) for broadphase collision detection.
 
virtual double GetTimerCollisionNarrow () const override
 Return the time (in seconds) for narrowphase collision detection.
 
virtual void ReportContacts (ChContactContainer *mcontactcontainer) override
 Fill in the provided contact container with collision information after Run(). More...
 
virtual void ReportProximities (ChProximityContainer *mproximitycontainer) override
 Fill in the provided proximity container with near point information after Run(). More...
 
virtual bool RayHit (const ChVector<> &from, const ChVector<> &to, ChRayhitResult &mresult) const override
 Perform a ray-hit test with all collision models. More...
 
virtual bool RayHit (const ChVector<> &from, const ChVector<> &to, ChCollisionModel *model, ChRayhitResult &mresult) const override
 Perform a ray-hit test with the specified collision model. More...
 
btCollisionWorld * GetBulletCollisionWorld ()
 
- Public Member Functions inherited from chrono::collision::ChCollisionSystem
virtual void PreProcess ()
 Removes all collision models from the collision engine (custom data may be deallocated). More...
 
virtual void PostProcess ()
 Optional synchronization operations, invoked after running the collision detection.
 
void RegisterBroadphaseCallback (std::shared_ptr< BroadphaseCallback > callback)
 Specify a callback object to be used each time a pair of 'near enough' collision shapes is found by the broad-phase collision step. More...
 
void RegisterNarrowphaseCallback (std::shared_ptr< NarrowphaseCallback > callback)
 Specify a callback object to be used each time a collision pair is found during the narrow-phase collision detection step. More...
 
virtual void RegisterVisualizationCallback (std::shared_ptr< VisualizationCallback > callback)
 Specify a callback object to be used for debug rendering of collision shapes.
 
virtual void Visualize (int flags)
 Method to trigger debug visualization of collision shapes. More...
 
virtual void ArchiveOUT (ChArchiveOut &marchive)
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIN (ChArchiveIn &marchive)
 Method to allow de-serialization of transient data from archives.
 
void SetSystem (ChSystem *sys)
 Set associated Chrono system.
 

Additional Inherited Members

- Public Types inherited from chrono::collision::ChCollisionSystem
enum  VisualizationModes {
  VIS_None = 0, VIS_Shapes = 1 << 0, VIS_Aabb = 1 << 1, VIS_Contacts = 1 << 2,
  VIS_MAX_MODES
}
 Enumeration of supported flags for collision debug visualization. More...
 
- Protected Attributes inherited from chrono::collision::ChCollisionSystem
ChSystemm_system
 associated Chrono system
 
std::shared_ptr< BroadphaseCallbackbroad_callback
 user callback for each near-enough pair of shapes
 
std::shared_ptr< NarrowphaseCallbacknarrow_callback
 user callback for each collision pair
 
std::shared_ptr< VisualizationCallbackvis_callback
 user callback for debug visualization
 
int m_vis_flags
 

Member Function Documentation

◆ RayHit() [1/2]

virtual bool chrono::collision::ChCollisionSystemBulletMulticore::RayHit ( const ChVector<> &  from,
const ChVector<> &  to,
ChCollisionModel model,
ChRayhitResult mresult 
) const
inlineoverridevirtual

Perform a ray-hit test with the specified collision model.

Currently not implemented.

Implements chrono::collision::ChCollisionSystem.

◆ RayHit() [2/2]

virtual bool chrono::collision::ChCollisionSystemBulletMulticore::RayHit ( const ChVector<> &  from,
const ChVector<> &  to,
ChRayhitResult mresult 
) const
inlineoverridevirtual

Perform a ray-hit test with all collision models.

Currently not implemented.

Implements chrono::collision::ChCollisionSystem.

◆ ReportContacts()

void chrono::collision::ChCollisionSystemBulletMulticore::ReportContacts ( ChContactContainer mcontactcontainer)
overridevirtual

Fill in the provided contact container with collision information after Run().

std::cout << " typeA=" << icontact.shapeA->m_type << " typeB=" << icontact.shapeB->m_type / << std::endl;

Implements chrono::collision::ChCollisionSystem.

◆ ReportProximities()

virtual void chrono::collision::ChCollisionSystemBulletMulticore::ReportProximities ( ChProximityContainer mproximitycontainer)
inlineoverridevirtual

Fill in the provided proximity container with near point information after Run().

Not used in Chrono::Multicore.

Implements chrono::collision::ChCollisionSystem.

◆ Run()

void chrono::collision::ChCollisionSystemBulletMulticore::Run ( )
overridevirtual

Run the algorithm and finds all the contacts.

(Contacts will be managed by the Bullet persistent contact cache).

Implements chrono::collision::ChCollisionSystem.


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