hpp-fcl 2.4.5
HPP fork of FCL -- The Flexible Collision Library
Loading...
Searching...
No Matches
hpp::fcl::SSaPCollisionManager Class Reference

Simple SAP collision manager. More...

#include <hpp/fcl/broadphase/broadphase_SSaP.h>

Inheritance diagram for hpp::fcl::SSaPCollisionManager:
Collaboration diagram for hpp::fcl::SSaPCollisionManager:

Public Types

typedef BroadPhaseCollisionManager Base
 

Public Member Functions

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

Protected Member Functions

bool checkColl (typename std::vector< CollisionObject * >::const_iterator pos_start, typename std::vector< CollisionObject * >::const_iterator pos_end, CollisionObject *obj, CollisionCallBackBase *callback) const
 check collision between one object and a list of objects, return value is whether stop is possible
 
bool checkDis (typename std::vector< CollisionObject * >::const_iterator pos_start, typename std::vector< CollisionObject * >::const_iterator pos_end, CollisionObject *obj, DistanceCallBackBase *callback, FCL_REAL &min_dist) const
 check distance between one object and a list of objects, return value is whether stop is possible
 
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
bool inTestedSet (CollisionObject *a, CollisionObject *b) const
 
void insertTestedSet (CollisionObject *a, CollisionObject *b) const
 

Static Protected Member Functions

static int selectOptimalAxis (const std::vector< CollisionObject * > &objs_x, const std::vector< CollisionObject * > &objs_y, const std::vector< CollisionObject * > &objs_z, typename std::vector< CollisionObject * >::const_iterator &it_beg, typename std::vector< CollisionObject * >::const_iterator &it_end)
 

Protected Attributes

std::vector< CollisionObject * > objs_x
 Objects sorted according to lower x value.
 
std::vector< CollisionObject * > objs_y
 Objects sorted according to lower y value.
 
std::vector< CollisionObject * > objs_z
 Objects sorted according to lower z value.
 
bool setup_
 tag about whether the environment is maintained suitably (i.e., the objs_x, objs_y, objs_z are sorted correctly
 
- Protected Attributes inherited from hpp::fcl::BroadPhaseCollisionManager
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.
 
bool enable_tested_set_
 

Detailed Description

Simple SAP collision manager.

Member Typedef Documentation

◆ Base

Constructor & Destructor Documentation

◆ SSaPCollisionManager()

hpp::fcl::SSaPCollisionManager::SSaPCollisionManager ( )

Member Function Documentation

◆ checkColl()

bool hpp::fcl::SSaPCollisionManager::checkColl ( typename std::vector< CollisionObject * >::const_iterator pos_start,
typename std::vector< CollisionObject * >::const_iterator pos_end,
CollisionObject * obj,
CollisionCallBackBase * callback ) const
protected

check collision between one object and a list of objects, return value is whether stop is possible

◆ checkDis()

bool hpp::fcl::SSaPCollisionManager::checkDis ( typename std::vector< CollisionObject * >::const_iterator pos_start,
typename std::vector< CollisionObject * >::const_iterator pos_end,
CollisionObject * obj,
DistanceCallBackBase * callback,
FCL_REAL & min_dist ) const
protected

check distance between one object and a list of objects, return value is whether stop is possible

◆ clear()

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

clear the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ collide() [1/3]

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

perform collision test with objects belonging to another manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ collide() [2/3]

void hpp::fcl::SSaPCollisionManager::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.

◆ collide() [3/3]

void hpp::fcl::SSaPCollisionManager::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.

◆ collide_()

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

◆ distance() [1/3]

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

perform distance test with objects belonging to another manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ distance() [2/3]

void hpp::fcl::SSaPCollisionManager::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.

◆ distance() [3/3]

void hpp::fcl::SSaPCollisionManager::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.

◆ distance_()

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

◆ empty()

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

whether the manager is empty

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ getObjects() [1/2]

virtual std::vector< CollisionObject * > hpp::fcl::BroadPhaseCollisionManager::getObjects ( ) const
inlinevirtual

return the objects managed by the manager

Reimplemented from hpp::fcl::BroadPhaseCollisionManager.

◆ getObjects() [2/2]

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

return the objects managed by the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ registerObject()

void hpp::fcl::SSaPCollisionManager::registerObject ( CollisionObject * obj)
virtual

remove one object from the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ selectOptimalAxis()

static int hpp::fcl::SSaPCollisionManager::selectOptimalAxis ( const std::vector< CollisionObject * > & objs_x,
const std::vector< CollisionObject * > & objs_y,
const std::vector< CollisionObject * > & objs_z,
typename std::vector< CollisionObject * >::const_iterator & it_beg,
typename std::vector< CollisionObject * >::const_iterator & it_end )
staticprotected

◆ setup()

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

initialize the manager, related with the specific type of manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ size()

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

the number of objects managed by the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ unregisterObject()

void hpp::fcl::SSaPCollisionManager::unregisterObject ( CollisionObject * obj)
virtual

add one object to the manager

Implements hpp::fcl::BroadPhaseCollisionManager.

◆ update()

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

update the condition of manager

Implements hpp::fcl::BroadPhaseCollisionManager.

Member Data Documentation

◆ objs_x

std::vector<CollisionObject*> hpp::fcl::SSaPCollisionManager::objs_x
protected

Objects sorted according to lower x value.

◆ objs_y

std::vector<CollisionObject*> hpp::fcl::SSaPCollisionManager::objs_y
protected

Objects sorted according to lower y value.

◆ objs_z

std::vector<CollisionObject*> hpp::fcl::SSaPCollisionManager::objs_z
protected

Objects sorted according to lower z value.

◆ setup_

bool hpp::fcl::SSaPCollisionManager::setup_
protected

tag about whether the environment is maintained suitably (i.e., the objs_x, objs_y, objs_z are sorted correctly


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