sofa::component::container::SpatialGrid< DataTypes > Class Template Reference

#include <SpatialGridContainer.h>

Collaboration diagram for sofa::component::container::SpatialGrid< DataTypes >:

Collaboration graph
[legend]

Data Structures

class  Cell
class  Entry
class  Grid
class  Key
class  key_hash_fun

Public Types

enum  { GRIDDIM_LOG2 = DataTypes::GRIDDIM_LOG2, GRIDDIM = 1<<GRIDDIM_LOG2 }
enum  { NCELL = GRIDDIM*GRIDDIM*GRIDDIM }
enum  { DX = 1, DY = GRIDDIM, DZ = GRIDDIM*GRIDDIM }
typedef DataTypes::Real Real
typedef DataTypes::Coord Coord
typedef DataTypes::VecCoord VecCoord
typedef DataTypes::CellData CellData
typedef DataTypes::GridData GridData
typedef DataTypes::ParticleField ParticleField
typedef
HASH_NAMESPACE::hash_map< Key,
Grid *, key_hash_fun > 
Map
typedef Map::const_iterator const_iterator
typedef Map::iterator iterator

Public Member Functions

 SpatialGrid (Real cellWidth)
void begin ()
void add (int i, const Coord &pos, bool allNeighbors=false)
void end ()
void update (const VecCoord &x)
void draw ()
template<class NeighborListener >
void findNeighbors (NeighborListener *dest, Real dist)
void computeField (ParticleField *field, Real dist)
void reorderIndices (helper::vector< unsigned int > *old2new, helper::vector< unsigned int > *new2old)
 Change particles ordering inside a given cell have contiguous indices.
const_iterator gridBegin () const
const_iterator gridEnd () const
iterator gridBegin ()
iterator gridEnd ()
Real getCellWidth () const
Real getInvCellWidth () const
template<>
void kernel_updateGrid (int cellBits, float cellWidth, int nbPoints, void *particleHash, void *sortTmp, void *cellStart, const void *x)
template<>
void kernel_updateGrid (int cellBits, float cellWidth, int nbPoints, void *particleHash, void *sortTmp, void *cellStart, const void *x)
template<>
void kernel_reorderData (int nbPoints, const void *particleHash, void *sorted, const void *x)
template<>
void kernel_reorderData (int nbPoints, const void *particleHash, void *sorted, const void *x)

Static Public Member Functions

static std::size_t hash (const Key &x)

Static Public Attributes

static Grid emptyGrid

Protected Member Functions

const Grid * findGrid (const Key &k) const
Grid * getGrid (const Key &k)
Cell * getCell (const Coord &x)
const Cell * getCell (const Grid *g, int x, int y, int z)
template<class NeighborListener >
void findNeighbors (NeighborListener *dest, const Real dist2, const Cell **cellsBegin, const Cell **cellsEnd)

Protected Attributes

Map map
const Real cellWidth
const Real invCellWidth

Detailed Description

template<class DataTypes>
class sofa::component::container::SpatialGrid< DataTypes >

Definition at line 125 of file SpatialGridContainer.h.


Member Typedef Documentation

template<class DataTypes >
typedef DataTypes::CellData sofa::component::container::SpatialGrid< DataTypes >::CellData

Definition at line 131 of file SpatialGridContainer.h.

template<class DataTypes >
typedef Map::const_iterator sofa::component::container::SpatialGrid< DataTypes >::const_iterator

Definition at line 270 of file SpatialGridContainer.h.

template<class DataTypes >
typedef DataTypes::Coord sofa::component::container::SpatialGrid< DataTypes >::Coord

Definition at line 129 of file SpatialGridContainer.h.

template<class DataTypes >
typedef DataTypes::GridData sofa::component::container::SpatialGrid< DataTypes >::GridData

Definition at line 132 of file SpatialGridContainer.h.

template<class DataTypes >
typedef Map::iterator sofa::component::container::SpatialGrid< DataTypes >::iterator

Definition at line 271 of file SpatialGridContainer.h.

template<class DataTypes >
typedef HASH_NAMESPACE::hash_map<Key, Grid*, key_hash_fun> sofa::component::container::SpatialGrid< DataTypes >::Map

Definition at line 262 of file SpatialGridContainer.h.

template<class DataTypes >
typedef DataTypes::ParticleField sofa::component::container::SpatialGrid< DataTypes >::ParticleField

Definition at line 134 of file SpatialGridContainer.h.

template<class DataTypes >
typedef DataTypes::Real sofa::component::container::SpatialGrid< DataTypes >::Real

Definition at line 128 of file SpatialGridContainer.h.

template<class DataTypes >
typedef DataTypes::VecCoord sofa::component::container::SpatialGrid< DataTypes >::VecCoord

Definition at line 130 of file SpatialGridContainer.h.


Member Enumeration Documentation

template<class DataTypes >
anonymous enum

Enumerator:
GRIDDIM_LOG2 
GRIDDIM 

Definition at line 167 of file SpatialGridContainer.h.

template<class DataTypes >
anonymous enum

Enumerator:
NCELL 

Definition at line 168 of file SpatialGridContainer.h.

template<class DataTypes >
anonymous enum

