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
std::unordered_map< CollisionObject *, DynamicAABBNode * > DynamicAABBTable
Definition: broadphase_dynamic_AABB_tree.h:62
detail::HierarchyTree< AABB > & getTree()
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)
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
void clear()
clear the manager
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