Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
coal::SaPCollisionManager Class Reference

Rigorous SAP collision manager. More...

#include <broadphase_SaP.h>

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

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 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...
 
void registerObject (CollisionObject *obj)
 remove one object from the manager More...
 
void registerObjects (const std::vector< CollisionObject * > &other_objs)
 add objects to the manager More...
 
 SaPCollisionManager ()
 
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...
 
 ~SaPCollisionManager ()
 
- Public Member Functions inherited from coal::BroadPhaseCollisionManager
 BroadPhaseCollisionManager ()
 
virtual std::vector< CollisionObject * > getObjects () const
 return the objects managed by the manager More...
 
virtual ~BroadPhaseCollisionManager ()
 

Protected Member Functions

void addToOverlapPairs (const SaPPair &p)
 
bool collide_ (CollisionObject *obj, CollisionCallBackBase *callback) const
 
bool distance_ (CollisionObject *obj, DistanceCallBackBase *callback, CoalScalar &min_dist) const
 
void removeFromOverlapPairs (const SaPPair &p)
 
void update_ (SaPAABB *updated_aabb)
 
void updateVelist ()
 
- Protected Member Functions inherited from coal::BroadPhaseCollisionManager
void insertTestedSet (CollisionObject *a, CollisionObject *b) const
 
bool inTestedSet (CollisionObject *a, CollisionObject *b) const
 

Protected Attributes

std::list< SaPAABB * > AABB_arr
 SAP interval list. More...
 
EndPointelist [3]
 End point list for x, y, z coordinates. More...
 
std::map< CollisionObject *, SaPAABB * > obj_aabb_map
 
int optimal_axis
 
std::list< SaPPairoverlap_pairs
 The pair of objects that should further check for collision. More...
 
std::vector< EndPoint * > velist [3]
 vector version of elist, for acceleration More...
 
- Protected Attributes inherited from coal::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

Rigorous SAP collision manager.

Definition at line 49 of file coal/broadphase/broadphase_SaP.h.

Member Typedef Documentation

◆ Base

Definition at line 51 of file coal/broadphase/broadphase_SaP.h.

Constructor & Destructor Documentation

◆ SaPCollisionManager()

coal::SaPCollisionManager::SaPCollisionManager ( )

Definition at line 84 of file broadphase_SaP.cpp.

◆ ~SaPCollisionManager()

coal::SaPCollisionManager::~SaPCollisionManager ( )

Definition at line 93 of file broadphase_SaP.cpp.

Member Function Documentation

◆ addToOverlapPairs()

void coal::SaPCollisionManager::addToOverlapPairs ( const SaPPair p)
protected

Definition at line 549 of file broadphase_SaP.cpp.

◆ clear()

void coal::SaPCollisionManager::clear ( )
virtual

clear the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 470 of file broadphase_SaP.cpp.

◆ collide() [1/3]

void coal::SaPCollisionManager::collide ( BroadPhaseCollisionManager other_manager,
CollisionCallBackBase callback 
) const
virtual

perform collision test with objects belonging to another manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 720 of file broadphase_SaP.cpp.

◆ collide() [2/3]

void coal::SaPCollisionManager::collide ( CollisionCallBackBase callback) const
virtual

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

Implements coal::BroadPhaseCollisionManager.

Definition at line 688 of file broadphase_SaP.cpp.

◆ collide() [3/3]

void coal::SaPCollisionManager::collide ( CollisionObject obj,
CollisionCallBackBase callback 
) const
virtual

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

Implements coal::BroadPhaseCollisionManager.

Definition at line 576 of file broadphase_SaP.cpp.

◆ collide_()

bool coal::SaPCollisionManager::collide_ ( CollisionObject obj,
CollisionCallBackBase callback 
) const
protected

Definition at line 504 of file broadphase_SaP.cpp.

◆ distance() [1/3]

void coal::SaPCollisionManager::distance ( BroadPhaseCollisionManager other_manager,
DistanceCallBackBase callback 
) const
virtual

perform distance test with objects belonging to another manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 747 of file broadphase_SaP.cpp.

◆ distance() [2/3]

void coal::SaPCollisionManager::distance ( CollisionObject obj,
DistanceCallBackBase callback 
) const
virtual

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

Implements coal::BroadPhaseCollisionManager.

Definition at line 677 of file broadphase_SaP.cpp.

◆ distance() [3/3]

void coal::SaPCollisionManager::distance ( DistanceCallBackBase callback) const
virtual

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

