OpenVDB  12.0.0
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
GridData Struct Reference

Struct with all the member data of the Grid (useful during serialization of an openvdb grid) More...

#include <nanovdb/NanoVDB.h>

Inherited by Grid< BuildT >, Grid< IndexT >, Grid< nanovdb::Point >, and Grid< TreeT >.

Public Member Functions

GridDataoperator= (const GridData &)=default
 Use this method to initiate most member data. More...
 
__hostdev__ void init (std::initializer_list< GridFlags > list={GridFlags::IsBreadthFirst}, uint64_t gridSize=0u, const Map &map=Map(), GridType gridType=GridType::Unknown, GridClass gridClass=GridClass::Unknown)
 
__hostdev__ bool isValid () const
 return true if the magic number and the version are both valid More...
 
__hostdev__ void setMinMaxOn (bool on=true)
 
__hostdev__ void setBBoxOn (bool on=true)
 
__hostdev__ void setLongGridNameOn (bool on=true)
 
__hostdev__ void setAverageOn (bool on=true)
 
__hostdev__ void setStdDeviationOn (bool on=true)
 
__hostdev__ bool setGridName (const char *src)
 
template<typename Vec3T >
__hostdev__ Vec3T applyMap (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyInverseMap (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyJacobian (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyInverseJacobian (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyIJT (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyMapF (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyInverseMapF (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyJacobianF (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyInverseJacobianF (const Vec3T &xyz) const
 
template<typename Vec3T >
__hostdev__ Vec3T applyIJTF (const Vec3T &xyz) const
 
__hostdev__ void * treePtr ()
 
__hostdev__ const void * treePtr () const
 
template<uint32_t LEVEL>
__hostdev__ const void * nodePtr () const
 Return a non-const void pointer to the first node at LEVEL. More...
 
template<uint32_t LEVEL>
__hostdev__ void * nodePtr ()
 Return a non-const void pointer to the first node at LEVEL. More...
 
template<uint32_t LEVEL>
__hostdev__ uint32_t nodeCount () const
 Return number of nodes at LEVEL. More...
 
__hostdev__ const GridBlindMetaDatablindMetaData (uint32_t n) const
 Returns a const reference to the blindMetaData at the specified linear offset. More...
 
__hostdev__ const char * gridName () const
 
__hostdev__ const Vec3dBBox & worldBBox () const
 return AABB of active values in world space More...
 
__hostdev__ const CoordBBox & indexBBox () const
 return AABB of active values in index space More...
 
__hostdev__ uint32_t rootTableSize () const
 return the root table has size More...
 
__hostdev__ bool isEmpty () const
 test if the grid is empty, e.i the root table has size 0 More...
 
__hostdev__ bool isRootConnected () const
 return true if RootData follows TreeData in memory without any extra padding More...
 

Static Public Member Functions

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

Public Attributes

uint64_t mMagic
 
Checksum mChecksum
 
Version mVersion
 
BitFlags< 32 > mFlags
 
uint32_t mGridIndex
 
uint32_t mGridCount
 
uint64_t mGridSize
 
char mGridName [MaxNameSize]
 
Map mMap
 
Vec3dBBox mWorldBBox
 
Vec3d mVoxelSize
 
GridClass mGridClass
 
GridType mGridType
 
int64_t mBlindMetadataOffset
 
uint32_t mBlindMetadataCount
 
uint32_t mData0
 
uint64_t mData1
 
uint64_t mData2
 

Static Public Attributes

static const int MaxNameSize = 256
 

Detailed Description

Struct with all the member data of the Grid (useful during serialization of an openvdb grid)

Note
The transform is assumed to be affine (so linear) and have uniform scale! So frustum transforms and non-uniform scaling are not supported (primarily because they complicate ray-tracing in index space)
No client code should (or can) interface with this struct so it can safely be ignored!

Member Function Documentation

__hostdev__ Vec3T applyIJT ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyIJTF ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyInverseJacobian ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyInverseJacobianF ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyInverseMap ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyInverseMapF ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyJacobian ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyJacobianF ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyMap ( const Vec3T &  xyz) const
inline
__hostdev__ Vec3T applyMapF ( const Vec3T &  xyz) const
inline
__hostdev__ const GridBlindMetaData* blindMetaData ( uint32_t  n) const
inline

Returns a const reference to the blindMetaData at the specified linear offset.

Warning
The linear offset is assumed to be in the valid range
__hostdev__ const char* gridName ( ) const
inline
__hostdev__ const CoordBBox& indexBBox ( ) const
inline

return AABB of active values in index space

__hostdev__ void init ( std::initializer_list< GridFlags list = {GridFlags::IsBreadthFirst},
uint64_t  gridSize = 0u,
const Map map = Map(),
GridType  gridType = GridType::Unknown,
GridClass  gridClass = GridClass::Unknown 
)
inline
__hostdev__ bool isEmpty ( ) const
inline

test if the grid is empty, e.i the root table has size 0

Returns
true if this grid contains not data whatsoever
__hostdev__ bool isRootConnected ( ) const
inline

return true if RootData follows TreeData in memory without any extra padding

TreeData is always following right after GridData, but the same might not be true for RootData

__hostdev__ bool isValid ( ) const
inline

return true if the magic number and the version are both valid

static __hostdev__ uint64_t memUsage ( )
inlinestatic

Return memory usage in bytes for this class only.

__hostdev__ uint32_t nodeCount ( ) const
inline

Return number of nodes at LEVEL.

Template Parameters
Levelof the node. LEVEL 0 means leaf node and LEVEL 2 means upper node
__hostdev__ const void* nodePtr ( ) const
inline

Return a non-const void pointer to the first node at LEVEL.

Template Parameters
LEVELLevel of the node. LEVEL 0 means leaf node and LEVEL 3 means root node
__hostdev__ void* nodePtr ( )
inline

Return a non-const void pointer to the first node at LEVEL.

Template Parameters
LEVELof the node. LEVEL 0 means leaf node and LEVEL 3 means root node
Warning
If not nodes exist at LEVEL NULL is returned
GridData& operator= ( const GridData )
default

Use this method to initiate most member data.

__hostdev__ uint32_t rootTableSize ( ) const
inline

return the root table has size

__hostdev__ void setAverageOn ( bool  on = true)
inline
__hostdev__ void setBBoxOn ( bool  on = true)
inline
__hostdev__ bool setGridName ( const char *  src)
inline
__hostdev__ void setLongGridNameOn ( bool  on = true)
inline
__hostdev__ void setMinMaxOn ( bool  on = true)
inline
__hostdev__ void setStdDeviationOn ( bool  on = true)
inline
__hostdev__ void* treePtr ( )
inline
__hostdev__ const void* treePtr ( ) const
inline
__hostdev__ const Vec3dBBox& worldBBox ( ) const
inline

return AABB of active values in world space

Member Data Documentation

const int MaxNameSize = 256
static
uint32_t mBlindMetadataCount
int64_t mBlindMetadataOffset
Checksum mChecksum
uint32_t mData0
uint64_t mData1
uint64_t mData2
BitFlags<32> mFlags
GridClass mGridClass
uint32_t mGridCount
uint32_t mGridIndex
char mGridName[MaxNameSize]
uint64_t mGridSize
GridType mGridType
uint64_t mMagic
Map mMap
Version mVersion
Vec3d mVoxelSize
Vec3dBBox mWorldBBox