coal 3.0.2
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
Loading...
Searching...
No Matches
coal::DynamicAABBTreeCollisionManager Class Reference

#include <coal/broadphase/broadphase_dynamic_AABB_tree.h>

Inheritance diagram for coal::DynamicAABBTreeCollisionManager:
coal::BroadPhaseCollisionManager

Public Types

typedef BroadPhaseCollisionManager Base
using DynamicAABBNode = detail::NodeBase<AABB>
using DynamicAABBTable

Public Member Functions

 DynamicAABBTreeCollisionManager ()
void registerObjects (const std::vector< CollisionObject * > &other_objs)
 add objects to the manager
void registerObject (CollisionObject *obj)
 add one object to the manager
void unregisterObject (CollisionObject *obj)
 remove one object from the manager
void setup ()
 initialize the manager, related with the specific type of manager
virtual 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
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
const detail::HierarchyTree< AABB > & getTree () const
 returns the AABB tree structure.
detail::HierarchyTree< AABB > & getTree ()
 returns the AABB tree structure.
virtual std::vector< CollisionObject * > getObjects () const
 return the objects managed by the manager
Public Member Functions inherited from coal::BroadPhaseCollisionManager
 BroadPhaseCollisionManager ()
virtual ~BroadPhaseCollisionManager ()

Public Attributes

int max_tree_nonbalanced_level
int tree_incremental_balance_pass
int * tree_topdown_balance_threshold {nullptr}
int * tree_topdown_level {nullptr}
int tree_init_level
bool octree_as_geometry_collide
bool octree_as_geometry_distance

Additional Inherited Members

Protected Member Functions inherited from coal::BroadPhaseCollisionManager
bool inTestedSet (CollisionObject *a, CollisionObject *b) const
void insertTestedSet (CollisionObject *a, CollisionObject *b) const
Protected Attributes inherited from coal::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_

Member Typedef Documentation

◆ Base

◆ DynamicAABBNode

◆ DynamicAABBTable

Initial value:
std::unordered_map<CollisionObject*, DynamicAABBNode*>

Constructor & Destructor Documentation

◆ DynamicAABBTreeCollisionManager()

coal::DynamicAABBTreeCollisionManager::DynamicAABBTreeCollisionManager()

Member Function Documentation

◆ clear()

void coal::DynamicAABBTreeCollisionManager::clear()
virtual

clear the manager

Implements coal::BroadPhaseCollisionManager.

◆ collide() [1/3]

void coal::DynamicAABBTreeCollisionManager::collide(BroadPhaseCollisionManager *other_manager_,
CollisionCallBackBase *callback ) const
virtual

perform collision test with objects belonging to another manager

Implements coal::BroadPhaseCollisionManager.

◆ collide() [2/3]

void coal::DynamicAABBTreeCollisionManager::collide(CollisionCallBackBase *callback)const
virtual

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

Implements coal::BroadPhaseCollisionManager.

◆ collide() [3/3]

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

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

Implements coal::BroadPhaseCollisionManager.

◆ distance() [1/3]

void coal::DynamicAABBTreeCollisionManager::distance(BroadPhaseCollisionManager *other_manager_,
DistanceCallBackBase *callback ) const
virtual

perform distance test with objects belonging to another manager

Implements coal::BroadPhaseCollisionManager.

◆ distance() [2/3]

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

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

Implements coal::BroadPhaseCollisionManager.

◆ distance() [3/3]

void coal::DynamicAABBTreeCollisionManager::distance(DistanceCallBackBase *callback)const
virtual

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

Implements coal::BroadPhaseCollisionManager.

◆ empty()

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

whether the manager is empty

Implements coal::BroadPhaseCollisionManager.

◆ getObjects() [1/2]

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

return the objects managed by the manager

Reimplemented from coal::BroadPhaseCollisionManager.

◆ getObjects() [2/2]

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

return the objects managed by the manager

Implements coal::BroadPhaseCollisionManager.

◆ getTree() [1/2]

detail::HierarchyTree< AABB > & coal::DynamicAABBTreeCollisionManager::getTree()

returns the AABB tree structure.

◆ getTree() [2/2]

const detail::HierarchyTree< AABB > & coal::DynamicAABBTreeCollisionManager::getTree()const

returns the AABB tree structure.

◆ registerObject()

void coal::DynamicAABBTreeCollisionManager::registerObject(CollisionObject *obj)
virtual

add one object to the manager

Implements coal::BroadPhaseCollisionManager.

◆ registerObjects()

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

add objects to the manager

Reimplemented from coal::BroadPhaseCollisionManager.

◆ setup()

void coal::DynamicAABBTreeCollisionManager::setup()
virtual

initialize the manager, related with the specific type of manager

Implements coal::BroadPhaseCollisionManager.

◆ size()

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

the number of objects managed by the manager

Implements coal::BroadPhaseCollisionManager.

◆ unregisterObject()

void coal::DynamicAABBTreeCollisionManager::unregisterObject(CollisionObject *obj)
virtual

remove one object from the manager

Implements coal::BroadPhaseCollisionManager.

◆ update() [1/3]

virtual void coal::DynamicAABBTreeCollisionManager::update()
virtual

update the condition of manager

Implements coal::BroadPhaseCollisionManager.

◆ update() [2/3]

void coal::DynamicAABBTreeCollisionManager::update(CollisionObject *updated_obj)
virtual

update the manager by explicitly given the object updated

Reimplemented from coal::BroadPhaseCollisionManager.

◆ update() [3/3]

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

update the manager by explicitly given the set of objects update

Reimplemented from coal::BroadPhaseCollisionManager.

Member Data Documentation

◆ max_tree_nonbalanced_level

int coal::DynamicAABBTreeCollisionManager::max_tree_nonbalanced_level

◆ octree_as_geometry_collide

bool coal::DynamicAABBTreeCollisionManager::octree_as_geometry_collide

◆ octree_as_geometry_distance

bool coal::DynamicAABBTreeCollisionManager::octree_as_geometry_distance

◆ tree_incremental_balance_pass

int coal::DynamicAABBTreeCollisionManager::tree_incremental_balance_pass

◆ tree_init_level

int coal::DynamicAABBTreeCollisionManager::tree_init_level

◆ tree_topdown_balance_threshold

int* coal::DynamicAABBTreeCollisionManager::tree_topdown_balance_threshold {nullptr}

◆ tree_topdown_level

int* coal::DynamicAABBTreeCollisionManager::tree_topdown_level {nullptr}

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