Implements coal::BroadPhaseCollisionManager.

Definition at line 702 of file broadphase_SaP.cpp.

◆ distance_()

bool coal::SaPCollisionManager::distance_ ( CollisionObject obj,
DistanceCallBackBase callback,
CoalScalar min_dist 
) const
protected

Definition at line 585 of file broadphase_SaP.cpp.

◆ empty()

bool coal::SaPCollisionManager::empty ( ) const
virtual

whether the manager is empty

Implements coal::BroadPhaseCollisionManager.

Definition at line 776 of file broadphase_SaP.cpp.

◆ getObjects() [1/3]

virtual std::vector<CollisionObject*> coal::BroadPhaseCollisionManager::getObjects
inline

return the objects managed by the manager

Definition at line 87 of file coal/broadphase/broadphase_collision_manager.h.

◆ getObjects() [2/3]

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

return the objects managed by the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 493 of file broadphase_SaP.cpp.

◆ getObjects() [3/3]

virtual void coal::BroadPhaseCollisionManager::getObjects

return the objects managed by the manager

◆ registerObject()

void coal::SaPCollisionManager::registerObject ( CollisionObject obj)
virtual

remove one object from the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 182 of file broadphase_SaP.cpp.

◆ registerObjects()

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

add objects to the manager

Reimplemented from coal::BroadPhaseCollisionManager.

Definition at line 96 of file broadphase_SaP.cpp.

◆ removeFromOverlapPairs()

void coal::SaPCollisionManager::removeFromOverlapPairs ( const SaPPair p)
protected

Definition at line 563 of file broadphase_SaP.cpp.

◆ setup()

void coal::SaPCollisionManager::setup ( )
virtual

initialize the manager, related with the specific type of manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 273 of file broadphase_SaP.cpp.

◆ size()

size_t coal::SaPCollisionManager::size ( ) const
virtual

the number of objects managed by the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 779 of file broadphase_SaP.cpp.

◆ unregisterObject()

void coal::SaPCollisionManager::unregisterObject ( CollisionObject obj)
virtual

add one object to the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 43 of file broadphase_SaP.cpp.

◆ update() [1/3]

void coal::SaPCollisionManager::update ( )
virtual

update the condition of manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 459 of file broadphase_SaP.cpp.

◆ update() [2/3]

void coal::SaPCollisionManager::update ( CollisionObject updated_obj)
virtual

update the manager by explicitly given the object updated

Reimplemented from coal::BroadPhaseCollisionManager.

Definition at line 439 of file broadphase_SaP.cpp.

◆ update() [3/3]

void coal::SaPCollisionManager::update ( const std::vector< CollisionObject * > &  updated_objs)
virtual

update the manager by explicitly given the set of objects update

Reimplemented from coal::BroadPhaseCollisionManager.

Definition at line 448 of file broadphase_SaP.cpp.

◆ update_()

void coal::SaPCollisionManager::update_ ( SaPAABB updated_aabb)
protected

Definition at line 288 of file broadphase_SaP.cpp.

◆ updateVelist()

void coal::SaPCollisionManager::updateVelist ( )
protected

Definition at line 425 of file broadphase_SaP.cpp.

Member Data Documentation

◆ AABB_arr

std::list<SaPAABB*> coal::SaPCollisionManager::AABB_arr
protected

SAP interval list.

Definition at line 203 of file coal/broadphase/broadphase_SaP.h.

◆ elist

EndPoint* coal::SaPCollisionManager::elist[3]
protected

End point list for x, y, z coordinates.

Definition at line 197 of file coal/broadphase/broadphase_SaP.h.

◆ obj_aabb_map

std::map<CollisionObject*, SaPAABB*> coal::SaPCollisionManager::obj_aabb_map
protected

Definition at line 210 of file coal/broadphase/broadphase_SaP.h.

◆ optimal_axis

int coal::SaPCollisionManager::optimal_axis
protected

Definition at line 208 of file coal/broadphase/broadphase_SaP.h.

◆ overlap_pairs

std::list<SaPPair> coal::SaPCollisionManager::overlap_pairs
protected

The pair of objects that should further check for collision.

Definition at line 206 of file coal/broadphase/broadphase_SaP.h.

◆ velist

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

vector version of elist, for acceleration

Definition at line 200 of file coal/broadphase/broadphase_SaP.h.


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


hpp-fcl
Author(s):
autogenerated on Sat Nov 23 2024 03:45:00