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>
Public Member Functions | |
BroadPhaseCollisionManager () | |
virtual | ~BroadPhaseCollisionManager () |
virtual void | registerObjects (const std::vector< CollisionObject * > &other_objs) |
add objects to the manager | |
virtual void | registerObject (CollisionObject *obj)=0 |
add one object to the manager | |
virtual void | unregisterObject (CollisionObject *obj)=0 |
remove one object from the manager | |
virtual void | setup ()=0 |
initialize the manager, related with the specific type of manager | |
virtual void | update ()=0 |
update the condition of manager | |
virtual void | update (CollisionObject *) |
update the manager by explicitly given the object updated | |
virtual void | update (const std::vector< CollisionObject * > &) |
update the manager by explicitly given the set of objects update | |
virtual void | clear ()=0 |
clear the manager | |
virtual void | getObjects (std::vector< CollisionObject * > &objs) const =0 |
return the objects managed by the manager | |
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 | |
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 | |
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) | |
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) | |
virtual void | collide (BroadPhaseCollisionManager *other_manager, void *cdata, CollisionCallBack callback) const =0 |
perform collision test with objects belonging to another manager | |
virtual void | distance (BroadPhaseCollisionManager *other_manager, void *cdata, DistanceCallBack callback) const =0 |
perform distance test with objects belonging to another manager | |
virtual bool | empty () const =0 |
whether the manager is empty | |
virtual size_t | size () const =0 |
the number of objects managed by the manager | |
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. | |
bool | enable_tested_set_ |
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.
fcl::BroadPhaseCollisionManager::BroadPhaseCollisionManager | ( | ) | [inline] |
virtual fcl::BroadPhaseCollisionManager::~BroadPhaseCollisionManager | ( | ) | [inline, virtual] |
virtual void fcl::BroadPhaseCollisionManager::clear | ( | ) | [pure virtual] |
virtual void fcl::BroadPhaseCollisionManager::collide | ( | CollisionObject * | obj, |
void * | cdata, | ||
CollisionCallBack | callback | ||
) | const [pure virtual] |
perform collision test between one object and all the objects belonging to the manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::collide | ( | void * | cdata, |
CollisionCallBack | callback | ||
) | const [pure virtual] |
perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::collide | ( | BroadPhaseCollisionManager * | other_manager, |
void * | cdata, | ||
CollisionCallBack | callback | ||
) | const [pure virtual] |
perform collision test with objects belonging to another manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::distance | ( | CollisionObject * | obj, |
void * | cdata, | ||
DistanceCallBack | callback | ||
) | const [pure virtual] |
perform distance computation between one object and all the objects belonging to the manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::distance | ( | void * | cdata, |
DistanceCallBack | callback | ||
) | const [pure virtual] |
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::distance | ( | BroadPhaseCollisionManager * | other_manager, |
void * | cdata, | ||
DistanceCallBack | callback | ||
) | const [pure virtual] |
perform distance test with objects belonging to another manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual bool fcl::BroadPhaseCollisionManager::empty | ( | ) | const [pure virtual] |
whether the manager is empty
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::getObjects | ( | std::vector< CollisionObject * > & | objs | ) | const [pure virtual] |
return the objects managed by the manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
void fcl::BroadPhaseCollisionManager::insertTestedSet | ( | CollisionObject * | a, |
CollisionObject * | b | ||
) | const [inline, protected] |
References tested_set.
bool fcl::BroadPhaseCollisionManager::inTestedSet | ( | CollisionObject * | a, |
CollisionObject * | b | ||
) | const [inline, protected] |
References tested_set.
virtual void fcl::BroadPhaseCollisionManager::registerObject | ( | CollisionObject * | obj | ) | [pure virtual] |
add one object to the manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
Referenced by registerObjects().
virtual void fcl::BroadPhaseCollisionManager::registerObjects | ( | const std::vector< CollisionObject * > & | other_objs | ) | [inline, virtual] |
add objects to the manager
Reimplemented in fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, and fcl::NaiveCollisionManager.
References registerObject().
virtual void fcl::BroadPhaseCollisionManager::setup | ( | ) | [pure virtual] |
initialize the manager, related with the specific type of manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual size_t fcl::BroadPhaseCollisionManager::size | ( | ) | const [pure virtual] |
the number of objects managed by the manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::unregisterObject | ( | CollisionObject * | obj | ) | [pure virtual] |
remove one object from the manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
virtual void fcl::BroadPhaseCollisionManager::update | ( | ) | [pure virtual] |
update the condition of manager
Implemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, fcl::IntervalTreeCollisionManager, fcl::NaiveCollisionManager, and fcl::SSaPCollisionManager.
Referenced by update().
virtual void fcl::BroadPhaseCollisionManager::update | ( | CollisionObject * | ) | [inline, virtual] |
update the manager by explicitly given the object updated
Reimplemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, and fcl::IntervalTreeCollisionManager.
References update().
virtual void fcl::BroadPhaseCollisionManager::update | ( | const std::vector< CollisionObject * > & | ) | [inline, virtual] |
update the manager by explicitly given the set of objects update
Reimplemented in fcl::SpatialHashingCollisionManager< HashTable >, fcl::DynamicAABBTreeCollisionManager, fcl::DynamicAABBTreeCollisionManager_Array, fcl::SaPCollisionManager, and fcl::IntervalTreeCollisionManager.
References update().
bool fcl::BroadPhaseCollisionManager::enable_tested_set_ [mutable, protected] |
std::set<std::pair<CollisionObject*, CollisionObject*> > fcl::BroadPhaseCollisionManager::tested_set [mutable, protected] |
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().