#include <SpatialGridContainer.h>

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 |
Definition at line 125 of file SpatialGridContainer.h.
| typedef DataTypes::CellData sofa::component::container::SpatialGrid< DataTypes >::CellData |
Definition at line 131 of file SpatialGridContainer.h.
| typedef Map::const_iterator sofa::component::container::SpatialGrid< DataTypes >::const_iterator |
Definition at line 270 of file SpatialGridContainer.h.
| typedef DataTypes::Coord sofa::component::container::SpatialGrid< DataTypes >::Coord |
Definition at line 129 of file SpatialGridContainer.h.
| typedef DataTypes::GridData sofa::component::container::SpatialGrid< DataTypes >::GridData |
Definition at line 132 of file SpatialGridContainer.h.
| typedef Map::iterator sofa::component::container::SpatialGrid< DataTypes >::iterator |
Definition at line 271 of file SpatialGridContainer.h.
| typedef HASH_NAMESPACE::hash_map<Key, Grid*, key_hash_fun> sofa::component::container::SpatialGrid< DataTypes >::Map |
Definition at line 262 of file SpatialGridContainer.h.
| typedef DataTypes::ParticleField sofa::component::container::SpatialGrid< DataTypes >::ParticleField |
Definition at line 134 of file SpatialGridContainer.h.
| typedef DataTypes::Real sofa::component::container::SpatialGrid< DataTypes >::Real |
Definition at line 128 of file SpatialGridContainer.h.
| typedef DataTypes::VecCoord sofa::component::container::SpatialGrid< DataTypes >::VecCoord |
Definition at line 130 of file SpatialGridContainer.h.
| anonymous enum |
| anonymous enum |
| anonymous enum |
| sofa::component::container::SpatialGrid< DataTypes >::SpatialGrid | ( | Real | cellWidth | ) | [inline] |
Definition at line 66 of file SpatialGridContainer.inl.
| void sofa::component::container::SpatialGrid< DataTypes >::add | ( | int | i, | |
| const Coord & | pos, | |||
| bool | allNeighbors = false | |||
| ) | [inline] |
Definition at line 454 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::Grid::cell, sofa::component::container::SpatialGrid< DataTypes >::Grid::empty, sofa::component::container::SpatialGrid< DataTypes >::emptyGrid, sofa::component::container::SpatialGrid< DataTypes >::getGrid(), sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM, sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM_LOG2, sofa::component::container::SpatialGrid< DataTypes >::invCellWidth, sofa::component::container::SpatialGrid< DataTypes >::Grid::neighbors, sofa::component::container::SpatialGrid< DataTypes >::Cell::plist, and sofa::helper::rfloor().
Referenced by sofa::component::mapping::SPHFluidSurfaceMapping< In, Out >::apply().
| void sofa::component::container::SpatialGrid< DataTypes >::begin | ( | ) | [inline] |
Definition at line 442 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::Grid::clear().
Referenced by sofa::component::mapping::SPHFluidSurfaceMapping< In, Out >::apply(), sofa::component::container::SpatialGrid< DataTypes >::computeField(), and sofa::component::container::SpatialGrid< DataTypes >::update().
| void sofa::component::container::SpatialGrid< DataTypes >::computeField | ( | ParticleField * | field, | |
| Real | dist | |||
| ) | [inline] |
Definition at line 285 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::begin(), sofa::component::container::SpatialGrid< DataTypes >::Grid::cell, sofa::component::container::SpatialGrid< DataTypes >::cellWidth, sofa::component::container::SpatialGrid< DataTypes >::DX, sofa::component::container::SpatialGrid< DataTypes >::DY, sofa::component::container::SpatialGrid< DataTypes >::DZ, sofa::component::container::SpatialGrid< DataTypes >::Grid::empty, sofa::component::container::SpatialGrid< DataTypes >::end(), sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM, sofa::component::container::SpatialGrid< DataTypes >::Grid::neighbors, norm2(), sofa::component::container::SpatialGrid< DataTypes >::Cell::plist, and sofa::helper::rceil().
Referenced by sofa::component::mapping::SPHFluidSurfaceMapping< In, Out >::apply().
| void sofa::component::container::SpatialGrid< DataTypes >::draw | ( | ) | [inline] |
Definition at line 563 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::cellWidth, sofa::component::container::SpatialGrid< DataTypes >::Grid::empty, sofa::component::container::SpatialGrid< DataTypes >::emptyGrid, sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM, and sofa::component::container::SpatialGrid< DataTypes >::Grid::neighbors.
Referenced by sofa::component::mapping::SPHFluidSurfaceMapping< In, Out >::draw(), and sofa::component::container::SpatialGridContainer< DataTypes >::draw().
| void sofa::component::container::SpatialGrid< DataTypes >::end | ( | ) | [inline] |
Definition at line 503 of file SpatialGridContainer.inl.
Referenced by sofa::component::mapping::SPHFluidSurfaceMapping< In, Out >::apply(), sofa::component::container::SpatialGrid< DataTypes >::computeField(), sofa::component::container::SpatialGrid< DataTypes >::findNeighbors(), sofa::component::container::SpatialGrid< DataTypes >::getGrid(), and sofa::component::container::SpatialGrid< DataTypes >::update().
| const SpatialGrid< DataTypes >::Grid * sofa::component::container::SpatialGrid< DataTypes >::findGrid | ( | const Key & | k | ) | const [inline, protected] |
Definition at line 72 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::emptyGrid.
| void sofa::component::container::SpatialGrid< DataTypes >::findNeighbors | ( | NeighborListener * | dest, | |
| const Real | dist2, | |||
| const Cell ** | cellsBegin, | |||
| const Cell ** | cellsEnd | |||
| ) | [inline, protected] |
Definition at line 192 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::end(), sofa::component::container::SpatialGrid< DataTypes >::Entry::index, norm2(), sofa::component::container::SpatialGrid< DataTypes >::Cell::plist, and sofa::component::container::SpatialGrid< DataTypes >::Entry::pos.
| void sofa::component::container::SpatialGrid< DataTypes >::findNeighbors | ( | NeighborListener * | dest, | |
| Real | dist | |||
| ) | [inline] |
Definition at line 225 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::Grid::cell, sofa::component::container::SpatialGrid< DataTypes >::DX, sofa::component::container::SpatialGrid< DataTypes >::Grid::empty, sofa::component::container::SpatialGrid< DataTypes >::getCell(), sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM, and sofa::component::container::SpatialGrid< DataTypes >::Grid::neighbors.
| const SpatialGrid< DataTypes >::Cell * sofa::component::container::SpatialGrid< DataTypes >::getCell | ( | const Grid * | g, | |
| int | x, | |||
| int | y, | |||
| int | z | |||
| ) | [inline, protected] |
Definition at line 156 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::Grid::cell, sofa::component::container::SpatialGrid< DataTypes >::DX, sofa::component::container::SpatialGrid< DataTypes >::DY, sofa::component::container::SpatialGrid< DataTypes >::DZ, sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM, and sofa::component::container::SpatialGrid< DataTypes >::Grid::neighbors.
| SpatialGrid< DataTypes >::Cell * sofa::component::container::SpatialGrid< DataTypes >::getCell | ( | const Coord & | x | ) | [inline, protected] |
Definition at line 142 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::Grid::cell, sofa::component::container::SpatialGrid< DataTypes >::getGrid(), sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM, sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM_LOG2, sofa::component::container::SpatialGrid< DataTypes >::invCellWidth, and sofa::helper::rfloor().
Referenced by sofa::component::container::SpatialGrid< DataTypes >::findNeighbors().
| Real sofa::component::container::SpatialGrid< DataTypes >::getCellWidth | ( | ) | const [inline] |
Definition at line 279 of file SpatialGridContainer.h.
References sofa::component::container::SpatialGrid< DataTypes >::cellWidth.
Referenced by sofa::component::collision::SpatialGridPointModel::computeBoundingTree(), and sofa::component::container::SpatialGridContainer< DataTypes >::reinit().
| SpatialGrid< DataTypes >::Grid * sofa::component::container::SpatialGrid< DataTypes >::getGrid | ( | const Key & | k | ) | [inline, protected] |
Definition at line 80 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::emptyGrid, sofa::component::container::SpatialGrid< DataTypes >::end(), and sofa::component::container::SpatialGrid< DataTypes >::Grid::neighbors.
Referenced by sofa::component::container::SpatialGrid< DataTypes >::add(), and sofa::component::container::SpatialGrid< DataTypes >::getCell().
| Real sofa::component::container::SpatialGrid< DataTypes >::getInvCellWidth | ( | ) | const [inline] |
Definition at line 280 of file SpatialGridContainer.h.
References sofa::component::container::SpatialGrid< DataTypes >::invCellWidth.
| iterator sofa::component::container::SpatialGrid< DataTypes >::gridBegin | ( | ) | [inline] |
Definition at line 276 of file SpatialGridContainer.h.
| const_iterator sofa::component::container::SpatialGrid< DataTypes >::gridBegin | ( | ) | const [inline] |
| iterator sofa::component::container::SpatialGrid< DataTypes >::gridEnd | ( | ) | [inline] |
Definition at line 277 of file SpatialGridContainer.h.
| const_iterator sofa::component::container::SpatialGrid< DataTypes >::gridEnd | ( | ) | const [inline] |
| static std::size_t sofa::component::container::SpatialGrid< DataTypes >::hash | ( | const Key & | x | ) | [inline, static] |
Definition at line 221 of file SpatialGridContainer.h.
Referenced by sofa::component::container::SpatialGrid< DataTypes >::key_hash_fun::operator()().
| void sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVec3f1Types > >::kernel_reorderData | ( | int | nbPoints, | |
| const void * | particleHash, | |||
| void * | sorted, | |||
| const void * | x | |||
| ) | [inline] |
Definition at line 120 of file CudaSpatialGridContainer.inl.
References sofa::gpu::cuda::SpatialGridContainer3f1_reorderData().
| void sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVec3fTypes > >::kernel_reorderData | ( | int | nbPoints, | |
| const void * | particleHash, | |||
| void * | sorted, | |||
| const void * | x | |||
| ) | [inline] |
Definition at line 114 of file CudaSpatialGridContainer.inl.
References sofa::gpu::cuda::SpatialGridContainer3f_reorderData().
| 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] |
Definition at line 108 of file CudaSpatialGridContainer.inl.
References sofa::gpu::cuda::SpatialGridContainer3f1_updateGrid().
| 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] |
Definition at line 102 of file CudaSpatialGridContainer.inl.
References sofa::gpu::cuda::SpatialGridContainer3f_updateGrid().
| void sofa::component::container::SpatialGrid< DataTypes >::reorderIndices | ( | helper::vector< unsigned int > * | old2new, | |
| helper::vector< unsigned int > * | new2old | |||
| ) | [inline] |
Change particles ordering inside a given cell have contiguous indices.
Fill the old2new and new2old arrays giving the permutation to apply
Fill the old2new and new2old arrays giving the permutation to apply
Definition at line 527 of file SpatialGridContainer.inl.
References sofa::component::container::SpatialGrid< DataTypes >::Grid::cell, sofa::component::container::SpatialGrid< DataTypes >::Grid::empty, sofa::component::container::SpatialGrid< DataTypes >::GRIDDIM_LOG2, sofa::component::container::SpatialGrid< DataTypes >::NCELL, and sofa::component::container::SpatialGrid< DataTypes >::Cell::plist.
Referenced by sofa::component::container::SpatialGridContainer< DataTypes >::sortPoints().
| void sofa::component::container::SpatialGrid< DataTypes >::update | ( | const VecCoord & | x | ) | [inline] |
Definition at line 145 of file SpatialGridContainer.h.
References sofa::component::container::SpatialGrid< DataTypes >::begin(), and sofa::component::container::SpatialGrid< DataTypes >::end().
Referenced by sofa::component::container::SpatialGridContainer< DataTypes >::updateGrid().
const Real sofa::component::container::SpatialGrid< DataTypes >::cellWidth [protected] |
Definition at line 284 of file SpatialGridContainer.h.
Referenced by sofa::component::container::SpatialGrid< DataTypes >::computeField(), sofa::component::container::SpatialGrid< DataTypes >::draw(), sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVectorTypes< TCoord, TDeriv, TReal > > >::getCellWidth(), and sofa::component::container::SpatialGrid< DataTypes >::getCellWidth().
SpatialGrid< DataTypes >::Grid sofa::component::container::SpatialGrid< DataTypes >::emptyGrid [inline, static] |
Definition at line 208 of file SpatialGridContainer.h.
Referenced by sofa::component::container::SpatialGrid< DataTypes >::add(), sofa::component::container::SpatialGrid< DataTypes >::draw(), sofa::component::container::SpatialGrid< DataTypes >::findGrid(), and sofa::component::container::SpatialGrid< DataTypes >::getGrid().
const Real sofa::component::container::SpatialGrid< DataTypes >::invCellWidth [protected] |
Definition at line 285 of file SpatialGridContainer.h.
Referenced by sofa::component::container::SpatialGrid< DataTypes >::add(), sofa::component::container::SpatialGrid< DataTypes >::getCell(), sofa::component::container::SpatialGrid< SpatialGridTypes< gpu::cuda::CudaVectorTypes< TCoord, TDeriv, TReal > > >::getInvCellWidth(), and sofa::component::container::SpatialGrid< DataTypes >::getInvCellWidth().
Map sofa::component::container::SpatialGrid< DataTypes >::map [protected] |
Definition at line 283 of file SpatialGridContainer.h.
1.5.7.1