Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
hpp::fcl::IntervalTreeCollisionManager Class Reference

Collision manager based on interval tree. More...

#include <broadphase_interval_tree.h>

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

Classes

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

Public Types

typedef BroadPhaseCollisionManager Base
 

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Detailed Description

Collision manager based on interval tree.

Definition at line 51 of file broadphase_interval_tree.h.

Member Typedef Documentation

◆ Base

Definition at line 54 of file broadphase_interval_tree.h.

Constructor & Destructor Documentation

◆ IntervalTreeCollisionManager()

hpp::fcl::IntervalTreeCollisionManager::IntervalTreeCollisionManager ( )

Definition at line 139 of file broadphase_interval_tree.cpp.

◆ ~IntervalTreeCollisionManager()

hpp::fcl::IntervalTreeCollisionManager::~IntervalTreeCollisionManager ( )

Definition at line 144 of file broadphase_interval_tree.cpp.

Member Function Documentation

◆ checkColl()

bool hpp::fcl::IntervalTreeCollisionManager::checkColl ( typename std::deque< detail::SimpleInterval * >::const_iterator  pos_start,
typename std::deque< detail::SimpleInterval * >::const_iterator  pos_end,
CollisionObject obj,
CollisionCallBackBase callback 
) const
protected

Definition at line 584 of file broadphase_interval_tree.cpp.

◆ checkDist()

bool hpp::fcl::IntervalTreeCollisionManager::checkDist ( typename std::deque< detail::SimpleInterval * >::const_iterator  pos_start,
typename std::deque< detail::SimpleInterval * >::const_iterator  pos_end,
CollisionObject obj,
DistanceCallBackBase callback,
FCL_REAL min_dist 
) const
protected

Definition at line 603 of file broadphase_interval_tree.cpp.

◆ clear()

void hpp::fcl::IntervalTreeCollisionManager::clear ( )
virtual

clear the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 281 of file broadphase_interval_tree.cpp.

◆ collide() [1/3]

void hpp::fcl::IntervalTreeCollisionManager::collide ( BroadPhaseCollisionManager other_manager,
CollisionCallBackBase callback 
) const
virtual

perform collision test with objects belonging to another manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 522 of file broadphase_interval_tree.cpp.

◆ collide() [2/3]

void hpp::fcl::IntervalTreeCollisionManager::collide ( CollisionCallBackBase callback) const
virtual

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

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 451 of file broadphase_interval_tree.cpp.

◆ collide() [3/3]

void hpp::fcl::IntervalTreeCollisionManager::collide ( CollisionObject obj,
CollisionCallBackBase callback 
) const
virtual

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

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 320 of file broadphase_interval_tree.cpp.

◆ collide_()

bool hpp::fcl::IntervalTreeCollisionManager::collide_ ( CollisionObject obj,
CollisionCallBackBase callback 
) const
protected

Definition at line 328 of file broadphase_interval_tree.cpp.

◆ distance() [1/3]

void hpp::fcl::IntervalTreeCollisionManager::distance ( BroadPhaseCollisionManager other_manager,
DistanceCallBackBase callback 
) const
virtual

perform distance test with objects belonging to another manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 546 of file broadphase_interval_tree.cpp.

◆ distance() [2/3]

void hpp::fcl::IntervalTreeCollisionManager::distance ( CollisionObject obj,
DistanceCallBackBase callback 
) const
virtual

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

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 362 of file broadphase_interval_tree.cpp.

◆ distance() [3/3]

void hpp::fcl::IntervalTreeCollisionManager::distance ( DistanceCallBackBase callback) const
virtual

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

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 505 of file broadphase_interval_tree.cpp.

◆ distance_()

bool hpp::fcl::IntervalTreeCollisionManager::distance_ ( CollisionObject obj,
DistanceCallBackBase callback,
FCL_REAL min_dist 
) const
protected

Definition at line 371 of file broadphase_interval_tree.cpp.

◆ empty()

bool hpp::fcl::IntervalTreeCollisionManager::empty ( ) const
virtual

whether the manager is empty

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 574 of file broadphase_interval_tree.cpp.

◆ getObjects() [1/3]

virtual std::vector<CollisionObject*> hpp::fcl::BroadPhaseCollisionManager::getObjects
inline

return the objects managed by the manager

Definition at line 88 of file broadphase_collision_manager.h.

◆ getObjects() [2/3]

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

return the objects managed by the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 307 of file broadphase_interval_tree.cpp.

◆ getObjects() [3/3]

virtual void hpp::fcl::BroadPhaseCollisionManager::getObjects

return the objects managed by the manager

◆ registerObject()

void hpp::fcl::IntervalTreeCollisionManager::registerObject ( CollisionObject obj)
virtual

remove one object from the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 147 of file broadphase_interval_tree.cpp.

◆ setup()

void hpp::fcl::IntervalTreeCollisionManager::setup ( )
virtual

initialize the manager, related with the specific type of manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 172 of file broadphase_interval_tree.cpp.

◆ size()

size_t hpp::fcl::IntervalTreeCollisionManager::size ( ) const
virtual

the number of objects managed by the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 579 of file broadphase_interval_tree.cpp.

◆ unregisterObject()

void hpp::fcl::IntervalTreeCollisionManager::unregisterObject ( CollisionObject obj)
virtual

add one object to the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 44 of file broadphase_interval_tree.cpp.

◆ update() [1/3]

void hpp::fcl::IntervalTreeCollisionManager::update ( )
virtual

update the condition of manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Definition at line 208 of file broadphase_interval_tree.cpp.

◆ update() [2/3]

void hpp::fcl::IntervalTreeCollisionManager::update ( CollisionObject updated_obj)
virtual

update the manager by explicitly given the object updated

Reimplemented from hpp::fcl::BroadPhaseCollisionManager.

Definition at line 236 of file broadphase_interval_tree.cpp.

◆ update() [3/3]

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

update the manager by explicitly given the set of objects update

Reimplemented from hpp::fcl::BroadPhaseCollisionManager.

Definition at line 275 of file broadphase_interval_tree.cpp.

Member Data Documentation

◆ endpoints

std::vector<EndPoint> hpp::fcl::IntervalTreeCollisionManager::endpoints[3]
protected

vector stores all the end points

Definition at line 157 of file broadphase_interval_tree.h.

◆ interval_trees

detail::IntervalTree* hpp::fcl::IntervalTreeCollisionManager::interval_trees[3]
protected

interval tree manages the intervals

Definition at line 160 of file broadphase_interval_tree.h.

◆ obj_interval_maps

std::map<CollisionObject*, SAPInterval*> hpp::fcl::IntervalTreeCollisionManager::obj_interval_maps[3]
protected

Definition at line 162 of file broadphase_interval_tree.h.

◆ setup_

bool hpp::fcl::IntervalTreeCollisionManager::setup_
protected

tag for whether the interval tree is maintained suitably

Definition at line 165 of file broadphase_interval_tree.h.


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


hpp-fcl
Author(s):
autogenerated on Fri Aug 2 2024 02:45:16