Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fcl::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 <hpp/fcl/broadphase/broadphase.h>

Inheritance diagram for fcl::BroadPhaseCollisionManager:
[legend]
Collaboration diagram for fcl::BroadPhaseCollisionManager:
[legend]

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 *)
 update the manager by explicitly given the object updated More...
 
virtual void update (const std::vector< CollisionObject *> &)
 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 void collide (CollisionObject *obj, void *cdata, CollisionCallBack callback) const =0
 perform collision test between one object and all the objects belonging to the manager More...
 
virtual void distance (CollisionObject *obj, void *cdata, DistanceCallBack callback) const =0
 perform distance computation between one object and all the objects belonging to the manager More...
 
virtual void collide (void *cdata, CollisionCallBack callback) const =0
 perform collision test for the objects belonging to the manager (i.e., N^2 self collision) More...
 
virtual void distance (void *cdata, DistanceCallBack 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, void *cdata, CollisionCallBack callback) const =0
 perform collision test with objects belonging to another manager More...
 
virtual void distance (BroadPhaseCollisionManager *other_manager, void *cdata, DistanceCallBack 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()

fcl::BroadPhaseCollisionManager::BroadPhaseCollisionManager ( )
inline

◆ ~BroadPhaseCollisionManager()

virtual fcl::BroadPhaseCollisionManager::~BroadPhaseCollisionManager ( )
inlinevirtual

Member Function Documentation

◆ clear()

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

◆ collide() [1/3]

virtual void fcl::BroadPhaseCollisionManager::collide ( CollisionObject obj,
void *  cdata,
CollisionCallBack  callback 
) const
pure virtual

◆ collide() [2/3]

virtual void fcl::BroadPhaseCollisionManager::collide ( void *  cdata,
CollisionCallBack  callback 
) const
pure virtual

◆ collide() [3/3]

virtual void fcl::BroadPhaseCollisionManager::collide ( BroadPhaseCollisionManager other_manager,
void *  cdata,
CollisionCallBack  callback 
) const
pure virtual

◆ distance() [1/3]

virtual void fcl::BroadPhaseCollisionManager::distance ( CollisionObject obj,
void *  cdata,
DistanceCallBack  callback 
) const
pure virtual

◆ distance() [2/3]

virtual void fcl::BroadPhaseCollisionManager::distance ( void *  cdata,
DistanceCallBack  callback 
) const
pure virtual

◆ distance() [3/3]

virtual void fcl::BroadPhaseCollisionManager::distance ( BroadPhaseCollisionManager other_manager,
void *  cdata,
DistanceCallBack  callback 
) const
pure virtual

◆ empty()

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

◆ getObjects()

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

◆ insertTestedSet()

void fcl::BroadPhaseCollisionManager::insertTestedSet ( CollisionObject a,
CollisionObject b 
) const
inlineprotected

◆ inTestedSet()

bool fcl::BroadPhaseCollisionManager::inTestedSet ( CollisionObject a,
CollisionObject b 
) const
inlineprotected

◆ registerObject()

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

◆ registerObjects()

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

◆ setup()

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

◆ size()

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

◆ unregisterObject()

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

◆ update() [1/3]

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

◆ update() [2/3]

virtual void fcl::BroadPhaseCollisionManager::update ( CollisionObject )
inlinevirtual

◆ update() [3/3]

virtual void fcl::BroadPhaseCollisionManager::update ( const std::vector< CollisionObject *> &  )
inlinevirtual

Member Data Documentation

◆ enable_tested_set_

bool fcl::BroadPhaseCollisionManager::enable_tested_set_
mutableprotected

◆ tested_set

std::set<std::pair<CollisionObject*, CollisionObject*> > fcl::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.