All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Member Functions | Protected Member Functions | Protected Attributes
fcl::IntervalTreeCollisionManager Class Reference

Collision manager based on interval tree. More...

#include <broadphase_interval_tree.h>

Inheritance diagram for fcl::IntervalTreeCollisionManager:
Inheritance graph
[legend]

List of all members.

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

Protected Member Functions

bool checkColl (std::deque< SimpleInterval * >::const_iterator pos_start, std::deque< SimpleInterval * >::const_iterator pos_end, CollisionObject *obj, void *cdata, CollisionCallBack callback) const
bool checkDist (std::deque< SimpleInterval * >::const_iterator pos_start, std::deque< SimpleInterval * >::const_iterator pos_end, CollisionObject *obj, void *cdata, DistanceCallBack callback, FCL_REAL &min_dist) const
bool collide_ (CollisionObject *obj, void *cdata, CollisionCallBack callback) const
bool distance_ (CollisionObject *obj, void *cdata, DistanceCallBack callback, FCL_REAL &min_dist) const

Protected Attributes

std::vector< EndPointendpoints [3]
 vector stores all the end points
IntervalTreeinterval_trees [3]
 interval tree manages the intervals
std::map< CollisionObject
*, SAPInterval * > 
obj_interval_maps [3]
bool setup_
 tag for whether the interval tree is maintained suitably

Detailed Description

Collision manager based on interval tree.

Definition at line 49 of file broadphase_interval_tree.h.


Constructor & Destructor Documentation

Definition at line 52 of file broadphase_interval_tree.h.

Definition at line 58 of file broadphase_interval_tree.h.


Member Function Documentation

bool fcl::IntervalTreeCollisionManager::checkColl ( std::deque< SimpleInterval * >::const_iterator  pos_start,
std::deque< SimpleInterval * >::const_iterator  pos_end,
CollisionObject obj,
void *  cdata,
CollisionCallBack  callback 
) const [protected]

Definition at line 598 of file broadphase_interval_tree.cpp.

bool fcl::IntervalTreeCollisionManager::checkDist ( std::deque< SimpleInterval * >::const_iterator  pos_start,
std::deque< SimpleInterval * >::const_iterator  pos_end,
CollisionObject obj,
void *  cdata,
DistanceCallBack  callback,
FCL_REAL min_dist 
) const [protected]

Definition at line 618 of file broadphase_interval_tree.cpp.

clear the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 298 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::collide ( CollisionObject obj,
void *  cdata,
CollisionCallBack  callback 
) const [virtual]

perform collision test between one object and all the objects belonging to the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 336 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::collide ( void *  cdata,
CollisionCallBack  callback 
) const [virtual]

perform collision test for the objects belonging to the manager (i.e., N^2 self collision)

Implements fcl::BroadPhaseCollisionManager.

Definition at line 471 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::collide ( BroadPhaseCollisionManager other_manager,
void *  cdata,
CollisionCallBack  callback 
) const [virtual]

perform collision test with objects belonging to another manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 543 of file broadphase_interval_tree.cpp.

bool fcl::IntervalTreeCollisionManager::collide_ ( CollisionObject obj,
void *  cdata,
CollisionCallBack  callback 
) const [protected]

Definition at line 342 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::distance ( CollisionObject obj,
void *  cdata,
DistanceCallBack  callback 
) const [virtual]

perform distance computation between one object and all the objects belonging to the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 378 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::distance ( void *  cdata,
DistanceCallBack  callback 
) const [virtual]

perform distance test for the objects belonging to the manager (i.e., N^2 self distance)

Implements fcl::BroadPhaseCollisionManager.

Definition at line 528 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::distance ( BroadPhaseCollisionManager other_manager,
void *  cdata,
DistanceCallBack  callback 
) const [virtual]

perform distance test with objects belonging to another manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 567 of file broadphase_interval_tree.cpp.

bool fcl::IntervalTreeCollisionManager::distance_ ( CollisionObject obj,
void *  cdata,
DistanceCallBack  callback,
FCL_REAL min_dist 
) const [protected]

Definition at line 385 of file broadphase_interval_tree.cpp.

bool fcl::IntervalTreeCollisionManager::empty ( ) const [virtual]

whether the manager is empty

Implements fcl::BroadPhaseCollisionManager.

Definition at line 593 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::getObjects ( std::vector< CollisionObject * > &  objs) const [virtual]

return the objects managed by the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 323 of file broadphase_interval_tree.cpp.

remove one object from the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 151 of file broadphase_interval_tree.cpp.

initialize the manager, related with the specific type of manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 176 of file broadphase_interval_tree.cpp.

size_t fcl::IntervalTreeCollisionManager::size ( ) const [inline, virtual]

the number of objects managed by the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 109 of file broadphase_interval_tree.h.

add one object to the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 45 of file broadphase_interval_tree.cpp.

update the condition of manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 214 of file broadphase_interval_tree.cpp.

update the manager by explicitly given the object updated

Reimplemented from fcl::BroadPhaseCollisionManager.

Definition at line 247 of file broadphase_interval_tree.cpp.

void fcl::IntervalTreeCollisionManager::update ( const std::vector< CollisionObject * > &  updated_objs) [virtual]

update the manager by explicitly given the set of objects update

Reimplemented from fcl::BroadPhaseCollisionManager.

Definition at line 292 of file broadphase_interval_tree.cpp.


Member Data Documentation

vector stores all the end points

Definition at line 149 of file broadphase_interval_tree.h.

interval tree manages the intervals

Definition at line 152 of file broadphase_interval_tree.h.

Definition at line 154 of file broadphase_interval_tree.h.

tag for whether the interval tree is maintained suitably

Definition at line 157 of file broadphase_interval_tree.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


fcl
Author(s): Jia Pan
autogenerated on Tue Jan 15 2013 16:05:31