38#ifndef COAL_BROAD_PHASE_DYNAMIC_AABB_TREE_H 39#define COAL_BROAD_PHASE_DYNAMIC_AABB_TREE_H 41#include <unordered_map> 61 std::unordered_map<CollisionObject*, DynamicAABBNode*>;
93 void update(
const std::vector<CollisionObject*>& updated_objs);
99 void getObjects(std::vector<CollisionObject*>& objs)
const;
139 std::unordered_map<CollisionObject*, DynamicAABBNode*> table;
BroadPhaseCollisionManager()
virtual void getObjects(std::vector< CollisionObject * > &objs) const =0
return the objects managed by the manager
the object for collision or distance computation, contains the geometry and the transform information
Definition collision_object.h:214
DynamicAABBTreeCollisionManager()
void unregisterObject(CollisionObject *obj)
remove one object from the manager
bool octree_as_geometry_distance
Definition broadphase_dynamic_AABB_tree.h:70
int * tree_topdown_level
Definition broadphase_dynamic_AABB_tree.h:66
void collide(CollisionObject *obj, CollisionCallBackBase *callback) const
perform collision test between one object and all the objects belonging to the manager
void distance(DistanceCallBackBase *callback) const
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
detail::HierarchyTree< AABB > & getTree()
returns the AABB tree structure.
int tree_init_level
Definition broadphase_dynamic_AABB_tree.h:67
void update(const std::vector< CollisionObject * > &updated_objs)
update the manager by explicitly given the set of objects update
std::unordered_map< CollisionObject *, DynamicAABBNode * > DynamicAABBTable
Definition broadphase_dynamic_AABB_tree.h:60
void registerObject(CollisionObject *obj)
add one object to the manager
void collide(BroadPhaseCollisionManager *other_manager_, CollisionCallBackBase *callback) const
perform collision test with objects belonging to another manager
const detail::HierarchyTree< AABB > & getTree() const
returns the AABB tree structure.
void collide(CollisionCallBackBase *callback) const
perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
bool empty() const
whether the manager is empty
void registerObjects(const std::vector< CollisionObject * > &other_objs)
add objects to the manager
BroadPhaseCollisionManager Base
Definition broadphase_dynamic_AABB_tree.h:56
void update(CollisionObject *updated_obj)
update the manager by explicitly given the object updated
void distance(CollisionObject *obj, DistanceCallBackBase *callback) const
perform distance computation between one object and all the objects belonging to the manager
virtual void update()
update the condition of manager
void distance(BroadPhaseCollisionManager *other_manager_, DistanceCallBackBase *callback) const
perform distance test with objects belonging to another manager
void clear()
clear the manager
size_t size() const
the number of objects managed by the manager
void setup()
initialize the manager, related with the specific type of manager
bool octree_as_geometry_collide
Definition broadphase_dynamic_AABB_tree.h:69
int * tree_topdown_balance_threshold
Definition broadphase_dynamic_AABB_tree.h:65
void getObjects(std::vector< CollisionObject * > &objs) const
return the objects managed by the manager
int tree_incremental_balance_pass
Definition broadphase_dynamic_AABB_tree.h:64
int max_tree_nonbalanced_level
Definition broadphase_dynamic_AABB_tree.h:63
detail::NodeBase< AABB > DynamicAABBNode
Definition broadphase_dynamic_AABB_tree.h:59
Class for hierarchy tree structure.
Definition hierarchy_tree.h:56
Main namespace.
Definition broadphase_bruteforce.h:44
Base callback class for collision queries. This class can be supersed by child classes to provide des...
Definition broadphase_callbacks.h:49
Base callback class for distance queries. This class can be supersed by child classes to provide desi...
Definition broadphase_callbacks.h:72
dynamic AABB tree node
Definition node_base.h:49