All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends

fcl::SpatialHashingCollisionManager< HashTable > Class Template Reference

spatial hashing collision mananger More...

#include <broadphase_spatialhash.h>

Inheritance diagram for fcl::SpatialHashingCollisionManager< HashTable >:

[legend]
List of all members.

Public Member Functions

 SpatialHashingCollisionManager (FCL_REAL cell_size, const Vec3f &scene_min, const Vec3f &scene_max, unsigned int default_table_size=1000)
 ~SpatialHashingCollisionManager ()
void registerObject (CollisionObject *obj)
 add one object to the manager
void unregisterObject (CollisionObject *obj)
 remove one object from the manager
void setup ()
 initialize the manager, related with the specific type of manager
void update ()
 update the condition of 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 clear ()
 clear the manager
void getObjects (std::vector< CollisionObject * > &objs) const
 return the objects managed by the manager
void collide (CollisionObject *obj, void *cdata, CollisionCallBack callback) const
 perform collision test between one object and all the objects belonging to the manager
void distance (CollisionObject *obj, void *cdata, DistanceCallBack callback) const
 perform distance computation between one object and all the objects belonging ot the manager
void collide (void *cdata, CollisionCallBack callback) const
 perform collision test for the objects belonging to the manager (i.e, N^2 self collision)
void distance (void *cdata, DistanceCallBack callback) const
 perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
void collide (BroadPhaseCollisionManager *other_manager, void *cdata, CollisionCallBack callback) const
 perform collision test with objects belonging to another manager
void distance (BroadPhaseCollisionManager *other_manager, void *cdata, DistanceCallBack callback) const
 perform distance test with objects belonging to another manager
bool empty () const
 whether the manager is empty
size_t size () const
 the number of objects managed by the manager

Static Public Member Functions

static void computeBound (std::vector< CollisionObject * > &objs, Vec3f &l, Vec3f &u)
 compute the bound for the environent

Protected Member Functions

bool collide_ (CollisionObject *obj, void *cdata, CollisionCallBack callback) const
 perform collision test between one object and all the objects belonging to the manager
bool distance_ (CollisionObject *obj, void *cdata, DistanceCallBack callback, FCL_REAL &min_dist) const
 perform distance computation between one object and all the objects belonging ot the manager

Protected Attributes

std::list< CollisionObject * > objs
 all objects in the scene
std::list< CollisionObject * > objs_outside_scene_limit
 objects outside the scene limit are in another list
AABB scene_limit
 the size of the scene
std::map< CollisionObject *,
AABB
obj_aabb_map
 store the map between objects and their aabbs. will make update more convenient
HashTable * hash_table
 objects in the scene limit (given by scene_min and scene_max) are in the spatial hash table

Detailed Description

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
class fcl::SpatialHashingCollisionManager< HashTable >

spatial hashing collision mananger

Definition at line 93 of file broadphase_spatialhash.h.


The documentation for this class was generated from the following file: