coal  3.0.1
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
coal::BroadPhaseCollisionManager Class Referenceabstract

Base class for broad phase collision. It helps to accelerate the collision/distance between N objects. Also support self collision, self distance and collision/distance with another M objects. More...

#include <coal/broadphase/broadphase_collision_manager.h>

Inheritance diagram for coal::BroadPhaseCollisionManager:

Public Member Functions

 BroadPhaseCollisionManager ()
 
virtual ~BroadPhaseCollisionManager ()
 
virtual void registerObjects (const std::vector< CollisionObject * > &other_objs)
 add objects to the manager More...
 
virtual void registerObject (CollisionObject *obj)=0
 add one object to the manager More...
 
virtual void unregisterObject (CollisionObject *obj)=0
 remove one object from the manager More...
 
virtual void setup ()=0
 initialize the manager, related with the specific type of manager More...
 
virtual void update ()=0
 update the condition of manager More...
 
virtual void update (CollisionObject *updated_obj)
 update the manager by explicitly given the object updated More...
 
virtual void update (const std::vector< CollisionObject * > &updated_objs)
 update the manager by explicitly given the set of objects update More...
 
virtual void clear ()=0
 clear the manager More...
 
virtual void getObjects (std::vector< CollisionObject * > &objs) const =0
 return the objects managed by the manager More...
 
virtual std::vector< CollisionObject * > getObjects () const
 return the objects managed by the manager More...
 
virtual void collide (CollisionObject *obj, CollisionCallBackBase *callback) const =0
 perform collision test between one object and all the objects belonging to the manager More...
 
virtual void distance (CollisionObject *obj, DistanceCallBackBase *callback) const =0
 perform distance computation between one object and all the objects belonging to the manager More...
 
virtual void collide (CollisionCallBackBase *callback) const =0
 perform collision test for the objects belonging to the manager (i.e., N^2 self collision) More...
 
virtual void distance (DistanceCallBackBase *callback) const =0
 perform distance test for the objects belonging to the manager (i.e., N^2 self distance) More...
 
virtual void collide (BroadPhaseCollisionManager *other_manager, CollisionCallBackBase *callback) const =0
 perform collision test with objects belonging to another manager More...
 
virtual void distance (BroadPhaseCollisionManager *other_manager, DistanceCallBackBase *callback) const =0
 perform distance test with objects belonging to another manager More...
 
virtual bool empty () const =0
 whether the manager is empty More...
 
virtual size_t size () const =0
 the number of objects managed by the manager More...
 

Protected Member Functions

bool inTestedSet (CollisionObject *a, CollisionObject *b) const
 
void insertTestedSet (CollisionObject *a, CollisionObject *b) const
 

Protected Attributes

std::set< std::pair< CollisionObject *, CollisionObject * > > tested_set
 tools help to avoid repeating collision or distance callback for the pairs of objects tested before. It can be useful for some of the broadphase algorithms. More...
 
bool enable_tested_set_
 

Detailed Description

Base class for broad phase collision. It helps to accelerate the collision/distance between N objects. Also support self collision, self distance and collision/distance with another M objects.

Constructor & Destructor Documentation

◆ BroadPhaseCollisionManager()

coal::BroadPhaseCollisionManager::BroadPhaseCollisionManager ( )

◆ ~BroadPhaseCollisionManager()

virtual coal::BroadPhaseCollisionManager::~BroadPhaseCollisionManager ( )
virtual

Member Function Documentation

◆ clear()

◆ collide() [1/3]

virtual void coal::BroadPhaseCollisionManager::collide ( BroadPhaseCollisionManager other_manager,
CollisionCallBackBase callback 
) const
pure virtual

◆ collide() [2/3]

virtual void coal::BroadPhaseCollisionManager::collide ( CollisionCallBackBase callback) const
pure virtual

◆ collide() [3/3]

virtual void coal::BroadPhaseCollisionManager::collide ( CollisionObject obj,
CollisionCallBackBase callback 
) const
pure virtual

◆ distance() [1/3]

virtual void coal::BroadPhaseCollisionManager::distance ( BroadPhaseCollisionManager other_manager,
DistanceCallBackBase callback 
) const
pure virtual

◆ distance() [2/3]

virtual void coal::BroadPhaseCollisionManager::distance ( CollisionObject obj,
DistanceCallBackBase callback 
) const
pure virtual

◆ distance() [3/3]

virtual void coal::BroadPhaseCollisionManager::distance ( DistanceCallBackBase callback) const
pure virtual

◆ empty()

◆ getObjects() [1/2]

virtual std::vector<CollisionObject*> coal::BroadPhaseCollisionManager::getObjects ( ) const
inlinevirtual

return the objects managed by the manager

◆ getObjects() [2/2]

virtual void coal::BroadPhaseCollisionManager::getObjects ( std::vector< CollisionObject * > &  objs) const
pure virtual

◆ insertTestedSet()

void coal::BroadPhaseCollisionManager::insertTestedSet ( CollisionObject a,
CollisionObject b 
) const
protected

◆ inTestedSet()

bool coal::BroadPhaseCollisionManager::inTestedSet ( CollisionObject a,
CollisionObject b 
) const
protected

◆ registerObject()

◆ registerObjects()

virtual void coal::BroadPhaseCollisionManager::registerObjects ( const std::vector< CollisionObject * > &  other_objs)
virtual

◆ setup()

virtual void coal::BroadPhaseCollisionManager::setup ( )
pure virtual

◆ size()

◆ unregisterObject()

◆ update() [1/3]

◆ update() [2/3]

virtual void coal::BroadPhaseCollisionManager::update ( CollisionObject updated_obj)
virtual

◆ update() [3/3]

virtual void coal::BroadPhaseCollisionManager::update ( const std::vector< CollisionObject * > &  updated_objs)
virtual

Member Data Documentation

◆ enable_tested_set_

bool coal::BroadPhaseCollisionManager::enable_tested_set_
mutableprotected

◆ tested_set

std::set<std::pair<CollisionObject*, CollisionObject*> > coal::BroadPhaseCollisionManager::tested_set
mutableprotected

tools help to avoid repeating collision or distance callback for the pairs of objects tested before. It can be useful for some of the broadphase algorithms.


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