Enumerator:
DX 
DY 
DZ 

Definition at line 169 of file SpatialGridContainer.h.


Constructor & Destructor Documentation

template<class DataTypes >
sofa::component::container::SpatialGrid< DataTypes >::SpatialGrid ( Real  cellWidth  )  [inline]

Definition at line 66 of file SpatialGridContainer.inl.


Member Function Documentation

template<class DataTypes >
void sofa::component::container::SpatialGrid< DataTypes >::add ( int  i,
const Coord &  pos,
bool  allNeighbors = false 
) [inline]

template<class DataTypes >
void sofa::component::container::SpatialGrid< DataTypes >::begin (  )  [inline]

template<class DataTypes >
void sofa::component::container::SpatialGrid< DataTypes >::computeField ( ParticleField *  field,
Real  dist 
) [inline]

template<class DataTypes >
void sofa::component::container::SpatialGrid< DataTypes >::draw (  )  [inline]

template<class DataTypes >
void sofa::component::container::SpatialGrid< DataTypes >::end (  )  [inline]

template<class DataTypes >
const SpatialGrid< DataTypes >::Grid * sofa::component::container::SpatialGrid< DataTypes >::findGrid ( const Key &  k  )  const [inline, protected]

template<class DataTypes >
template<class NeighborListener >
void sofa::component::container::SpatialGrid< DataTypes >::findNeighbors ( NeighborListener *  dest,
const Real  dist2,
const Cell **  cellsBegin,
const Cell **  cellsEnd 
) [inline, protected]

template<class DataTypes >
template<class NeighborListener >
void sofa::component::container::SpatialGrid< DataTypes >::findNeighbors ( NeighborListener *  dest,
Real  dist 
) [inline]

template<class DataTypes >
const SpatialGrid< DataTypes >::Cell * sofa::component::container::SpatialGrid< DataTypes >::getCell ( const Grid *  g,
int  x,
int  y,
int  z 
) [inline, protected]

template<class DataTypes >
SpatialGrid< DataTypes >::Cell * sofa::component::container::SpatialGrid< DataTypes >::getCell ( const Coord &  x  )  [inline, protected]

template<class DataTypes >
Real sofa::component::container::SpatialGrid< DataTypes >::getCellWidth (  )  const [inline]

template<class DataTypes >
SpatialGrid< DataTypes >::Grid * sofa::component::container::SpatialGrid< DataTypes >::getGrid ( const Key &  k  )  [inline, protected]

template<class DataTypes >
Real sofa::component::container::SpatialGrid< DataTypes >::getInvCellWidth (  )  const [inline]

template<class DataTypes >
iterator sofa::component::container::SpatialGrid< DataTypes >::gridBegin (  )  [inline]

Definition at line 276 of file SpatialGridContainer.h.

template<class DataTypes >
const_iterator sofa::component::container::SpatialGrid< DataTypes >::gridBegin (  )  const [inline]

template<class DataTypes >
iterator sofa::component::container::SpatialGrid< DataTypes >::gridEnd (  )  [inline]

Definition at line 277 of file SpatialGridContainer.h.

template<class DataTypes >
const_iterator sofa::component::container::SpatialGrid< DataTypes >::gridEnd (  )  const [inline]

template<class DataTypes >
static std::size_t sofa::component::container::SpatialGrid< DataTypes >::hash ( const Key &  x  )  [inline, static]

template<>
void sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVec3f1Types > >::kernel_reorderData ( int  nbPoints,
const void *  particleHash,
void *  sorted,
const void *  x 
) [inline]

template<>
void sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVec3fTypes > >::kernel_reorderData ( int  nbPoints,
const void *  particleHash,
void *  sorted,
const void *  x 
) [inline]

template<>
void sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVec3f1Types > >::kernel_updateGrid ( int  cellBits,
float  cellWidth,
int  nbPoints,
void *  particleHash,
void *  sortTmp,
void *  cellStart,
const void *  x 
) [inline]

template<>
void sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVec3fTypes > >::kernel_updateGrid ( int  cellBits,
float  cellWidth,
int  nbPoints,
void *  particleHash,
void *  sortTmp,
void *  cellStart,
const void *  x 
) [inline]

template<class DataTypes >
void sofa::component::container::SpatialGrid< DataTypes >::reorderIndices ( helper::vector< unsigned int > *  old2new,
helper::vector< unsigned int > *  new2old 
) [inline]

template<class DataTypes >
void sofa::component::container::SpatialGrid< DataTypes >::update ( const VecCoord &  x  )  [inline]


Field Documentation

template<class DataTypes >
const Real sofa::component::container::SpatialGrid< DataTypes >::cellWidth [protected]

template<class DataTypes >
SpatialGrid< DataTypes >::Grid sofa::component::container::SpatialGrid< DataTypes >::emptyGrid [inline, static]

template<class DataTypes >
const Real sofa::component::container::SpatialGrid< DataTypes >::invCellWidth [protected]

template<class DataTypes >
Map sofa::component::container::SpatialGrid< DataTypes >::map [protected]

Definition at line 283 of file SpatialGridContainer.h.


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

Generated on Sun Nov 23 04:18:31 2008 for Sofa by  doxygen 1.5.7.1