FCL  0.6.0
Flexible Collision Library
fcl::IntervalTreeCollisionManager< S > Class Template Reference

Collision manager based on interval tree. More...

#include <broadphase_interval_tree.h>

Inheritance diagram for fcl::IntervalTreeCollisionManager< S >:
fcl::BroadPhaseCollisionManager< S >

Classes

struct  EndPoint
 SAP end point. More...
 
struct  SAPInterval
 Extention interval tree's interval to SAP interval, adding more information. More...
 

Public Member Functions

void registerObject (CollisionObject< S > *obj)
 remove one object from the manager
 
void unregisterObject (CollisionObject< S > *obj)
 add one object to the manager
 
void setup ()
 initialize the manager, related with the specific type of manager
 
void update ()
 update the condition of manager
 
void update (CollisionObject< S > *updated_obj)
 update the manager by explicitly given the object updated
 
void update (const std::vector< CollisionObject< S > * > &updated_objs)
 update the manager by explicitly given the set of objects update
 
void clear ()
 clear the manager
 
void getObjects (std::vector< CollisionObject< S > * > &objs) const
 return the objects managed by the manager
 
void collide (CollisionObject< S > *obj, void *cdata, CollisionCallBack< S > callback) const
 perform collision test between one object and all the objects belonging to the manager
 
void distance (CollisionObject< S > *obj, void *cdata, DistanceCallBack< S > callback) const
 perform distance computation between one object and all the objects belonging to the manager
 
void collide (void *cdata, CollisionCallBack< S > callback) const
 perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
 
void distance (void *cdata, DistanceCallBack< S > callback) const
 perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
 
void collide (BroadPhaseCollisionManager< S > *other_manager, void *cdata, CollisionCallBack< S > callback) const
 perform collision test with objects belonging to another manager
 
void distance (BroadPhaseCollisionManager< S > *other_manager, void *cdata, DistanceCallBack< S > callback) const
 perform distance test with objects belonging to another manager
 
bool empty () const
 whether the manager is empty
 
size_t size () const
 the number of objects managed by the manager
 
- Public Member Functions inherited from fcl::BroadPhaseCollisionManager< S >
virtual void registerObjects (const std::vector< CollisionObject< S > * > &other_objs)
 add objects to the manager
 

Protected Member Functions

bool checkColl (typename std::deque< detail::SimpleInterval< S > * >::const_iterator pos_start, typename std::deque< detail::SimpleInterval< S > * >::const_iterator pos_end, CollisionObject< S > *obj, void *cdata, CollisionCallBack< S > callback) const
 
bool checkDist (typename std::deque< detail::SimpleInterval< S > * >::const_iterator pos_start, typename std::deque< detail::SimpleInterval< S > * >::const_iterator pos_end, CollisionObject< S > *obj, void *cdata, DistanceCallBack< S > callback, S &min_dist) const
 
bool collide_ (CollisionObject< S > *obj, void *cdata, CollisionCallBack< S > callback) const
 
bool distance_ (CollisionObject< S > *obj, void *cdata, DistanceCallBack< S > callback, S &min_dist) const
 
- Protected Member Functions inherited from fcl::BroadPhaseCollisionManager< S >
bool inTestedSet (CollisionObject< S > *a, CollisionObject< S > *b) const
 
void insertTestedSet (CollisionObject< S > *a, CollisionObject< S > *b) const
 

Protected Attributes

std::vector< EndPointendpoints [3]
 vector stores all the end points
 
detail::IntervalTree< S > * interval_trees [3]
 interval tree manages the intervals
 
std::map< CollisionObject< S > *, SAPInterval * > obj_interval_maps [3]
 
bool setup_
 tag for whether the interval tree is maintained suitably
 
- Protected Attributes inherited from fcl::BroadPhaseCollisionManager< S >
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.
 
bool enable_tested_set_
 

Detailed Description

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

Collision manager based on interval tree.


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