38 #ifndef HPP_FCL_BROADPHASE_BROADPHASECOLLISIONMANAGER_H
39 #define HPP_FCL_BROADPHASE_BROADPHASECOLLISIONMANAGER_H
43 #include <boost/function.hpp>
79 virtual void update(
const std::vector<CollisionObject*>& updated_objs);
85 virtual void getObjects(std::vector<CollisionObject*>& objs)
const = 0;
88 virtual std::vector<CollisionObject*>
getObjects()
const {
89 std::vector<CollisionObject*> res(size());
124 virtual size_t size()
const = 0;
130 mutable std::set<std::pair<CollisionObject*, CollisionObject*> >
tested_set;
Base class for broad phase collision. It helps to accelerate the collision/distance between N objects...
Definition: broadphase_collision_manager.h:54
virtual void distance(CollisionObject *obj, DistanceCallBackBase *callback) const =0
perform distance computation between one object and all the objects belonging to the manager
BroadPhaseCollisionManager()
virtual void setup()=0
initialize the manager, related with the specific type of manager
virtual ~BroadPhaseCollisionManager()
virtual bool empty() const =0
whether the manager is empty
virtual void getObjects(std::vector< CollisionObject * > &objs) const =0
return the objects managed by the manager
virtual void collide(CollisionCallBackBase *callback) const =0
perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
virtual void unregisterObject(CollisionObject *obj)=0
remove one object from the manager
virtual size_t size() const =0
the number of objects managed by the manager
virtual void distance(DistanceCallBackBase *callback) const =0
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
virtual void update(const std::vector< CollisionObject * > &updated_objs)
update the manager by explicitly given the set of objects update
virtual void update()=0
update the condition of manager
virtual std::vector< CollisionObject * > getObjects() const
return the objects managed by the manager
Definition: broadphase_collision_manager.h:88
std::set< std::pair< CollisionObject *, CollisionObject * > > tested_set
tools help to avoid repeating collision or distance callback for the pairs of objects tested before....
Definition: broadphase_collision_manager.h:130
void insertTestedSet(CollisionObject *a, CollisionObject *b) const
virtual void collide(BroadPhaseCollisionManager *other_manager, CollisionCallBackBase *callback) const =0
perform collision test with objects belonging to another manager
virtual void clear()=0
clear the manager
virtual void distance(BroadPhaseCollisionManager *other_manager, DistanceCallBackBase *callback) const =0
perform distance test with objects belonging to another manager
virtual void update(CollisionObject *updated_obj)
update the manager by explicitly given the object updated
bool inTestedSet(CollisionObject *a, CollisionObject *b) const
virtual void registerObject(CollisionObject *obj)=0
add one object to the manager
virtual void registerObjects(const std::vector< CollisionObject * > &other_objs)
add objects to the manager
virtual void collide(CollisionObject *obj, CollisionCallBackBase *callback) const =0
perform collision test between one object and all the objects belonging to the manager
bool enable_tested_set_
Definition: broadphase_collision_manager.h:131
the object for collision or distance computation, contains the geometry and the transform information
Definition: collision_object.h:215
#define HPP_FCL_DLLAPI
Definition: config.hh:88
Main namespace.
Definition: broadphase_bruteforce.h:44
Base callback class for collision queries. This class can be supersed by child classes to provide des...
Definition: broadphase_callbacks.h:50
Base callback class for distance queries. This class can be supersed by child classes to provide desi...
Definition: broadphase_callbacks.h:73