38#ifndef COAL_BROAD_PHASE_DYNAMIC_AABB_TREE_ARRAY_H 39#define COAL_BROAD_PHASE_DYNAMIC_AABB_TREE_ARRAY_H 41#include <unordered_map> 93 void update(
const std::vector<CollisionObject*>& updated_objs);
99 void getObjects(std::vector<CollisionObject*>& objs)
const;
135 std::unordered_map<CollisionObject*, size_t> 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
void distance(DistanceCallBackBase *callback) const
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
int tree_incremental_balance_pass
Definition broadphase_dynamic_AABB_tree_array.h:64
void unregisterObject(CollisionObject *obj)
remove one object from the manager
int tree_init_level
Definition broadphase_dynamic_AABB_tree_array.h:67
void distance(CollisionObject *obj, DistanceCallBackBase *callback) const
perform distance computation between one object and all the objects belonging to the manager
std::unordered_map< CollisionObject *, size_t > DynamicAABBTable
Definition broadphase_dynamic_AABB_tree_array.h:61
bool octree_as_geometry_collide
Definition broadphase_dynamic_AABB_tree_array.h:69
void registerObject(CollisionObject *obj)
add one object to the manager
void update(CollisionObject *updated_obj)
update the manager by explicitly given the object updated
bool empty() const
whether the manager is empty
void setup()
initialize the manager, related with the specific type of manager
BroadPhaseCollisionManager Base
Definition broadphase_dynamic_AABB_tree_array.h:57
const detail::implementation_array::HierarchyTree< AABB > & getTree() const
size_t size() const
the number of objects managed by the manager
void getObjects(std::vector< CollisionObject * > &objs) const
return the objects managed by the manager
int max_tree_nonbalanced_level
Definition broadphase_dynamic_AABB_tree_array.h:63
void collide(CollisionCallBackBase *callback) const
perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
bool octree_as_geometry_distance
Definition broadphase_dynamic_AABB_tree_array.h:70
int * tree_topdown_level
Definition broadphase_dynamic_AABB_tree_array.h:66
void collide(CollisionObject *obj, CollisionCallBackBase *callback) const
perform collision test between one object and all the objects belonging to the manager
detail::implementation_array::NodeBase< AABB > DynamicAABBNode
Definition broadphase_dynamic_AABB_tree_array.h:60
void clear()
clear the manager
void registerObjects(const std::vector< CollisionObject * > &other_objs)
add objects to the manager
int * tree_topdown_balance_threshold
Definition broadphase_dynamic_AABB_tree_array.h:65
void update(const std::vector< CollisionObject * > &updated_objs)
update the manager by explicitly given the set of objects update
void collide(BroadPhaseCollisionManager *other_manager_, CollisionCallBackBase *callback) const
perform collision test with objects belonging to another manager
virtual void update()
update the condition of manager
DynamicAABBTreeArrayCollisionManager()
void distance(BroadPhaseCollisionManager *other_manager_, DistanceCallBackBase *callback) const
perform distance test with objects belonging to another manager
Class for hierarchy tree structure.
Definition hierarchy_tree_array.h:58
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
Definition node_base_array.h:50