OpenVDB  9.0.1
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Grid< TreeT > Class Template Reference

Highest level of the data structure. Contains a tree and a world->index transform (that currently only supports uniform scaling and translation). More...

#include <nanovdb/NanoVDB.h>

Inherits GridData.

Public Types

using TreeType = TreeT
 
using RootType = typename TreeT::RootType
 
using DataType = GridData
 
using ValueType = typename TreeT::ValueType
 
using BuildType = typename TreeT::BuildType
 
using CoordType = typename TreeT::CoordType
 
using AccessorType = DefaultReadAccessor< BuildType >
 

Public Member Functions

 Grid (const Grid &)=delete
 Disallow constructions, copy and assignment. More...
 
Gridoperator= (const Grid &)=delete
 
 ~Grid ()=delete
 
Version version () const
 
DataTypedata ()
 
const DataTypedata () const
 
uint64_t gridSize () const
 Return the memory footprint of the entire grid, i.e. including all nodes and blind data. More...
 
uint32_t gridIndex () const
 Return index of this grid in the buffer. More...
 
uint32_t gridCount () const
 Return total number of grids in the buffer. More...
 
const TreeT & tree () const
 Return a const reference to the tree. More...
 
TreeT & tree ()
 Return a non-const reference to the tree. More...
 
AccessorType getAccessor () const
 Return a new instance of a ReadAccessor used to access values in this grid. More...
 
const Vec3RvoxelSize () const
 Return a const reference to the size of a voxel in world units. More...
 
const Mapmap () const
 Return a const reference to the Map for this grid. More...
 
template<typename Vec3T >
Vec3T worldToIndex (const Vec3T &xyz) const
 world to index space transformation More...
 
template<typename Vec3T >
Vec3T indexToWorld (const Vec3T &xyz) const
 index to world space transformation More...
 
template<typename Vec3T >
Vec3T indexToWorldDir (const Vec3T &dir) const
 transformation from index space direction to world space direction More...
 
template<typename Vec3T >
Vec3T worldToIndexDir (const Vec3T &dir) const
 transformation from world space direction to index space direction More...
 
template<typename Vec3T >
Vec3T indexToWorldGrad (const Vec3T &grad) const
 transform the gradient from index space to world space. More...
 
template<typename Vec3T >
Vec3T worldToIndexF (const Vec3T &xyz) const
 world to index space transformation More...
 
template<typename Vec3T >
Vec3T indexToWorldF (const Vec3T &xyz) const
 index to world space transformation More...
 
template<typename Vec3T >
Vec3T indexToWorldDirF (const Vec3T &dir) const
 transformation from index space direction to world space direction More...
 
template<typename Vec3T >
Vec3T worldToIndexDirF (const Vec3T &dir) const
 transformation from world space direction to index space direction More...
 
template<typename Vec3T >
Vec3T indexToWorldGradF (const Vec3T &grad) const
 Transforms the gradient from index space to world space. More...
 
const BBox< Vec3R > & worldBBox () const
 Computes a AABB of active values in world space. More...
 
const BBox< CoordType > & indexBBox () const
 Computes a AABB of active values in index space. More...
 
uint64_t activeVoxelCount () const
 Return the total number of active voxels in this tree. More...
 
bool isValid () const
 Methods related to the classification of this grid. More...
 
const GridTypegridType () const
 
const GridClassgridClass () const
 
bool isLevelSet () const
 
bool isFogVolume () const
 
bool isStaggered () const
 
bool isPointIndex () const
 
bool isPointData () const
 
bool isMask () const
 
bool isUnknown () const
 
bool hasMinMax () const
 
bool hasBBox () const
 
bool hasLongGridName () const
 
bool hasAverage () const
 
bool hasStdDeviation () const
 
bool isBreadthFirst () const
 
template<typename NodeT >
bool isSequential () const
 return true if the specified node type is layed out breadth-first in memory and has a fixed size. This allows for sequential access to the nodes. More...
 
template<int LEVEL>
bool isSequential () const
 return true if the specified node level is layed out breadth-first in memory and has a fixed size. This allows for sequential access to the nodes. More...
 
const char * gridName () const
 Return a c-string with the name of this grid. More...
 
const char * shortGridName () const
 Return a c-string with the name of this grid, truncated to 255 characters. More...
 
uint64_t checksum () const
 Return checksum of the grid buffer. More...
 
bool isEmpty () const
 Return true if this grid is empty, i.e. contains no values or nodes. More...
 
int blindDataCount () const
 Return the count of blind-data encoded in this grid. More...
 
int findBlindDataForSemantic (GridBlindDataSemantic semantic) const
 Return the index of the blind data with specified semantic if found, otherwise -1. More...
 
const void * blindData (uint32_t n) const
 Returns a const pointer to the blindData at the specified linear offset. More...
 
const GridBlindMetaDatablindMetaData (int n) const
 

Static Public Member Functions

static uint64_t memUsage ()
 Return memory usage in bytes for this class only. More...
 

Private Member Functions

void setFlagsOff ()
 
void setMinMaxOn (bool on=true)
 
void setBBoxOn (bool on=true)
 
void setLongGridNameOn (bool on=true)
 
void setAverageOn (bool on=true)
 
void setStdDeviationOn (bool on=true)
 
void setBreadthFirstOn (bool on=true)
 
