Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fcl::BroadPhaseCollisionManager< S > Class Template 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 <broadphase_collision_manager.h>

Inheritance diagram for fcl::BroadPhaseCollisionManager< S >:
Inheritance graph
[legend]

Public Member Functions

 BroadPhaseCollisionManager ()
 
virtual void clear ()=0
 clear the manager More...
 
virtual void collide (BroadPhaseCollisionManager *other_manager, void *cdata, CollisionCallBack< S > callback) const =0
 perform collision test with objects belonging to another manager More...
 
virtual void collide (CollisionObject< S > *obj, void *cdata, CollisionCallBack< S > callback) const =0
 perform collision test between one object and all the objects belonging to the manager More...
 
virtual void collide (void *cdata, CollisionCallBack< S > callback) const =0
 perform collision test for the objects belonging to the manager (i.e., N^2 self collision) More...
 
virtual void distance (BroadPhaseCollisionManager *other_manager, void *cdata, DistanceCallBack< S > callback) const =0
 perform distance test with objects belonging to another manager More...
 
virtual void distance (CollisionObject< S > *obj, void *cdata, DistanceCallBack< S > callback) const =0
 perform distance computation between one object and all the objects belonging to the manager More...
 
virtual void distance (void *cdata, DistanceCallBack< S > callback) const =0
 perform distance test for the objects belonging to the manager (i.e., N^2 self distance) More...
 
virtual bool empty () const =0
 whether the manager is empty More...
 
virtual void getObjects (std::vector< CollisionObject< S > * > &objs) const =0
 return the objects managed by the manager More...
 
virtual void registerObject (CollisionObject< S > *obj)=0
 add one object to the manager More...
 
virtual void registerObjects (const std::vector< CollisionObject< S > * > &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< S > *obj)=0
 remove one object from the manager More...
 
virtual void update ()=0
 update the condition of manager More...
 
virtual void update (CollisionObject< S > *updated_obj)
 update the manager by explicitly given the object updated More...
 
virtual void update (const std::vector< CollisionObject< S > * > &updated_objs)
 update the manager by explicitly given the set of objects update More...
 
virtual ~BroadPhaseCollisionManager ()
 

Protected Member Functions

void insertTestedSet (CollisionObject< S > *a, CollisionObject< S > *b) const
 
bool inTestedSet (CollisionObject< S > *a, CollisionObject< S > *b) const
 

Protected Attributes

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

Detailed Description

template<typename S>
class fcl::BroadPhaseCollisionManager< S >

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 66 of file broadphase_collision_manager.h.

Constructor & Destructor Documentation

◆ BroadPhaseCollisionManager()

Definition at line 53 of file broadphase_collision_manager-inl.h.

◆ ~BroadPhaseCollisionManager()

template<typename S >
fcl::BroadPhaseCollisionManager< S >::~BroadPhaseCollisionManager
virtual

Definition at line 61 of file broadphase_collision_manager-inl.h.

Member Function Documentation

◆ clear()

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::clear ( )
pure virtual

◆ collide() [1/3]

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::collide ( BroadPhaseCollisionManager< S > *  other_manager,
void *  cdata,
CollisionCallBack< S >  callback 
) const
pure virtual

◆ collide() [2/3]

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::collide ( CollisionObject< S > *  obj,
void *  cdata,
CollisionCallBack< S >  callback 
) const
pure virtual

◆ collide() [3/3]

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::collide ( void *  cdata,
CollisionCallBack< S >  callback 
) const
pure virtual

◆ distance() [1/3]

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::distance ( BroadPhaseCollisionManager< S > *  other_manager,
void *  cdata,
DistanceCallBack< S >  callback 
) const
pure virtual

◆ distance() [2/3]

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::distance ( CollisionObject< S > *  obj,
void *  cdata,
DistanceCallBack< S >  callback 
) const
pure virtual

◆ distance() [3/3]

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::distance ( void *  cdata,
DistanceCallBack< S >  callback 
) const
pure virtual

◆ empty()

template<typename S >
virtual bool fcl::BroadPhaseCollisionManager< S >::empty ( ) const
pure virtual

◆ getObjects()

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

◆ insertTestedSet()

template<typename S >
void fcl::BroadPhaseCollisionManager< S >::insertTestedSet ( CollisionObject< S > *  a,
CollisionObject< S > *  b 
) const
protected

Definition at line 105 of file broadphase_collision_manager-inl.h.

◆ inTestedSet()

template<typename S >
bool fcl::BroadPhaseCollisionManager< S >::inTestedSet ( CollisionObject< S > *  a,
CollisionObject< S > *  b 
) const
protected

Definition at line 96 of file broadphase_collision_manager-inl.h.

◆ registerObject()

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::registerObject ( CollisionObject< S > *  obj)
pure virtual

◆ registerObjects()

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

◆ setup()

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::setup ( )
pure virtual

◆ size()

template<typename S >
virtual size_t fcl::BroadPhaseCollisionManager< S >::size ( ) const
pure virtual

◆ unregisterObject()

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::unregisterObject ( CollisionObject< S > *  obj)
pure virtual

◆ update() [1/3]

template<typename S >
virtual void fcl::BroadPhaseCollisionManager< S >::update ( )
pure virtual

◆ update() [2/3]

template<typename S >
void fcl::BroadPhaseCollisionManager< S >::update ( CollisionObject< S > *  updated_obj)
virtual

◆ update() [3/3]

template<typename S >
void fcl::BroadPhaseCollisionManager< S >::update ( const std::vector< CollisionObject< S > * > &  updated_objs)
virtual

Member Data Documentation

◆ enable_tested_set_

template<typename S >
bool fcl::BroadPhaseCollisionManager< S >::enable_tested_set_
mutableprotected

Definition at line 128 of file broadphase_collision_manager.h.

◆ tested_set

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

Definition at line 127 of file broadphase_collision_manager.h.


The documentation for this class was generated from the following files:


fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:50