38 #ifndef HPP_FCL_BROAD_PHASE_DYNAMIC_AABB_TREE_ARRAY_H
39 #define HPP_FCL_BROAD_PHASE_DYNAMIC_AABB_TREE_ARRAY_H
41 #include <unordered_map>
59 using Base::getObjects;
66 int* tree_topdown_balance_threshold{
nullptr};
67 int* tree_topdown_level{
nullptr};
94 void update(
const std::vector<CollisionObject*>& updated_objs);
136 std::unordered_map<CollisionObject*, size_t> table;
Base class for broad phase collision. It helps to accelerate the collision/distance between N objects...
Definition: broadphase_collision_manager.h:54
the object for collision or distance computation, contains the geometry and the transform information
Definition: collision_object.h:215
Definition: broadphase_dynamic_AABB_tree_array.h:56
std::unordered_map< CollisionObject *, size_t > DynamicAABBTable
Definition: broadphase_dynamic_AABB_tree_array.h:62
void clear()
clear the manager
void collide(BroadPhaseCollisionManager *other_manager_, CollisionCallBackBase *callback) const
perform collision test with objects belonging to another manager
void unregisterObject(CollisionObject *obj)
remove one object from the manager
int max_tree_nonbalanced_level
Definition: broadphase_dynamic_AABB_tree_array.h:64
void distance(DistanceCallBackBase *callback) const
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
void collide(CollisionObject *obj, CollisionCallBackBase *callback) const
perform collision test between one object and all the objects belonging to the manager
virtual void update()
update the condition of manager
void setup()
initialize the manager, related with the specific type of manager
int tree_incremental_balance_pass
Definition: broadphase_dynamic_AABB_tree_array.h:65
const detail::implementation_array::HierarchyTree< AABB > & getTree() const
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:71
void registerObject(CollisionObject *obj)
add one object to the manager
BroadPhaseCollisionManager Base
Definition: broadphase_dynamic_AABB_tree_array.h:58
bool empty() const
whether the manager is empty
bool octree_as_geometry_collide
Definition: broadphase_dynamic_AABB_tree_array.h:70
void update(const std::vector< CollisionObject * > &updated_objs)
update the manager by explicitly given the set of objects update
int tree_init_level
Definition: broadphase_dynamic_AABB_tree_array.h:68
void getObjects(std::vector< CollisionObject * > &objs) const
return the objects managed by the manager
void distance(CollisionObject *obj, DistanceCallBackBase *callback) const
perform distance computation between one object and all the objects belonging to the manager
void distance(BroadPhaseCollisionManager *other_manager_, DistanceCallBackBase *callback) const
perform distance test with objects belonging to another manager
size_t size() const
the number of objects managed by the manager
void update(CollisionObject *updated_obj)
update the manager by explicitly given the object updated
void registerObjects(const std::vector< CollisionObject * > &other_objs)
add objects to the manager
DynamicAABBTreeArrayCollisionManager()
Class for hierarchy tree structure.
Definition: hierarchy_tree_array.h:59
#define HPP_FCL_DLLAPI
Definition: config.hh:88
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:50
Base callback class for distance queries. This class can be supersed by child classes to provide desi...
Definition: broadphase_callbacks.h:73
Definition: node_base_array.h:51