HDK
|
#include <MultiResGrid.h>
Classes | |
struct | MaskOp |
struct | ProlongateOp |
struct | RestrictOp |
Public Types | |
using | Ptr = SharedPtr< MultiResGrid > |
using | ConstPtr = SharedPtr< const MultiResGrid > |
using | ValueType = typename TreeType::ValueType |
using | ValueOnCIter = typename TreeType::ValueOnCIter |
using | ValueOnIter = typename TreeType::ValueOnIter |
using | TreePtr = typename TreeType::Ptr |
using | ConstTreePtr = typename TreeType::ConstPtr |
using | GridPtr = typename Grid< TreeType >::Ptr |
using | ConstGridPtr = typename Grid< TreeType >::ConstPtr |
![]() | |
using | Ptr = SharedPtr< MetaMap > |
using | ConstPtr = SharedPtr< const MetaMap > |
using | MetadataMap = std::map< Name, Metadata::Ptr > |
using | MetaIterator = MetadataMap::iterator |
using | ConstMetaIterator = MetadataMap::const_iterator |
Public Member Functions | |
MultiResGrid (size_t levels, ValueType background, double voxelSize=1.0) | |
Constructor of empty grids. More... | |
MultiResGrid (size_t levels, const Grid< TreeType > &grid, bool useInjection=false) | |
Given an initial high-resolution grid this constructor generates all the coarser grids by means of restriction. More... | |
MultiResGrid (size_t levels, GridPtr grid, bool useInjection=false) | |
Given an initial high-resolution grid this constructor generates all the coarser grids by means of restriction. More... | |
size_t | numLevels () const |
Return the number of levels, i.e. trees, in this MultiResGrid. More... | |
size_t | coarsestLevel () const |
Return the level of the coarsest grid, i.e. numLevels()-1. More... | |
TreeType & | tree (size_t level) |
Return a reference to the tree at the specified level. More... | |
const TreeType & | constTree (size_t level) const |
Return a const reference to the tree at the specified level. More... | |
TreePtr | treePtr (size_t level) |
Return a shared pointer to the tree at the specified level. More... | |
ConstTreePtr | constTreePtr (size_t level) const |
Return a const shared pointer to the tree at the specified level. More... | |
TreeType & | finestTree () |
Return a reference to the tree at the finest level. More... | |
const TreeType & | finestConstTree () const |
Return a const reference to the tree at the finest level. More... | |
TreePtr | finestTreePtr () |
Return a shared pointer to the tree at the finest level. More... | |
ConstTreePtr | finestConstTreePtr () const |
Return a const shared pointer to the tree at the finest level. More... | |
TreeType & | coarsestTree () |
Return a reference to the tree at the coarsest level. More... | |
const TreeType & | coarsestConstTree () const |
Return a const reference to the tree at the coarsest level. More... | |
TreePtr | coarsestTreePtr () |
Return a shared pointer to the tree at the coarsest level. More... | |
ConstTreePtr | coarsestConstTreePtr () const |
Return a const shared pointer to the tree at the coarsest level. More... | |
GridPtr | grid (size_t level) |
Return a shared pointer to the grid at the specified integer level. More... | |
ConstGridPtr | grid (size_t level) const |
Return a const shared pointer to the grid at the specified level. More... | |
template<Index Order> | |
GridPtr | createGrid (float level, size_t grainSize=1) const |
Return a shared pointer to a new grid at the specified floating-point level. More... | |
GridPtrVecPtr | grids () |
Return a shared pointer to a vector of all the base grids in this instance of the MultiResGrid. More... | |
GridCPtrVecPtr | grids () const |
Return a const shared pointer to a vector of all the base grids in this instance of the MultiResGrid. More... | |
template<Index Order> | |
ValueType | sampleValue (const Coord &ijk, double level) const |
Return the value at the specified integer coordinate position and level using interpolation of the specified order. More... | |
template<Index Order> | |
ValueType | sampleValue (const Vec3R &xyz, double level) const |
Return the value at the specified floating-point coordinate position and level using interpolation of the specified order. More... | |
ValueType | prolongateVoxel (const Coord &coords, const size_t level) const |
Return the value at coordinate location in level tree from the coarser tree at level+1 using trilinear interpolation. More... | |
void | prolongateActiveVoxels (size_t destlevel, size_t grainSize=1) |
ValueType | restrictVoxel (Coord ijk, const size_t level, bool useInjection=false) const |
void | restrictActiveVoxels (size_t destlevel, size_t grainSize=1) |
void | print (std::ostream &=std::cout, int verboseLevel=1) const |
Output a human-readable description of this MultiResGrid. More... | |
std::string | getName () const |
Return a string with the name of this MultiResGrid. More... | |
void | setName (const std::string &name) |
Set the name of this MultiResGrid. More... | |
GridClass | getGridClass () const |
Return the class of volumetric data (level set, fog volume, etc.) stored in this grid. More... | |
void | setGridClass (GridClass cls) |
Specify the class of volumetric data (level set, fog volume, etc.) stored in this grid. More... | |
void | clearGridClass () |
Remove the setting specifying the class of this grid's volumetric data. More... | |
template<Index Order> | |
Grid< TreeType >::Ptr | createGrid (float level, size_t grainSize) const |
template<Index Order> | |
TreeType::ValueType | sampleValue (const Coord &in_ijk, size_t in_level, size_t out_level) const |
template<Index Order> | |
TreeType::ValueType | sampleValue (const Vec3R &in_xyz, size_t in_level, size_t out_level) const |
template<Index Order> | |
TreeType::ValueType | sampleValue (const Coord &ijk, double level) const |
template<Index Order> | |
TreeType::ValueType | sampleValue (const Vec3R &xyz, double level) const |
math::Transform & | transform () |
Return a reference to the finest grid's transform, which might be shared with other grids. More... | |
const math::Transform & | transform () const |
Return a reference to the finest grid's transform, which might be shared with other grids. More... | |
const math::Transform & | constTransform () const |
Return a reference to the finest grid's transform, which might be shared with other grids. More... | |
template<Index Order> | |
ValueType | sampleValue (const Coord &in_ijk, size_t in_level, size_t out_level) const |
Return the value at the specified coordinate position using interpolation of the specified order into the tree at the out_level. More... | |
template<Index Order> | |
ValueType | sampleValue (const Vec3R &in_ijk, size_t in_level, size_t out_level) const |
Return the value at the specified coordinate position using interpolation of the specified order into the tree at the out_level. More... | |
![]() | |
MetaMap () | |
MetaMap (const MetaMap &other) | |
virtual | ~MetaMap () |
MetaMap::Ptr | copyMeta () const |
Return a copy of this map whose fields are shared with this map. More... | |
MetaMap::Ptr | deepCopyMeta () const |
Return a deep copy of this map that shares no data with this map. More... | |
MetaMap & | operator= (const MetaMap &) |
Assign a deep copy of another map to this map. More... | |
void | readMeta (std::istream &) |
Unserialize metadata from the given stream. More... | |
void | writeMeta (std::ostream &) const |
Serialize metadata to the given stream. More... | |
void | insertMeta (const Name &, const Metadata &value) |
Insert a new metadata field or overwrite the value of an existing field. More... | |
void | insertMeta (const MetaMap &) |
Deep copy all of the metadata fields from the given map into this map. More... | |
void | removeMeta (const Name &) |
Remove the given metadata field if it exists. More... | |
template<typename T > | |
T & | metaValue (const Name &) |
Return a reference to the value of type T stored in the given metadata field. More... | |
template<typename T > | |
const T & | metaValue (const Name &) const |
MetaIterator | beginMeta () |
MetaIterator | endMeta () |
ConstMetaIterator | beginMeta () const |
ConstMetaIterator | endMeta () const |
void | clearMetadata () |
size_t | metaCount () const |
std::string | str (const std::string &indent="") const |
Return a string describing this metadata map. Prefix each line with indent. More... | |
bool | operator== (const MetaMap &other) const |
Return true if the given map is equivalent to this map. More... | |
bool | operator!= (const MetaMap &other) const |
Return true if the given map is different from this map. More... | |
Metadata::Ptr | operator[] (const Name &) |
Return a pointer to the metadata with the given name. If no such field exists, return a null pointer. More... | |
Metadata::ConstPtr | operator[] (const Name &) const |
Return a pointer to the metadata with the given name. If no such field exists, return a null pointer. More... | |
template<typename T > | |
T::Ptr | getMetadata (const Name &) |
Return a pointer to a TypedMetadata object of type T and with the given name. If no such field exists or if there is a type mismatch, return a null pointer. More... | |
template<typename T > | |
T::ConstPtr | getMetadata (const Name &) const |
Return a pointer to a TypedMetadata object of type T and with the given name. If no such field exists or if there is a type mismatch, return a null pointer. More... | |
Static Public Member Functions | |
static size_t | finestLevel () |
Return the level of the finest grid (always 0) More... | |
static Vec3R | xyz (const Coord &in_ijk, size_t in_level, size_t out_level) |
Return the floating-point index coordinate at out_level given the index coordinate in_xyz at in_level. More... | |
static Vec3R | xyz (const Vec3R &in_xyz, size_t in_level, size_t out_level) |
Return the floating-point index coordinate at out_level given the index coordinate in_xyz at in_level. More... | |
static Vec3R | xyz (const Vec3R &in_xyz, double in_level, double out_level) |
Return the floating-point index coordinate at out_level given the index coordinate in_xyz at in_level. More... | |
Definition at line 58 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ConstGridPtr = typename Grid<TreeType>::ConstPtr |
Definition at line 70 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ConstPtr = SharedPtr<const MultiResGrid> |
Definition at line 62 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ConstTreePtr = typename TreeType::ConstPtr |
Definition at line 68 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::GridPtr = typename Grid<TreeType>::Ptr |
Definition at line 69 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::Ptr = SharedPtr<MultiResGrid> |
Definition at line 61 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::TreePtr = typename TreeType::Ptr |
Definition at line 67 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ValueOnCIter = typename TreeType::ValueOnCIter |
Definition at line 65 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ValueOnIter = typename TreeType::ValueOnIter |
Definition at line 66 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ValueType = typename TreeType::ValueType |
Definition at line 64 of file MultiResGrid.h.
openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::MultiResGrid | ( | size_t | levels, |
ValueType | background, | ||
double | voxelSize = 1.0 |
||
) |
Constructor of empty grids.
levels | The number of trees in this MultiResGrid |
background | Background value |
voxelSize | Size of a (uniform voxel). Defaults to one. |
Definition at line 358 of file MultiResGrid.h.
openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::MultiResGrid | ( | size_t | levels, |
const Grid< TreeType > & | grid, | ||
bool | useInjection = false |
||
) |
Given an initial high-resolution grid this constructor generates all the coarser grids by means of restriction.
levels | The number of trees in this MultiResGrid |
grid | High-resolution input grid |
useInjection | Use restriction by injection, vs full-weighting. It defaults to false and should rarely be used. |
Definition at line 368 of file MultiResGrid.h.
openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::MultiResGrid | ( | size_t | levels, |
GridPtr | grid, | ||
bool | useInjection = false |
||
) |
Given an initial high-resolution grid this constructor generates all the coarser grids by means of restriction.
levels | The number of trees in this MultiResGrid |
grid | High-resolution input grid |
useInjection | Use restriction by injection, vs full-weighting. It defaults to false and should rarely be used. |
Definition at line 381 of file MultiResGrid.h.
|
inline |
Remove the setting specifying the class of this grid's volumetric data.
Definition at line 318 of file MultiResGrid.h.
|
inline |
Return a const reference to the tree at the coarsest level.
Definition at line 152 of file MultiResGrid.h.
|
inline |
Return a const shared pointer to the tree at the coarsest level.
Definition at line 158 of file MultiResGrid.h.
|
inline |
Return the level of the coarsest grid, i.e. numLevels()-1.
Definition at line 112 of file MultiResGrid.h.
|
inline |
Return a reference to the tree at the coarsest level.
Definition at line 149 of file MultiResGrid.h.
|
inline |
Return a shared pointer to the tree at the coarsest level.
Definition at line 155 of file MultiResGrid.h.
|
inline |
Return a reference to the finest grid's transform, which might be shared with other grids.
Definition at line 202 of file MultiResGrid.h.
|
inline |
Return a const reference to the tree at the specified level.
level | The level of the tree to be returned |
Definition at line 403 of file MultiResGrid.h.
|
inline |
Return a const shared pointer to the tree at the specified level.
level | The level of the tree to be returned |
Definition at line 419 of file MultiResGrid.h.
GridPtr openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::createGrid | ( | float | level, |
size_t | grainSize = 1 |
||
) | const |
Return a shared pointer to a new grid at the specified floating-point level.
level | Floating-point level of the grid to be returned |
grainSize | Grain size for the multi-threading |
Interpolation of the specified order is performed between the bracketing integer levels.
Grid<TreeType>::Ptr openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::createGrid | ( | float | level, |
size_t | grainSize | ||
) | const |
Definition at line 451 of file MultiResGrid.h.
|
inline |
Return a const reference to the tree at the finest level.
Definition at line 140 of file MultiResGrid.h.
|
inline |
Return a const shared pointer to the tree at the finest level.
Definition at line 146 of file MultiResGrid.h.
|
inlinestatic |
Return the level of the finest grid (always 0)
Definition at line 109 of file MultiResGrid.h.
|
inline |
Return a reference to the tree at the finest level.
Definition at line 137 of file MultiResGrid.h.
|
inline |
Return a shared pointer to the tree at the finest level.
Definition at line 143 of file MultiResGrid.h.
|
inline |
Return the class of volumetric data (level set, fog volume, etc.) stored in this grid.
Definition at line 304 of file MultiResGrid.h.
|
inline |
Return a string with the name of this MultiResGrid.
Definition at line 290 of file MultiResGrid.h.
Grid< TreeType >::Ptr openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::grid | ( | size_t | level | ) |
Return a shared pointer to the grid at the specified integer level.
level | Integer level of the grid to be returned |
Definition at line 427 of file MultiResGrid.h.
|
inline |
Return a const shared pointer to the grid at the specified level.
level | The level of the grid to be returned |
Definition at line 443 of file MultiResGrid.h.
GridPtrVecPtr openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::grids | ( | ) |
Return a shared pointer to a vector of all the base grids in this instance of the MultiResGrid.
This method is useful for I/O
Definition at line 480 of file MultiResGrid.h.
GridCPtrVecPtr openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::grids | ( | ) | const |
Return a const shared pointer to a vector of all the base grids in this instance of the MultiResGrid.
This method is useful for I/O
Definition at line 489 of file MultiResGrid.h.
|
inline |
Return the number of levels, i.e. trees, in this MultiResGrid.
Definition at line 106 of file MultiResGrid.h.
void openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::print | ( | std::ostream & | os = std::cout , |
int | verboseLevel = 1 |
||
) | const |
Output a human-readable description of this MultiResGrid.
Definition at line 616 of file MultiResGrid.h.
void openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::prolongateActiveVoxels | ( | size_t | destlevel, |
size_t | grainSize = 1 |
||
) |
(coarse->fine) Populates all the active voxel values in a fine (level) tree from the coarse (level+1) tree using linear interpolation This transforms multiple values of the tree in parallel
Definition at line 585 of file MultiResGrid.h.
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::prolongateVoxel | ( | const Coord & | coords, |
const size_t | level | ||
) | const |
Return the value at coordinate location in level tree from the coarser tree at level+1 using trilinear interpolation.
coords | input coords relative to the fine tree at level |
level | The fine level to receive values from the coarser level-1 |
Definition at line 576 of file MultiResGrid.h.
void openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::restrictActiveVoxels | ( | size_t | destlevel, |
size_t | grainSize = 1 |
||
) |
(fine->coarse) Populates all the active voxel values in the coarse (level) tree from the fine (level-1) tree using trilinear interpolation. For cell-centered data, this is equivalent to an average For vertex-centered data this is equivalent to transferring the data from the fine vertex directly above the coarse vertex. This transforms multiple values of the tree in parallel
Definition at line 606 of file MultiResGrid.h.
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::restrictVoxel | ( | Coord | ijk, |
const size_t | level, | ||
bool | useInjection = false |
||
) | const |
Populate a coordinate location in level (coarse) tree from the level-1 (fine) tree using trilinear interpolation input coords are relative to the mTree[level] (coarse)
Definition at line 595 of file MultiResGrid.h.
ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Coord & | in_ijk, |
size_t | in_level, | ||
size_t | out_level | ||
) | const |
Return the value at the specified coordinate position using interpolation of the specified order into the tree at the out_level.
First in_ijk is mapped from index space at in_level to out_level, and then a value is interpolated from the tree at out_level.
in_ijk | Index coordinate position relative to tree at in_level |
in_level | Integer level of the input coordinate in_ijk |
out_level | Integer level of the interpolated value |
ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Vec3R & | in_ijk, |
size_t | in_level, | ||
size_t | out_level | ||
) | const |
Return the value at the specified coordinate position using interpolation of the specified order into the tree at the out_level.
First in_ijk is mapped from index space at in_level to out_level, and then a value is interpolated from the tree at out_level.
in_ijk | Index coordinate position relative to tree at in_level |
in_level | Integer level of the input coordinate in_ijk |
out_level | Integer level of the interpolated value |
ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Coord & | ijk, |
double | level | ||
) | const |
Return the value at the specified integer coordinate position and level using interpolation of the specified order.
ijk | Integer coordinate position relative to the highest level (=0) grid |
level | Floating-point level from which to interpolate the value. Non-integer values of the level will use linear-interpolation between the neighboring integer levels. |
ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Vec3R & | xyz, |
double | level | ||
) | const |
Return the value at the specified floating-point coordinate position and level using interpolation of the specified order.
xyz | Floating-point coordinate position relative to the highest level grid |
level | Floating-point level from which to interpolate the value. Non-integer values of the level will use linear-interpolation between the neighboring integer levels. |
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Coord & | in_ijk, |
size_t | in_level, | ||
size_t | out_level | ||
) | const |
Definition at line 521 of file MultiResGrid.h.
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Vec3R & | in_xyz, |
size_t | in_level, | ||
size_t | out_level | ||
) | const |
Definition at line 532 of file MultiResGrid.h.
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Coord & | ijk, |
double | level | ||
) | const |
Definition at line 543 of file MultiResGrid.h.
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Vec3R & | xyz, |
double | level | ||
) | const |
Definition at line 560 of file MultiResGrid.h.
|
inline |
Specify the class of volumetric data (level set, fog volume, etc.) stored in this grid.
Definition at line 312 of file MultiResGrid.h.
|
inline |
Set the name of this MultiResGrid.
Definition at line 297 of file MultiResGrid.h.
|
inline |
Return a reference to the finest grid's transform, which might be shared with other grids.
Definition at line 200 of file MultiResGrid.h.
|
inline |
Return a reference to the finest grid's transform, which might be shared with other grids.
Definition at line 201 of file MultiResGrid.h.
|
inline |
Return a reference to the tree at the specified level.
level | The level of the tree to be returned |
Definition at line 395 of file MultiResGrid.h.
|
inline |
Return a shared pointer to the tree at the specified level.
level | The level of the tree to be returned |
Definition at line 411 of file MultiResGrid.h.
|
static |
Return the floating-point index coordinate at out_level given the index coordinate in_xyz at in_level.
Definition at line 498 of file MultiResGrid.h.
|
static |
Return the floating-point index coordinate at out_level given the index coordinate in_xyz at in_level.
Definition at line 505 of file MultiResGrid.h.
|
static |
Return the floating-point index coordinate at out_level given the index coordinate in_xyz at in_level.
Definition at line 512 of file MultiResGrid.h.