OpenVDB
0.104.0
|
Abstract base class for typed grids. More...
#include <Grid.h>
Inherits MetaMap.
Inherited by Grid< DualTreeT >, and Grid< typename >.
Public Types | |
typedef boost::shared_ptr < GridBase > | Ptr |
typedef boost::shared_ptr < const GridBase > | ConstPtr |
typedef Ptr(* | GridFactory )() |
typedef std::map< Name, Metadata::Ptr > | MetadataMap |
typedef MetadataMap::iterator | MetaIterator |
typedef MetadataMap::const_iterator | ConstMetaIterator |
Public Member Functions | |
virtual | ~GridBase () |
virtual GridBase::Ptr | copyGrid (CopyPolicy treePolicy=CP_SHARE) const =0 |
Return a new grid of the same type as this grid and whose metadata and transform are deep copies of this grid's. More... | |
virtual GridBase::Ptr | deepCopyGrid () const =0 |
Return a new grid whose metadata, transform and tree are deep copies of this grid's. More... | |
virtual Name | type () const =0 |
Return the name of this grid's type. More... | |
virtual Name | valueType () const =0 |
Return the name of the type of a voxel's value (e.g., "float" or "vec3d"). More... | |
template<typename GridType > | |
bool | isType () const |
Return true if this grid is of the same type as the template parameter. More... | |
virtual void | setTree (TreeBase::Ptr)=0 |
Associate the given tree with this grid, in place of its existing tree. More... | |
virtual void | newTree ()=0 |
Set a new tree with the same background value as the previous tree. More... | |
virtual bool | empty () const =0 |
Return true if this grid contains only background voxels. More... | |
virtual void | clear ()=0 |
Empty this grid, setting all voxels to the background. More... | |
virtual void | pruneGrid (float tolerance=0.0)=0 |
Reduce the memory footprint of this grid by increasing its sparseness either losslessly (tolerance = 0) or lossily (tolerance > 0). More... | |
std::string | getName () const |
Return this grid's user-specified name. More... | |
void | setName (const std::string &) |
Specify a name for this grid. More... | |
std::string | getCreator () const |
Return the user-specified description of this grid's creator. More... | |
void | setCreator (const std::string &) |
Provide a description of this grid's creator. More... | |
bool | saveFloatAsHalf () const |
Return true if this grid should be written out with floating-point voxel values (including components of vectors) quantized to 16 bits. More... | |
void | setSaveFloatAsHalf (bool) |
GridClass | getGridClass () const |
Return the class of volumetric data (level set, fog volume, etc.) stored in this grid. More... | |
void | setGridClass (GridClass) |
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... | |
VecType | getVectorType () const |
Return the type of vector data (invariant, covariant, etc.) stored in this grid, assuming that this grid contains a vector-valued tree. More... | |
void | setVectorType (VecType) |
Specify the type of vector data (invariant, covariant, etc.) stored in this grid, assuming that this grid contains a vector-valued tree. More... | |
void | clearVectorType () |
Remove the setting specifying the type of vector data stored in this grid. More... | |
bool | isInWorldSpace () const |
void | setIsInWorldSpace (bool) |
Specify whether this grid's voxel values are in world space or in local space. More... | |
virtual Index64 | activeVoxelCount () const =0 |
Return the number of active voxels. More... | |
virtual CoordBBox | evalActiveVoxelBoundingBox () const =0 |
virtual Coord | evalActiveVoxelDim () const =0 |
Return the dimensions of the axis-aligned bounding box of all active voxels. More... | |
virtual Index64 | memUsage () const =0 |
Return the number of bytes of memory used by this grid. More... | |
void | addStatsMetadata () |
Add metadata to this grid comprising the current values of statistics like the active voxel count and bounding box. More... | |
MetaMap::Ptr | getStatsMetadata () const |
Return a new MetaMap containing just the metadata that was added to this grid with addStatsMetadata(). More... | |
void | setTransform (math::Transform::Ptr) |
Associate the given transform with this grid, in place of its existing transform. More... | |
Vec3d | voxelSize () const |
Return the size of this grid's voxels. More... | |
__attribute__ ((deprecated)) Vec3d voxelDimensions() const | |
Vec3d | voxelSize (const Vec3d &xyz) const |
Return the size of this grid's voxel at position (x, y, z). More... | |
__attribute__ ((deprecated)) Vec3d voxelDimensions(const Vec3d &xyz) const | |
bool | hasUniformVoxels () const |
Return true if the voxels in world space are uniformly sized cubes. More... | |
Vec3d | worldToIndex (const Vec3d &xyz) const |
Apply the inverse of this grid's transform to the given coordinates. More... | |
virtual void | readTopology (std::istream &)=0 |
Read the grid topology from a stream. This will read only the grid structure, not the actual data buffers. More... | |
virtual void | writeTopology (std::ostream &) const =0 |
Write the grid topology to a stream. This will write only the grid structure, not the actual data buffers. More... | |
virtual void | readBuffers (std::istream &)=0 |
Read all data buffers for this grid. More... | |
virtual void | writeBuffers (std::ostream &) const =0 |
Write out all data buffers for this grid. More... | |
void | readTransform (std::istream &is) |
Read in the transform for this grid. More... | |
void | writeTransform (std::ostream &os) const |
Write out the transform for this grid. More... | |
virtual void | print (std::ostream &=std::cout, int verboseLevel=1) const =0 |
Output a human-readable description of this grid. More... | |
template<typename GridType > | |
GridType::Ptr | grid (const GridBase::Ptr &grid) |
template<typename GridType > | |
GridType::ConstPtr | grid (const GridBase::ConstPtr &grid) |
template<typename GridType > | |
GridType::ConstPtr | constGrid (const GridBase::Ptr &grid) |
template<typename GridType > | |
GridType::ConstPtr | constGrid (const GridBase::ConstPtr &grid) |
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... | |
void | readMeta (std::istream &) |
Read in all the Meta information the given stream. More... | |
void | writeMeta (std::ostream &) const |
Write out all the Meta information to the given stream. More... | |
void | insertMeta (const Name &name, const Metadata &metadata) |
void | removeMeta (const Name &name) |
template<typename T > | |
T & | metaValue (const Name &name) |
template<typename T > | |
const T & | metaValue (const Name &name) const |
MetaIterator | beginMeta () |
Functions for iterating over the Metadata. More... | |
ConstMetaIterator | beginMeta () const |
MetaIterator | endMeta () |
ConstMetaIterator | endMeta () const |
void | clearMetadata () |
size_t | metaCount () const |
std::string | str () const |
TreeBase::Ptr | baseTreePtr () |
Return a pointer to this grid's tree, which might be shared with other grids. The pointer is guaranteed to be non-null. More... | |
TreeBase::ConstPtr | baseTreePtr () const |
Return a pointer to this grid's tree, which might be shared with other grids. The pointer is guaranteed to be non-null. More... | |
virtual TreeBase::ConstPtr | constBaseTreePtr () const =0 |
Return a pointer to this grid's tree, which might be shared with other grids. The pointer is guaranteed to be non-null. More... | |
TreeBase & | baseTree () |
Return a reference to this grid's tree, which might be shared with other grids. More... | |
const TreeBase & | baseTree () const |
Return a reference to this grid's tree, which might be shared with other grids. More... | |
const TreeBase & | constBaseTree () const |
Return a reference to this grid's tree, which might be shared with other grids. More... | |
math::Transform::Ptr | transformPtr () |
Return a pointer to this grid's transform, which might be shared with other grids. More... | |
math::Transform::ConstPtr | transformPtr () const |
Return a pointer to this grid's transform, which might be shared with other grids. More... | |
math::Transform::ConstPtr | constTransformPtr () const |
Return a pointer to this grid's transform, which might be shared with other grids. More... | |
math::Transform & | transform () |
Return a reference to this grid's transform, which might be shared with other grids. More... | |
const math::Transform & | transform () const |
Return a reference to this grid's transform, which might be shared with other grids. More... | |
const math::Transform & | constTransform () const |
Return a reference to this grid's transform, which might be shared with other grids. More... | |
Vec3d | indexToWorld (const Vec3d &xyz) const |
Apply this grid's transform to the given coordinates. More... | |
Vec3d | indexToWorld (const Coord &ijk) const |
Apply this grid's transform to the given coordinates. More... | |
Metadata::Ptr | operator[] (const Name &) |
Metadata::ConstPtr | operator[] (const Name &) const |
template<typename T > | |
T::Ptr | getMetadata (const Name &name) |
template<typename T > | |
T::ConstPtr | getMetadata (const Name &name) const |
Static Public Member Functions | |
static Ptr | createGrid (const Name &type) |
Create a new grid of the given (registered) type. More... | |
static bool | isRegistered (const Name &type) |
Return true if the given grid type name is registered. More... | |
static void | clearRegistry () |
Clear the grid type registry. More... | |
static std::string | gridClassToString (GridClass) |
Return the metadata string value for the given class of volumetric data. More... | |
static std::string | gridClassToMenuName (GridClass) |
Return a formatted string version of the grid class. More... | |
static GridClass | stringToGridClass (const std::string &) |
Return the class of volumetric data specified by the given string. More... | |
static std::string | vecTypeToString (VecType) |
Return the metadata string value for the given type of vector data. More... | |
static std::string | vecTypeExamples (VecType) |
static std::string | vecTypeDescription (VecType) |
Return a string describing how the given type of vector data is affected by transformations (e.g., "Does not transform", given VEC_INVARIANT). More... | |
static VecType | stringToVecType (const std::string &) |
template<typename GridType > | |
static GridType::Ptr | grid (const GridBase::Ptr &) |
Return the result of downcasting a GridBase pointer to a Grid pointer of the specified type, or return a null pointer if the types are incompatible. More... | |
template<typename GridType > | |
static GridType::ConstPtr | grid (const GridBase::ConstPtr &) |
Return the result of downcasting a GridBase pointer to a Grid pointer of the specified type, or return a null pointer if the types are incompatible. More... | |
template<typename GridType > | |
static GridType::ConstPtr | constGrid (const GridBase::Ptr &) |
Return the result of downcasting a GridBase pointer to a Grid pointer of the specified type, or return a null pointer if the types are incompatible. More... | |
template<typename GridType > | |
static GridType::ConstPtr | constGrid (const GridBase::ConstPtr &) |
Return the result of downcasting a GridBase pointer to a Grid pointer of the specified type, or return a null pointer if the types are incompatible. More... | |
Static Public Attributes | |
static const char *const | META_GRID_CLASS = "class" |
static const char *const | META_GRID_CREATOR = "creator" |
static const char *const | META_GRID_NAME = "name" |
static const char *const | META_SAVE_HALF_FLOAT = "is_saved_as_half_float" |
static const char *const | META_IS_LOCAL_SPACE = "is_local_space" |
static const char *const | META_VECTOR_TYPE = "vector_type" |
static const char *const | META_FILE_BBOX_MIN = "file_bbox_min" |
static const char *const | META_FILE_BBOX_MAX = "file_bbox_max" |
static const char *const | META_FILE_COMPRESSION = "file_compression" |
static const char *const | META_FILE_MEM_BYTES = "file_mem_bytes" |
static const char *const | META_FILE_VOXEL_COUNT = "file_voxel_count" |
Protected Member Functions | |
GridBase () | |
Initialize with an identity linear transform. More... | |
GridBase (const GridBase &other) | |
Deep copy another grid's metadata and transform. More... | |
GridBase (const GridBase &other, ShallowCopy) | |
Copy another grid's metadata but share its transform. More... | |
Static Protected Member Functions | |
static void | registerGrid (const Name &type, GridFactory) |
Register a grid type along with a factory function. More... | |
static void | unregisterGrid (const Name &type) |
Remove a grid type from the registry. More... | |
Abstract base class for typed grids.
|
inherited |
typedef Ptr(* GridFactory)() |
|
inherited |
|
inherited |
|
inlinevirtual |
|
inlineprotected |
Initialize with an identity linear transform.
|
inlineprotected |
Copy another grid's metadata but share its transform.
|
inline |
|
inline |
|
pure virtual |
Return the number of active voxels.
Implemented in Grid< typename >, and Grid< DualTreeT >.
void addStatsMetadata | ( | ) |
Add metadata to this grid comprising the current values of statistics like the active voxel count and bounding box.
|
inline |
Return a reference to this grid's tree, which might be shared with other grids.
|
inline |
Return a reference to this grid's tree, which might be shared with other grids.
|
inline |
Return a pointer to this grid's tree, which might be shared with other grids. The pointer is guaranteed to be non-null.
|
inline |
Return a pointer to this grid's tree, which might be shared with other grids. The pointer is guaranteed to be non-null.
|
inlineinherited |
Functions for iterating over the Metadata.
|
inlineinherited |
|
pure virtual |
Empty this grid, setting all voxels to the background.
Implemented in Grid< typename >, and Grid< DualTreeT >.
void clearGridClass | ( | ) |
Remove the setting specifying the class of this grid's volumetric data.
|
inlineinherited |
|
static |
Clear the grid type registry.
void clearVectorType | ( | ) |
Remove the setting specifying the type of vector data stored in this grid.
|
inline |
Return a reference to this grid's tree, which might be shared with other grids.
|
pure virtual |
Return a pointer to this grid's tree, which might be shared with other grids. The pointer is guaranteed to be non-null.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
static |
|
static |
|
inline |
|
inline |
|
inline |
Return a reference to this grid's transform, which might be shared with other grids.
|
inline |
Return a pointer to this grid's transform, which might be shared with other grids.
|
pure virtual |
Return a new grid of the same type as this grid and whose metadata and transform are deep copies of this grid's.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inherited |
Return a copy of this map whose fields are shared with this map.
|
static |
Create a new grid of the given (registered) type.
|
pure virtual |
Return a new grid whose metadata, transform and tree are deep copies of this grid's.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inherited |
Return a deep copy of this map that shares no data with this map.
|
pure virtual |
Return true
if this grid contains only background voxels.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inlineinherited |
|
inlineinherited |
|
pure virtual |
Return the axis-aligned bounding box of all active voxels. If the grid is empty a default bbox is returned.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
pure virtual |
Return the dimensions of the axis-aligned bounding box of all active voxels.
Implemented in Grid< typename >, and Grid< DualTreeT >.
std::string getCreator | ( | ) | const |
Return the user-specified description of this grid's creator.
GridClass getGridClass | ( | ) | const |
Return the class of volumetric data (level set, fog volume, etc.) stored in this grid.
|
inlineinherited |
|
inlineinherited |
std::string getName | ( | ) | const |
Return this grid's user-specified name.
MetaMap::Ptr getStatsMetadata | ( | ) | const |
Return a new MetaMap containing just the metadata that was added to this grid with addStatsMetadata().
If addStatsMetadata() was never called on this grid, return an empty MetaMap.
VecType getVectorType | ( | ) | const |
Return the type of vector data (invariant, covariant, etc.) stored in this grid, assuming that this grid contains a vector-valued tree.
|
static |
|
static |
|
inline |
|
inline |
|
static |
Return a formatted string version of the grid class.
|
static |
Return the metadata string value for the given class of volumetric data.
|
inline |
Return true if the voxels in world space are uniformly sized cubes.
Apply this grid's transform to the given coordinates.
Apply this grid's transform to the given coordinates.
Insert a new metadata or overwrite existing. If Metadata with given name doesn't exist, a new Metadata field is added. If it does exist and given metadata is of the same type, then overwrite existing with new value. If it does exist and not of the same type, then throw an exception.
name | the name of the metadata. |
metadata | the actual metadata to store. |
bool isInWorldSpace | ( | ) | const |
Return true
if this grid's voxel values are in world space and should be affected by transformations, false
if they are in local space and should not be affected by transformations.
|
static |
Return true
if the given grid type name is registered.
|
inline |
Return true
if this grid is of the same type as the template parameter.
|
pure virtual |
Return the number of bytes of memory used by this grid.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
pure virtual |
Set a new tree with the same background value as the previous tree.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inlineinherited |
|
inlineinherited |
|
pure virtual |
Output a human-readable description of this grid.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
pure virtual |
Reduce the memory footprint of this grid by increasing its sparseness either losslessly (tolerance = 0) or lossily (tolerance > 0).
With tolerance > 0, sparsify regions where voxels have the same active state and have values that differ by no more than the tolerance (converted to this grid's value type).
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
pure virtual |
Read all data buffers for this grid.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inherited |
Read in all the Meta information the given stream.
|
pure virtual |
Read the grid topology from a stream. This will read only the grid structure, not the actual data buffers.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inline |
Read in the transform for this grid.
|
staticprotected |
Register a grid type along with a factory function.
|
inherited |
Removes an existing metadata field from the grid. If the metadata with the given name doesn't exist, do nothing.
name | the name of the metadata field to remove. |
bool saveFloatAsHalf | ( | ) | const |
Return true
if this grid should be written out with floating-point voxel values (including components of vectors) quantized to 16 bits.
void setCreator | ( | const std::string & | creator | ) |
Provide a description of this grid's creator.
void setGridClass | ( | GridClass | cls | ) |
Specify the class of volumetric data (level set, fog volume, etc.) stored in this grid.
void setIsInWorldSpace | ( | bool | world | ) |
Specify whether this grid's voxel values are in world space or in local space.
void setName | ( | const std::string & | name | ) |
Specify a name for this grid.
void setSaveFloatAsHalf | ( | bool | saveAsHalf | ) |
|
inline |
Associate the given transform with this grid, in place of its existing transform.
ValueError | if the transform pointer is null |
|
pure virtual |
Associate the given tree with this grid, in place of its existing tree.
ValueError | if the tree pointer is null |
TypeError | if the tree is not of the appropriate type |
Implemented in Grid< typename >, and Grid< DualTreeT >.
void setVectorType | ( | VecType | typ | ) |
Specify the type of vector data (invariant, covariant, etc.) stored in this grid, assuming that this grid contains a vector-valued tree.
|
inherited |
|
static |
Return the class of volumetric data specified by the given string.
If the string is not one of the ones returned by gridClassToString(), return GRID_UNKNOWN
.
|
static |
|
inline |
Return a reference to this grid's transform, which might be shared with other grids.
|
inline |
Return a reference to this grid's transform, which might be shared with other grids.
|
inline |
Return a pointer to this grid's transform, which might be shared with other grids.
|
inline |
Return a pointer to this grid's transform, which might be shared with other grids.
|
pure virtual |
Return the name of this grid's type.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
staticprotected |
Remove a grid type from the registry.
|
pure virtual |
Return the name of the type of a voxel's value (e.g., "float" or "vec3d").
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
static |
Return a string describing how the given type of vector data is affected by transformations (e.g., "Does not transform", given VEC_INVARIANT).
|
static |
Return a string listing examples of the given type of vector data (e.g., "Gradient/Normal", given VEC_COVARIANT).
|
static |
Return the metadata string value for the given type of vector data.
|
inline |
Return the size of this grid's voxels.
Return the size of this grid's voxel at position (x, y, z).
Apply the inverse of this grid's transform to the given coordinates.
|
pure virtual |
Write out all data buffers for this grid.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inherited |
Write out all the Meta information to the given stream.
|
pure virtual |
Write the grid topology to a stream. This will write only the grid structure, not the actual data buffers.
Implemented in Grid< typename >, and Grid< DualTreeT >.
|
inline |
Write out the transform for this grid.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |