Class DynamicAABBTreeCollisionManager

Inheritance Relationships

Base Type

Class Documentation

class DynamicAABBTreeCollisionManager : public coal::BroadPhaseCollisionManager

Public Types

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

Public Functions

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

add objects to the manager

virtual void registerObject(CollisionObject *obj)

add one object to the manager

virtual void unregisterObject(CollisionObject *obj)

remove one object from the manager

virtual void setup()

initialize the manager, related with the specific type of manager

virtual void update()

update the condition of 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

virtual void clear()

clear the manager

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

return the objects managed by the manager

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

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

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

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

virtual void collide(CollisionCallBackBase *callback) const

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

virtual void distance(DistanceCallBackBase *callback) const

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

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

perform collision test with objects belonging to another manager

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

perform distance test with objects belonging to another manager

virtual bool empty() const

whether the manager is empty

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

void getObjects(std::vector<CollisionObject*> &objs) const = 0

return the objects managed by the manager

inline std::vector<CollisionObject*> getObjects() const

return the objects managed by the manager

Public Members

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