All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

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

Member Function Documentation

virtual void fcl::BroadPhaseCollisionManager::clear ( )
pure virtual
virtual void fcl::BroadPhaseCollisionManager::collide ( CollisionObject obj,
void *  cdata,
CollisionCallBack  callback 
) const
pure virtual
virtual void fcl::BroadPhaseCollisionManager::collide ( void *  cdata,
CollisionCallBack  callback 
) const
pure virtual
virtual void fcl::BroadPhaseCollisionManager::collide ( BroadPhaseCollisionManager other_manager,
void *  cdata,
CollisionCallBack  callback 
) const
pure virtual
virtual void fcl::BroadPhaseCollisionManager::distance ( CollisionObject obj,
void *  cdata,
DistanceCallBack  callback 
) const
pure virtual
virtual void fcl::BroadPhaseCollisionManager::distance ( void *  cdata,
DistanceCallBack  callback 
) const
pure virtual
virtual void fcl::BroadPhaseCollisionManager::distance ( BroadPhaseCollisionManager other_manager,
void *  cdata,
DistanceCallBack  callback 
) const
pure virtual
virtual bool fcl::BroadPhaseCollisionManager::empty ( ) const
pure virtual
virtual void fcl::BroadPhaseCollisionManager::getObjects ( std::vector< CollisionObject * > &  objs) const
pure virtual
void fcl::BroadPhaseCollisionManager::insertTestedSet ( CollisionObject a,
CollisionObject b 
) const
inlineprotected

References tested_set.

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

References tested_set.

virtual void fcl::BroadPhaseCollisionManager::registerObject ( CollisionObject obj)
pure virtual
virtual void fcl::BroadPhaseCollisionManager::registerObjects ( const std::vector< CollisionObject * > &  other_objs)
inlinevirtual
virtual void fcl::BroadPhaseCollisionManager::setup ( )
pure virtual
virtual size_t fcl::BroadPhaseCollisionManager::size ( ) const
pure virtual
virtual void fcl::BroadPhaseCollisionManager::unregisterObject ( CollisionObject obj)
pure virtual
virtual void fcl::BroadPhaseCollisionManager::update ( )
pure virtual
virtual void fcl::BroadPhaseCollisionManager::update ( CollisionObject )
inlinevirtual
virtual void fcl::BroadPhaseCollisionManager::update ( const std::vector< CollisionObject * > &  )
inlinevirtual

Member Data Documentation

bool fcl::BroadPhaseCollisionManager::enable_tested_set_
mutableprotected
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.

Referenced by insertTestedSet(), and inTestedSet().