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

Rigorous SAP collision manager. More...

#include <broadphase_SaP.h>

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

List of all members.

Classes

struct  EndPoint
 End point for an interval. More...
class  isNotValidPair
 Functor to help remove collision pairs no longer valid (i.e., should be culled away) More...
class  isUnregistered
 Functor to help unregister one object. More...
struct  SaPAABB
 SAP interval for one object. More...
struct  SaPPair
 A pair of objects that are not culling away and should further check collision. 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
void registerObject (CollisionObject *obj)
 remove one object from the manager
void registerObjects (const std::vector< CollisionObject * > &other_objs)
 add objects to the manager
 SaPCollisionManager ()
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
 ~SaPCollisionManager ()

Protected Member Functions

void addToOverlapPairs (const SaPPair &p)
bool collide_ (CollisionObject *obj, void *cdata, CollisionCallBack callback) const
bool distance_ (CollisionObject *obj, void *cdata, DistanceCallBack callback, FCL_REAL &min_dist) const
void removeFromOverlapPairs (const SaPPair &p)
void update_ (SaPAABB *updated_aabb)
void updateVelist ()

Protected Attributes

std::list< SaPAABB * > AABB_arr
 SAP interval list.
EndPointelist [3]
 End point list for x, y, z coordinates.
std::map< CollisionObject
*, SaPAABB * > 
obj_aabb_map
size_t optimal_axis
std::list< SaPPairoverlap_pairs
 The pair of objects that should further check for collision.
std::vector< EndPoint * > velist [3]
 vector version of elist, for acceleration

Detailed Description

Rigorous SAP collision manager.

Definition at line 49 of file broadphase_SaP.h.


Constructor & Destructor Documentation

Definition at line 53 of file broadphase_SaP.h.

Definition at line 62 of file broadphase_SaP.h.


Member Function Documentation

void fcl::SaPCollisionManager::addToOverlapPairs ( const SaPPair p) [inline, protected]

Definition at line 276 of file broadphase_SaP.h.

void fcl::SaPCollisionManager::clear ( ) [virtual]

clear the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 459 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::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 538 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::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 660 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::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 693 of file broadphase_SaP.cpp.

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

Definition at line 495 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::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 651 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::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 674 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::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 723 of file broadphase_SaP.cpp.

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

Definition at line 545 of file broadphase_SaP.cpp.

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

whether the manager is empty

Implements fcl::BroadPhaseCollisionManager.

Definition at line 755 of file broadphase_SaP.cpp.

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

return the objects managed by the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 485 of file broadphase_SaP.cpp.

remove one object from the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 175 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::registerObjects ( const std::vector< CollisionObject * > &  other_objs) [virtual]

add objects to the manager

Reimplemented from fcl::BroadPhaseCollisionManager.

Definition at line 90 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::removeFromOverlapPairs ( const SaPPair p) [inline, protected]

Definition at line 294 of file broadphase_SaP.h.

void fcl::SaPCollisionManager::setup ( ) [virtual]

initialize the manager, related with the specific type of manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 273 of file broadphase_SaP.cpp.

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

the number of objects managed by the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 116 of file broadphase_SaP.h.

add one object to the manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 45 of file broadphase_SaP.cpp.

update the condition of manager

Implements fcl::BroadPhaseCollisionManager.

Definition at line 446 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::update ( CollisionObject updated_obj) [virtual]

update the manager by explicitly given the object updated

Reimplemented from fcl::BroadPhaseCollisionManager.

Definition at line 427 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::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 436 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::update_ ( SaPAABB updated_aabb) [protected]

Definition at line 285 of file broadphase_SaP.cpp.

void fcl::SaPCollisionManager::updateVelist ( ) [inline, protected]

Definition at line 240 of file broadphase_SaP.h.


Member Data Documentation

SAP interval list.

Definition at line 263 of file broadphase_SaP.h.

End point list for x, y, z coordinates.

Definition at line 257 of file broadphase_SaP.h.

Definition at line 270 of file broadphase_SaP.h.

Definition at line 268 of file broadphase_SaP.h.

The pair of objects that should further check for collision.

Definition at line 266 of file broadphase_SaP.h.

std::vector<EndPoint*> fcl::SaPCollisionManager::velist[3] [protected]

vector version of elist, for acceleration

Definition at line 260 of file broadphase_SaP.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:32