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 |
Public Types inherited from openvdb::OPENVDB_VERSION_NAME::MetaMap | |
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... | |
Public Member Functions inherited from openvdb::OPENVDB_VERSION_NAME::MetaMap | |
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 60 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ConstGridPtr = typename Grid<TreeType>::ConstPtr |
Definition at line 72 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ConstPtr = SharedPtr<const MultiResGrid> |
Definition at line 64 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ConstTreePtr = typename TreeType::ConstPtr |
Definition at line 70 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::GridPtr = typename Grid<TreeType>::Ptr |
Definition at line 71 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::Ptr = SharedPtr<MultiResGrid> |
Definition at line 63 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::TreePtr = typename TreeType::Ptr |
Definition at line 69 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ValueOnCIter = typename TreeType::ValueOnCIter |
Definition at line 67 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ValueOnIter = typename TreeType::ValueOnIter |
Definition at line 68 of file MultiResGrid.h.
using openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::ValueType = typename TreeType::ValueType |
Definition at line 66 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 360 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 370 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 383 of file MultiResGrid.h.
|
inline |
Remove the setting specifying the class of this grid's volumetric data.
Definition at line 320 of file MultiResGrid.h.
|
inline |
Return a const reference to the tree at the coarsest level.
Definition at line 154 of file MultiResGrid.h.
|
inline |
Return a const shared pointer to the tree at the coarsest level.
Definition at line 160 of file MultiResGrid.h.
|
inline |
Return the level of the coarsest grid, i.e. numLevels()-1.
Definition at line 114 of file MultiResGrid.h.
|
inline |
Return a reference to the tree at the coarsest level.
Definition at line 151 of file MultiResGrid.h.
|
inline |
Return a shared pointer to the tree at the coarsest level.
Definition at line 157 of file MultiResGrid.h.
|
inline |
Return a reference to the finest grid's transform, which might be shared with other grids.
Definition at line 204 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 405 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 421 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 453 of file MultiResGrid.h.
|
inline |
Return a const reference to the tree at the finest level.
Definition at line 142 of file MultiResGrid.h.
|
inline |
Return a const shared pointer to the tree at the finest level.
Definition at line 148 of file MultiResGrid.h.
|
inlinestatic |
Return the level of the finest grid (always 0)
Definition at line 111 of file MultiResGrid.h.
|
inline |
Return a reference to the tree at the finest level.
Definition at line 139 of file MultiResGrid.h.
|
inline |
Return a shared pointer to the tree at the finest level.
Definition at line 145 of file MultiResGrid.h.
|
inline |
Return the class of volumetric data (level set, fog volume, etc.) stored in this grid.
Definition at line 306 of file MultiResGrid.h.
|
inline |
Return a string with the name of this MultiResGrid.
Definition at line 292 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 429 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 445 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 482 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 491 of file MultiResGrid.h.
|
inline |
Return the number of levels, i.e. trees, in this MultiResGrid.
Definition at line 108 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 618 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 587 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 578 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 608 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 597 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 523 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 534 of file MultiResGrid.h.
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Coord & | ijk, |
double | level | ||
) | const |
Definition at line 545 of file MultiResGrid.h.
TreeType::ValueType openvdb::OPENVDB_VERSION_NAME::tools::MultiResGrid< TreeType >::sampleValue | ( | const Vec3R & | xyz, |
double | level | ||
) | const |
Definition at line 562 of file MultiResGrid.h.
|
inline |
Specify the class of volumetric data (level set, fog volume, etc.) stored in this grid.
Definition at line 314 of file MultiResGrid.h.
|
inline |
Set the name of this MultiResGrid.
Definition at line 299 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 reference to the finest grid's transform, which might be shared with other grids.
Definition at line 203 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 397 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 413 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 500 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 507 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 514 of file MultiResGrid.h.