Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
coal::DynamicAABBTreeCollisionManager Class Reference

#include <broadphase_dynamic_AABB_tree.h>

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

Public Types

typedef BroadPhaseCollisionManager Base
 
using DynamicAABBNode = detail::NodeBase< AABB >
 
using DynamicAABBTable = std::unordered_map< CollisionObject *, DynamicAABBNode * >
 

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

Public Attributes

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

Private Member Functions

void update_ (CollisionObject *updated_obj)
 

Private Attributes

detail::HierarchyTree< AABBdtree {}
 
bool setup_
 
std::unordered_map< CollisionObject *, DynamicAABBNode * > table
 

Additional Inherited Members

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

Definition at line 53 of file coal/broadphase/broadphase_dynamic_AABB_tree.h.

Member Typedef Documentation

◆ Base

◆ DynamicAABBNode

◆ DynamicAABBTable

Constructor & Destructor Documentation

◆ DynamicAABBTreeCollisionManager()

coal::DynamicAABBTreeCollisionManager::DynamicAABBTreeCollisionManager ( )

Member Function Documentation

◆ clear()

void coal::DynamicAABBTreeCollisionManager::clear ( )
virtual

clear the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 649 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ 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.

Definition at line 733 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ 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.

Definition at line 715 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ 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.

Definition at line 664 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ 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.

Definition at line 745 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ 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.

Definition at line 689 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ 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.

Definition at line 723 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ empty()

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

whether the manager is empty

Implements coal::BroadPhaseCollisionManager.

Definition at line 758 of file src/broadphase/broadphase_dynamic_AABB_tree.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::DynamicAABBTreeCollisionManager::getObjects ( std::vector< CollisionObject * > &  objs) const
virtual

return the objects managed by the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 655 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ getObjects() [3/3]

virtual void coal::BroadPhaseCollisionManager::getObjects

return the objects managed by the manager

◆ getTree() [1/2]

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

returns the AABB tree structure.

◆ getTree() [2/2]

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

returns the AABB tree structure.

Definition at line 764 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ registerObject()

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

add one object to the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 573 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ registerObjects()

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

add objects to the manager

Reimplemented from coal::BroadPhaseCollisionManager.

Definition at line 546 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ setup()

void coal::DynamicAABBTreeCollisionManager::setup ( )
virtual

initialize the manager, related with the specific type of manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 586 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ size()

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

the number of objects managed by the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 761 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ unregisterObject()

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

remove one object from the manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 579 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ update() [1/3]

void coal::DynamicAABBTreeCollisionManager::update ( )
virtual

update the condition of manager

Implements coal::BroadPhaseCollisionManager.

Definition at line 607 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ update() [2/3]

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

update the manager by explicitly given the object updated

Reimplemented from coal::BroadPhaseCollisionManager.

Definition at line 635 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ 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.

Definition at line 641 of file src/broadphase/broadphase_dynamic_AABB_tree.cpp.

◆ update_()

void coal::DynamicAABBTreeCollisionManager::update_ ( CollisionObject updated_obj)
private

Member Data Documentation

◆ dtree

detail::HierarchyTree<AABB> coal::DynamicAABBTreeCollisionManager::dtree {}
private

◆ 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

◆ setup_

bool coal::DynamicAABBTreeCollisionManager::setup_
private

◆ table

std::unordered_map<CollisionObject*, DynamicAABBNode*> coal::DynamicAABBTreeCollisionManager::table
private

◆ 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 files:


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