template<typename Vec3T >
Vec3T applyMap (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyInverseMap (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyJacobian (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyInverseJacobian (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyIJT (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyMapF (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyInverseMapF (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyJacobianF (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyInverseJacobianF (const Vec3T &xyz) const
 
template<typename Vec3T >
Vec3T applyIJTF (const Vec3T &xyz) const
 
void * treePtr ()
 
const void * treePtr () const
 
const GridBlindMetaDatablindMetaData (uint32_t n) const
 Returns a const reference to the blindMetaData at the specified linear offset. More...
 

Private Attributes

uint64_t mMagic
 
uint64_t mChecksum
 
Version mVersion
 
uint32_t mFlags
 
uint32_t mGridIndex
 
uint32_t mGridCount
 
uint64_t mGridSize
 
char mGridName [MaxNameSize]
 
Map mMap
 
BBox< Vec3RmWorldBBox
 
Vec3R mVoxelSize
 
GridClass mGridClass
 
GridType mGridType
 
int64_t mBlindMetadataOffset
 
uint32_t mBlindMetadataCount
 

Static Private Attributes

static const int MaxNameSize = 256
 

Detailed Description

template<typename TreeT>
class nanovdb::Grid< TreeT >

Highest level of the data structure. Contains a tree and a world->index transform (that currently only supports uniform scaling and translation).

Note
This the API of this class to interface with client code

Member Typedef Documentation

using BuildType = typename TreeT::BuildType
using CoordType = typename TreeT::CoordType
using DataType = GridData
using RootType = typename TreeT::RootType
using TreeType = TreeT
using ValueType = typename TreeT::ValueType

Constructor & Destructor Documentation

Grid ( const Grid< TreeT > &  )
delete

Disallow constructions, copy and assignment.

Note
Only a Serializer, defined elsewhere, can instantiate this class
~Grid ( )
delete

Member Function Documentation

uint64_t activeVoxelCount ( ) const
inline

Return the total number of active voxels in this tree.

const void* blindData ( uint32_t  n) const
inline

Returns a const pointer to the blindData at the specified linear offset.

Warning
Point might be NULL and the linear offset is assumed to be in the valid range
int blindDataCount ( ) const
inline

Return the count of blind-data encoded in this grid.

const GridBlindMetaData& blindMetaData ( int  n) const
inline
uint64_t checksum ( ) const
inline

Return checksum of the grid buffer.

DataType* data ( )
inline
const DataType* data ( ) const
inline
int findBlindDataForSemantic ( GridBlindDataSemantic  semantic) const

Return the index of the blind data with specified semantic if found, otherwise -1.

AccessorType getAccessor ( ) const
inline

Return a new instance of a ReadAccessor used to access values in this grid.

const GridClass& gridClass ( ) const
inline
uint32_t gridCount ( ) const
inline

Return total number of grids in the buffer.

uint32_t gridIndex ( ) const
inline

Return index of this grid in the buffer.

const char* gridName ( ) const
inline

Return a c-string with the name of this grid.

uint64_t gridSize ( ) const
inline

Return the memory footprint of the entire grid, i.e. including all nodes and blind data.

const GridType& gridType ( ) const
inline
bool hasAverage ( ) const
inline
bool hasBBox ( ) const
inline
bool hasLongGridName ( ) const
inline
bool hasMinMax ( ) const
inline
bool hasStdDeviation ( ) const
inline
const BBox<CoordType>& indexBBox ( ) const
inline

Computes a AABB of active values in index space.

Note
This method is returning a floating point bounding box and not a CoordBBox. This makes it more useful for clipping rays.
Vec3T indexToWorld ( const Vec3T &  xyz) const
inline

index to world space transformation

Vec3T indexToWorldDir ( const Vec3T &  dir) const
inline

transformation from index space direction to world space direction

Warning
assumes dir to be normalized
Vec3T indexToWorldDirF ( const Vec3T &  dir) const
inline

transformation from index space direction to world space direction

Warning
assumes dir to be normalized
Vec3T indexToWorldF ( const Vec3T &  xyz) const
inline

index to world space transformation

Vec3T indexToWorldGrad ( const Vec3T &  grad) const
inline

transform the gradient from index space to world space.

Applies the inverse jacobian transform map.

Vec3T indexToWorldGradF ( const Vec3T &  grad) const
inline

Transforms the gradient from index space to world space.

Applies the inverse jacobian transform map.

bool isBreadthFirst ( ) const
inline
bool isEmpty ( ) const
inline

Return true if this grid is empty, i.e. contains no values or nodes.

bool isFogVolume ( ) const
inline
bool isLevelSet ( ) const
inline
bool isMask ( ) const
inline
bool isPointData ( ) const
inline
bool isPointIndex ( ) const
inline
bool isSequential ( ) const
inline

return true if the specified node type is layed out breadth-first in memory and has a fixed size. This allows for sequential access to the nodes.

bool isSequential ( ) const
inline

return true if the specified node level is layed out breadth-first in memory and has a fixed size. This allows for sequential access to the nodes.

bool isStaggered ( ) const
inline
bool isUnknown ( ) const
inline
bool isValid ( ) const
inline

Methods related to the classification of this grid.

const Map& map ( ) const
inline

Return a const reference to the Map for this grid.

static uint64_t memUsage ( )
inlinestatic

Return memory usage in bytes for this class only.

Grid& operator= ( const Grid< TreeT > &  )
delete
const char* shortGridName ( ) const
inline

Return a c-string with the name of this grid, truncated to 255 characters.

const TreeT& tree ( ) const
inline

Return a const reference to the tree.

TreeT& tree ( )
inline

Return a non-const reference to the tree.

Version version ( ) const
inline
const Vec3R& voxelSize ( ) const
inline

Return a const reference to the size of a voxel in world units.

const BBox<Vec3R>& worldBBox ( ) const
inline

Computes a AABB of active values in world space.

Vec3T worldToIndex ( const Vec3T &  xyz) const
inline

world to index space transformation

Vec3T worldToIndexDir ( const Vec3T &  dir) const
inline

transformation from world space direction to index space direction

Warning
assumes dir to be normalized
Vec3T worldToIndexDirF ( const Vec3T &  dir) const
inline

transformation from world space direction to index space direction

Warning
assumes dir to be normalized
Vec3T worldToIndexF ( const Vec3T &  xyz) const
inline

world to index space transformation