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>
Public Member Functions | |
BroadPhaseCollisionManager () | |
virtual void | clear ()=0 |
clear 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 | 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 (BroadPhaseCollisionManager *other_manager, CollisionCallBackBase *callback) const =0 |
perform collision 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 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 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 | 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... | |
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 54 of file broadphase_collision_manager.h.
hpp::fcl::BroadPhaseCollisionManager::BroadPhaseCollisionManager | ( | ) |
Definition at line 44 of file broadphase_collision_manager.cpp.
|
virtual |
Definition at line 50 of file broadphase_collision_manager.cpp.
|
pure virtual |
clear the manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
perform collision test between one object and all the objects belonging to the manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
perform collision test with objects belonging to another manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
perform distance computation between one object and all the objects belonging to the manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
perform distance test with objects belonging to another manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
whether the manager is empty
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
return the objects managed by the manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
inlinevirtual |
return the objects managed by the manager
Reimplemented in hpp::fcl::BroadPhaseCollisionManagerWrapper.
Definition at line 88 of file broadphase_collision_manager.h.
|
protected |
Definition at line 85 of file broadphase_collision_manager.cpp.
|
protected |
Definition at line 76 of file broadphase_collision_manager.cpp.
|
pure virtual |
add one object to the manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
virtual |
add objects to the manager
Reimplemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SaPCollisionManager, and hpp::fcl::NaiveCollisionManager.
Definition at line 55 of file broadphase_collision_manager.cpp.
|
pure virtual |
initialize the manager, related with the specific type of manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
the number of objects managed by the manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
remove one object from the manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
pure virtual |
update the condition of manager
Implemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::BroadPhaseCollisionManagerWrapper, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, hpp::fcl::NaiveCollisionManager, and hpp::fcl::SSaPCollisionManager.
|
virtual |
update the manager by explicitly given the object updated
Reimplemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::BroadPhaseCollisionManagerWrapper, and hpp::fcl::IntervalTreeCollisionManager.
Definition at line 61 of file broadphase_collision_manager.cpp.
|
virtual |
update the manager by explicitly given the set of objects update
Reimplemented in hpp::fcl::DynamicAABBTreeCollisionManager, hpp::fcl::DynamicAABBTreeArrayCollisionManager, hpp::fcl::SpatialHashingCollisionManager< HashTable >, hpp::fcl::SaPCollisionManager, hpp::fcl::IntervalTreeCollisionManager, and hpp::fcl::BroadPhaseCollisionManagerWrapper.
Definition at line 68 of file broadphase_collision_manager.cpp.
|
mutableprotected |
Definition at line 131 of file broadphase_collision_manager.h.
|
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 130 of file broadphase_collision_manager.h.