All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
fcl::SpatialHashingCollisionManager< HashTable > Class Template Reference

spatial hashing collision mananger More...

#include <broadphase_spatialhash.h>

Inheritance diagram for fcl::SpatialHashingCollisionManager< HashTable >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

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

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

HashTable * hash_table
 objects in the scene limit (given by scene_min and scene_max) are in the spatial hash table
std::map< CollisionObject *, AABBobj_aabb_map
 store the map between objects and their aabbs. will make update more convenient
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

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.


Constructor & Destructor Documentation

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
fcl::SpatialHashingCollisionManager< HashTable >::SpatialHashingCollisionManager ( FCL_REAL  cell_size,
const Vec3f scene_min,
const Vec3f scene_max,
unsigned int  default_table_size = 1000 
) [inline]

Definition at line 96 of file broadphase_spatialhash.h.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
fcl::SpatialHashingCollisionManager< HashTable >::~SpatialHashingCollisionManager ( ) [inline]

Definition at line 102 of file broadphase_spatialhash.h.


Member Function Documentation

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::clear ( ) [virtual]

clear the manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::collide ( CollisionObject obj,
void *  cdata,
CollisionCallBack  callback 
) const [virtual]

perform collision test between one object and all the objects belonging to the manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::collide ( void *  cdata,
CollisionCallBack  callback 
) const [virtual]

perform collision test for the objects belonging to the manager (i.e, N^2 self collision)

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::collide ( BroadPhaseCollisionManager other_manager,
void *  cdata,
CollisionCallBack  callback 
) const [virtual]

perform collision test with objects belonging to another manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
bool fcl::SpatialHashingCollisionManager< HashTable >::collide_ ( CollisionObject obj,
void *  cdata,
CollisionCallBack  callback 
) const [protected]

perform collision test between one object and all the objects belonging to the manager

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
static void fcl::SpatialHashingCollisionManager< HashTable >::computeBound ( std::vector< CollisionObject * > &  objs,
Vec3f l,
Vec3f u 
) [inline, static]

compute the bound for the environent

Definition at line 156 of file broadphase_spatialhash.h.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::distance ( CollisionObject obj,
void *  cdata,
DistanceCallBack  callback 
) const [virtual]

perform distance computation between one object and all the objects belonging ot the manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::distance ( void *  cdata,
DistanceCallBack  callback 
) const [virtual]

perform distance test for the objects belonging to the manager (i.e., N^2 self distance)

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::distance ( BroadPhaseCollisionManager other_manager,
void *  cdata,
DistanceCallBack  callback 
) const [virtual]

perform distance test with objects belonging to another manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
bool fcl::SpatialHashingCollisionManager< HashTable >::distance_ ( CollisionObject obj,
void *  cdata,
DistanceCallBack  callback,
FCL_REAL min_dist 
) const [protected]

perform distance computation between one object and all the objects belonging ot the manager

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
bool fcl::SpatialHashingCollisionManager< HashTable >::empty ( ) const [virtual]

whether the manager is empty

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::getObjects ( std::vector< CollisionObject * > &  objs) const [virtual]

return the objects managed by the manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::registerObject ( CollisionObject obj) [virtual]

add one object to the manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::setup ( ) [virtual]

initialize the manager, related with the specific type of manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
size_t fcl::SpatialHashingCollisionManager< HashTable >::size ( ) const [virtual]

the number of objects managed by the manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::unregisterObject ( CollisionObject obj) [virtual]

remove one object from the manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::update ( ) [virtual]

update the condition of manager

Implements fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::update ( CollisionObject updated_obj) [virtual]

update the manager by explicitly given the object updated

Reimplemented from fcl::BroadPhaseCollisionManager.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
void fcl::SpatialHashingCollisionManager< HashTable >::update ( const std::vector< CollisionObject * > &  updated_objs) [virtual]

update the manager by explicitly given the set of objects update

Reimplemented from fcl::BroadPhaseCollisionManager.


Member Data Documentation

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
HashTable* fcl::SpatialHashingCollisionManager< HashTable >::hash_table [protected]

objects in the scene limit (given by scene_min and scene_max) are in the spatial hash table

Definition at line 188 of file broadphase_spatialhash.h.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
std::map<CollisionObject*, AABB> fcl::SpatialHashingCollisionManager< HashTable >::obj_aabb_map [protected]

store the map between objects and their aabbs. will make update more convenient

Definition at line 185 of file broadphase_spatialhash.h.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
std::list<CollisionObject*> fcl::SpatialHashingCollisionManager< HashTable >::objs [protected]

all objects in the scene

Definition at line 176 of file broadphase_spatialhash.h.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
std::list<CollisionObject*> fcl::SpatialHashingCollisionManager< HashTable >::objs_outside_scene_limit [protected]

objects outside the scene limit are in another list

Definition at line 179 of file broadphase_spatialhash.h.

template<typename HashTable = SimpleHashTable<AABB, CollisionObject*, SpatialHash>>
AABB fcl::SpatialHashingCollisionManager< HashTable >::scene_limit [protected]

the size of the scene

Definition at line 182 of file broadphase_spatialhash.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


fcl
Author(s): Jia Pan
autogenerated on Tue Jan 15 2013 16:05:32