#include <CudaDistanceGridCollisionModel.h>
Classes | |
| struct | CudaDistanceGridParams |
Public Attributes | |
| CudaVector< Coord > | meshPts |
| sofa::core::topology::BaseMeshTopology::SeqTriangles | meshTriangles |
| sofa::core::topology::BaseMeshTopology::SeqQuads | meshQuads |
Protected Attributes | |
| int | nbRef |
| VecReal | dists |
| const int | nx |
| const int | ny |
| const int | nz |
| const int | nxny |
| const int | nxnynz |
| const Coord | pmin |
| const Coord | pmax |
| const Coord | cellWidth |
| const Coord | invCellWidth |
| Coord | bbmin |
| Coord | bbmax |
| bounding box of the object, smaller than the grid More... | |
| Real | cubeDim |
| Cube dimension (!=0 if this is actually a cube. More... | |
Public Member Functions | |
| CudaDistanceGrid (int nx, int ny, int nz, Coord pmin, Coord pmax) | |
| CudaDistanceGrid * | addRef () |
| Add one reference to this grid. Note that loadShared already does this. More... | |
| bool | release () |
| Release one reference, deleting this grid if this is the last. More... | |
| bool | save (const std::string &filename) |
| Save current grid. More... | |
| void | calcDistance () |
| Compute distance field from stored mesh. More... | |
| void | calcCubeDistance (Real dim=1, int np=5) |
| void | sampleSurface (double sampling=-1.0) |
| Sample the surface with points approximately separated by the given sampling distance (expressed in voxels if the value is negative) More... | |
| void | computeBBox () |
| Update bbox. More... | |
| int | getNx () const |
| int | getNy () const |
| int | getNz () const |
| const Coord & | getCellWidth () const |
| const Coord & | getInvCellWidth () const |
| const VecReal & | getDists () const |
| VecReal & | getDists () |
| int | size () const |
| const Coord & | getBBMin () const |
| const Coord & | getBBMax () const |
| void | setBBMin (const Coord &val) |
| void | setBBMax (const Coord &val) |
| Coord | getBBCorner (int i) const |
| bool | inBBox (const Coord &p, Real margin=0.0f) const |
| const Coord & | getPMin () const |
| const Coord & | getPMax () const |
| Coord | getCorner (int i) const |
| bool | isCube () const |
| Real | getCubeDim () const |
| bool | inGrid (const Coord &p) const |
| Coord | clamp (Coord p) const |
| Index | ix (const Coord &p) const |
| Index | iy (const Coord &p) const |
| Index | iz (const Coord &p) const |
| Index | index (const Coord &p, Coord &coefs) const |
| Index | index (const Coord &p) const |
| Index | index (int x, int y, int z) |
| Coord | coord (int x, int y, int z) |
| Real | operator[] (Index index) const |
| Real & | operator[] (Index index) |
| Real | interp (Index index, const Coord &coefs) const |
| Real | interp (const Coord &p) const |
| Coord | grad (Index index, const Coord &coefs) const |
| Coord | grad (const Coord &p) const |
| Real | eval (const Coord &x) const |
| Real | quickeval (const Coord &x) const |
| Real | eval2 (const Coord &x) const |
| Real | quickeval2 (const Coord &x) const |
Static Public Member Functions | |
| static Real | maxDist () |
| static CudaDistanceGrid * | load (const std::string &filename, double scale=1.0, double sampling=0.0, int nx=64, int ny=64, int nz=64, Coord pmin=Coord(), Coord pmax=Coord()) |
| Load a distance grid. More... | |
| static CudaDistanceGrid * | loadShared (const std::string &filename, double scale=1.0, double sampling=0.0, int nx=64, int ny=64, int nz=64, Coord pmin=Coord(), Coord pmax=Coord()) |
| Load or reuse a distance grid. More... | |
| static Real | interp (Real coef, Real a, Real b) |
Protected Member Functions | |
| ~CudaDistanceGrid () | |
Static Protected Member Functions | |
| static std::map< CudaDistanceGridParams, CudaDistanceGrid * > & | getShared () |
|
protected |
bounding box of the object, smaller than the grid
|
protected |
|
protected |
|
protected |
Cube dimension (!=0 if this is actually a cube.
|
protected |
|
protected |
| CudaVector<Coord> sofa::gpu::cuda::CudaDistanceGrid::meshPts |
| sofa::core::topology::BaseMeshTopology::SeqQuads sofa::gpu::cuda::CudaDistanceGrid::meshQuads |
| sofa::core::topology::BaseMeshTopology::SeqTriangles sofa::gpu::cuda::CudaDistanceGrid::meshTriangles |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| sofa::gpu::cuda::CudaDistanceGrid::CudaDistanceGrid | ( | int | nx, |
| int | ny, | ||
| int | nz, | ||
| Coord | pmin, | ||
| Coord | pmax | ||
| ) |
|
protected |
| CudaDistanceGrid * sofa::gpu::cuda::CudaDistanceGrid::addRef | ( | ) |
Add one reference to this grid. Note that loadShared already does this.
| void sofa::gpu::cuda::CudaDistanceGrid::calcCubeDistance | ( | Real | dim = 1, |
| int | np = 5 |
||
| ) |
Compute distance field for a cube of the given half-size. Also create a mesh of points using np points per axis
| void sofa::gpu::cuda::CudaDistanceGrid::calcDistance | ( | ) |
Compute distance field from stored mesh.
Compute distance field from given mesh.
| void sofa::gpu::cuda::CudaDistanceGrid::computeBBox | ( | ) |
Update bbox.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
staticprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
Load a distance grid.
|
static |
Load or reuse a distance grid.
|
inlinestatic |
|
inline |
|
inline |
| bool sofa::gpu::cuda::CudaDistanceGrid::release | ( | ) |
Release one reference, deleting this grid if this is the last.
| void sofa::gpu::cuda::CudaDistanceGrid::sampleSurface | ( | double | sampling = -1.0 | ) |
Sample the surface with points approximately separated by the given sampling distance (expressed in voxels if the value is negative)
| bool sofa::gpu::cuda::CudaDistanceGrid::save | ( | const std::string & | filename | ) |
Save current grid.
|
inline |
|
inline |
|
inline |