38#ifndef HPP_FCL_BROAD_PHASE_DYNAMIC_AABB_TREE_H
39#define HPP_FCL_BROAD_PHASE_DYNAMIC_AABB_TREE_H
41#include <unordered_map>
58 using Base::getObjects;
62 std::unordered_map<CollisionObject*, DynamicAABBNode*>;
66 int* tree_topdown_balance_threshold{
nullptr};
67 int* tree_topdown_level{
nullptr};
94 void update(
const std::vector<CollisionObject*>& updated_objs);
140 std::unordered_map<CollisionObject*, DynamicAABBNode*> 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.h:55
int tree_incremental_balance_pass
Definition broadphase_dynamic_AABB_tree.h:65
bool octree_as_geometry_distance
Definition broadphase_dynamic_AABB_tree.h:71
int max_tree_nonbalanced_level
Definition broadphase_dynamic_AABB_tree.h:64
size_t size() const
the number of objects managed by the manager
void distance(BroadPhaseCollisionManager *other_manager_, DistanceCallBackBase *callback) const
perform distance test with objects belonging to another manager
DynamicAABBTreeCollisionManager()
void collide(BroadPhaseCollisionManager *other_manager_, CollisionCallBackBase *callback) const
perform collision test with objects belonging to another manager
bool octree_as_geometry_collide
Definition broadphase_dynamic_AABB_tree.h:70
void distance(DistanceCallBackBase *callback) const
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
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 registerObjects(const std::vector< CollisionObject * > &other_objs)
add objects to the manager
void collide(CollisionCallBackBase *callback) const
perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
void unregisterObject(CollisionObject *obj)
remove one object from the manager
virtual void update()
update the condition of manager
int tree_init_level
Definition broadphase_dynamic_AABB_tree.h:68
const detail::HierarchyTree< AABB > & getTree() const
returns the AABB tree structure.
void registerObject(CollisionObject *obj)
add one object to the manager
void update(CollisionObject *updated_obj)
update the manager by explicitly given the object updated
void update(const std::vector< CollisionObject * > &updated_objs)
update the manager by explicitly given the set of objects update
void collide(CollisionObject *obj, CollisionCallBackBase *callback) const
perform collision test between one object and all the objects belonging to the manager
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.h:57
std::unordered_map< CollisionObject *, DynamicAABBNode * > DynamicAABBTable
Definition broadphase_dynamic_AABB_tree.h:61
void clear()
clear the manager
detail::HierarchyTree< AABB > & getTree()
returns the AABB tree structure.
Class for hierarchy tree structure.
Definition hierarchy_tree.h:57
#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
dynamic AABB tree node
Definition node_base.h:50