Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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 <broadphase_collision_manager.h>

Inheritance diagram for coal::BroadPhaseCollisionManager:
Inheritance graph
[legend]

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

bool enable_tested_set_
 
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...
 

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.

Definition at line 53 of file coal/broadphase/broadphase_collision_manager.h.

Constructor & Destructor Documentation

◆ BroadPhaseCollisionManager()

coal::BroadPhaseCollisionManager::BroadPhaseCollisionManager ( )

Definition at line 43 of file broadphase_collision_manager.cpp.

◆ ~BroadPhaseCollisionManager()

coal::BroadPhaseCollisionManager::~BroadPhaseCollisionManager ( )
virtual

Definition at line 49 of file broadphase_collision_manager.cpp.

Member Function Documentation

◆ clear()

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

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

virtual bool coal::BroadPhaseCollisionManager::empty ( ) const
pure virtual

◆ getObjects() [1/2]

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

return the objects managed by the manager

Reimplemented in coal::BroadPhaseCollisionManagerWrapper.

Definition at line 87 of file coal/broadphase/broadphase_collision_manager.h.

◆ 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

Definition at line 84 of file broadphase_collision_manager.cpp.

◆ inTestedSet()

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

Definition at line 75 of file broadphase_collision_manager.cpp.

◆ registerObject()

virtual void coal::BroadPhaseCollisionManager::registerObject ( CollisionObject obj)
pure virtual

◆ registerObjects()

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

◆ setup()

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

◆ size()

virtual size_t coal::BroadPhaseCollisionManager::size ( ) const
pure virtual

◆ unregisterObject()

virtual void coal::BroadPhaseCollisionManager::unregisterObject ( CollisionObject obj)
pure virtual

◆ update() [1/3]

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

◆ update() [2/3]

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

◆ update() [3/3]

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.

Definition at line 129 of file coal/broadphase/broadphase_collision_manager.h.


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


hpp-fcl
Author(s):
autogenerated on Sat Nov 23 2024 03:45:00