Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fcl::SaPCollisionManager< S > Class Template Reference

Rigorous SAP collision manager. More...

#include <broadphase_SaP.h>

Inheritance diagram for fcl::SaPCollisionManager< S >:
Inheritance graph
[legend]

Classes

struct  EndPoint
 End point for an interval. 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 More...
 
void collide (BroadPhaseCollisionManager< S > *other_manager, void *cdata, CollisionCallBack< S > callback) const
 perform collision test with objects belonging to another manager More...
 
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 More...
 
void collide (void *cdata, CollisionCallBack< S > callback) const
 perform collision test for the objects belonging to the manager (i.e., N^2 self collision) More...
 
void distance (BroadPhaseCollisionManager< S > *other_manager, void *cdata, DistanceCallBack< S > callback) const
 perform distance test with objects belonging to another manager More...
 
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 More...
 
void distance (void *cdata, DistanceCallBack< S > 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...
 
void getObjects (std::vector< CollisionObject< S > * > &objs) const
 return the objects managed by the manager More...
 
void registerObject (CollisionObject< S > *obj)
 remove one object from the manager More...
 
void registerObjects (const std::vector< CollisionObject< S > * > &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< S > *obj)
 add one object to the manager More...
 
void update ()
 update the condition of manager More...
 
void update (CollisionObject< S > *updated_obj)
 update the manager by explicitly given the object updated More...
 
void update (const std::vector< CollisionObject< S > * > &updated_objs)
 update the manager by explicitly given the set of objects update More...
 
 ~SaPCollisionManager ()
 
- Public Member Functions inherited from fcl::BroadPhaseCollisionManager< S >
 BroadPhaseCollisionManager ()
 
virtual ~BroadPhaseCollisionManager ()
 

Protected Member Functions

void addToOverlapPairs (const SaPPair &p)
 
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
 
void removeFromOverlapPairs (const SaPPair &p)
 
void update_ (SaPAABB *updated_aabb)
 
void updateVelist ()
 
- Protected Member Functions inherited from fcl::BroadPhaseCollisionManager< S >
void insertTestedSet (CollisionObject< S > *a, CollisionObject< S > *b) const
 
bool inTestedSet (CollisionObject< S > *a, CollisionObject< S > *b) const
 

Protected Attributes

std::list< SaPAABB * > AABB_arr
 SAP interval list. More...
 
EndPointelist [3]
 End point list for x, y, z coordinates. More...
 
class FCL_EXPORT isNotValidPair
 Functor to help remove collision pairs no longer valid (i.e., should be culled away) More...
 
class FCL_EXPORT isUnregistered
 Functor to help unregister one object. More...
 
std::map< CollisionObject< S > *, SaPAABB * > obj_aabb_map
 
size_t 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 fcl::BroadPhaseCollisionManager< S >
bool enable_tested_set_
 
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. More...
 

Detailed Description

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

Rigorous SAP collision manager.

Definition at line 51 of file broadphase_SaP.h.

Constructor & Destructor Documentation

◆ SaPCollisionManager()

template<typename S >
fcl::SaPCollisionManager< S >::SaPCollisionManager ( )

◆ ~SaPCollisionManager()

template<typename S >
fcl::SaPCollisionManager< S >::~SaPCollisionManager ( )

Member Function Documentation

◆ addToOverlapPairs()

template<typename S >
void fcl::SaPCollisionManager< S >::addToOverlapPairs ( const SaPPair p)
protected

◆ clear()

template<typename S >
void fcl::SaPCollisionManager< S >::clear ( )
virtual

clear the manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ collide() [1/3]

template<typename S >
void fcl::SaPCollisionManager< S >::collide ( BroadPhaseCollisionManager< S > *  other_manager,
void *  cdata,
CollisionCallBack< S >  callback 
) const
virtual

perform collision test with objects belonging to another manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ collide() [2/3]

template<typename S >
void fcl::SaPCollisionManager< S >::collide ( CollisionObject< S > *  obj,
void *  cdata,
CollisionCallBack< S >  callback 
) const
virtual

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

Implements fcl::BroadPhaseCollisionManager< S >.

◆ collide() [3/3]

template<typename S >
void fcl::SaPCollisionManager< S >::collide ( void *  cdata,
CollisionCallBack< S >  callback 
) const
virtual

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

Implements fcl::BroadPhaseCollisionManager< S >.

◆ collide_()

template<typename S >
bool fcl::SaPCollisionManager< S >::collide_ ( CollisionObject< S > *  obj,
void *  cdata,
CollisionCallBack< S >  callback 
) const
protected

◆ distance() [1/3]

template<typename S >
void fcl::SaPCollisionManager< S >::distance ( BroadPhaseCollisionManager< S > *  other_manager,
void *  cdata,
DistanceCallBack< S >  callback 
) const
virtual

perform distance test with objects belonging to another manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ distance() [2/3]

template<typename S >
void fcl::SaPCollisionManager< S >::distance ( CollisionObject< S > *  obj,
void *  cdata,
DistanceCallBack< S >  callback 
) const
virtual

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

Implements fcl::BroadPhaseCollisionManager< S >.

◆ distance() [3/3]

template<typename S >
void fcl::SaPCollisionManager< S >::distance ( void *  cdata,
DistanceCallBack< S >  callback 
) const
virtual

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

Implements fcl::BroadPhaseCollisionManager< S >.

◆ distance_()

template<typename S >
bool fcl::SaPCollisionManager< S >::distance_ ( CollisionObject< S > *  obj,
void *  cdata,
DistanceCallBack< S >  callback,
S &  min_dist 
) const
protected

◆ empty()

template<typename S >
bool fcl::SaPCollisionManager< S >::empty ( ) const
virtual

whether the manager is empty

Implements fcl::BroadPhaseCollisionManager< S >.

◆ getObjects()

template<typename S >
void fcl::SaPCollisionManager< S >::getObjects ( std::vector< CollisionObject< S > * > &  objs) const
virtual

return the objects managed by the manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ registerObject()

template<typename S >
void fcl::SaPCollisionManager< S >::registerObject ( CollisionObject< S > *  obj)
virtual

remove one object from the manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ registerObjects()

template<typename S >
void fcl::SaPCollisionManager< S >::registerObjects ( const std::vector< CollisionObject< S > * > &  other_objs)
virtual

add objects to the manager

Reimplemented from fcl::BroadPhaseCollisionManager< S >.

◆ removeFromOverlapPairs()

template<typename S >
void fcl::SaPCollisionManager< S >::removeFromOverlapPairs ( const SaPPair p)
protected

◆ setup()

template<typename S >
void fcl::SaPCollisionManager< S >::setup ( )
virtual

initialize the manager, related with the specific type of manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ size()

template<typename S >
size_t fcl::SaPCollisionManager< S >::size ( ) const
virtual

the number of objects managed by the manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ unregisterObject()

template<typename S >
void fcl::SaPCollisionManager< S >::unregisterObject ( CollisionObject< S > *  obj)
virtual

add one object to the manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ update() [1/3]

template<typename S >
void fcl::SaPCollisionManager< S >::update ( )
virtual

update the condition of manager

Implements fcl::BroadPhaseCollisionManager< S >.

◆ update() [2/3]

template<typename S >
void fcl::SaPCollisionManager< S >::update ( CollisionObject< S > *  updated_obj)
virtual

update the manager by explicitly given the object updated

Reimplemented from fcl::BroadPhaseCollisionManager< S >.

◆ update() [3/3]

template<typename S >
void fcl::SaPCollisionManager< S >::update ( const std::vector< CollisionObject< S > * > &  updated_objs)
virtual

update the manager by explicitly given the set of objects update

Reimplemented from fcl::BroadPhaseCollisionManager< S >.

◆ update_()

template<typename S >
void fcl::SaPCollisionManager< S >::update_ ( SaPAABB updated_aabb)
protected

◆ updateVelist()

template<typename S >
void fcl::SaPCollisionManager< S >::updateVelist ( )
protected

Member Data Documentation

◆ AABB_arr

template<typename S >
std::list<SaPAABB*> fcl::SaPCollisionManager< S >::AABB_arr
protected

SAP interval list.

Definition at line 138 of file broadphase_SaP.h.

◆ elist

template<typename S >
EndPoint* fcl::SaPCollisionManager< S >::elist[3]
protected

End point list for x, y, z coordinates.

Definition at line 132 of file broadphase_SaP.h.

◆ isNotValidPair

template<typename S >
class FCL_EXPORT fcl::SaPCollisionManager< S >::isNotValidPair
protected

Functor to help remove collision pairs no longer valid (i.e., should be culled away)

Definition at line 125 of file broadphase_SaP.h.

◆ isUnregistered

template<typename S >
class FCL_EXPORT fcl::SaPCollisionManager< S >::isUnregistered
protected

Functor to help unregister one object.

Definition at line 122 of file broadphase_SaP.h.

◆ obj_aabb_map

template<typename S >
std::map<CollisionObject<S>*, SaPAABB*> fcl::SaPCollisionManager< S >::obj_aabb_map
protected

Definition at line 145 of file broadphase_SaP.h.

◆ optimal_axis

template<typename S >
size_t fcl::SaPCollisionManager< S >::optimal_axis
protected

Definition at line 143 of file broadphase_SaP.h.

◆ overlap_pairs

template<typename S >
std::list<SaPPair> fcl::SaPCollisionManager< S >::overlap_pairs
protected

The pair of objects that should further check for collision.

Definition at line 141 of file broadphase_SaP.h.

◆ velist

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

vector version of elist, for acceleration

Definition at line 135 of file broadphase_SaP.h.


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


fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:50