OpenVDB 11.0.0
Loading...
Searching...
No Matches
GridData Struct Reference

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

#include <nanovdb/NanoVDB.h>

Inheritance diagram for GridData:
Grid< NanoTree< BuildT > > Grid< FloatTree > Grid< Fp4Tree > Grid< Fp8Tree > Grid< Fp16Tree > Grid< FpNTree > Grid< DoubleTree > Grid< Int32Tree > Grid< UInt32Tree > Grid< Int64Tree > Grid< Vec3fTree > Grid< Vec3dTree > Grid< Vec4fTree > Grid< Vec4dTree > Grid< Vec3ITree > Grid< MaskTree > Grid< BoolTree > Grid< Point > Grid< IndexTree > Grid< OnIndexTree > Grid< IndexMaskTree > Grid< OnIndexMaskTree > Grid< NanoTreeT > Grid< TreeT >

Public Member Functions

GridDataoperator= (const GridData &other)
 Use this method to initiate most member dat.
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)
bool isValid () const
 return true if the magic number and the version are both valid
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)
bool setGridName (const char *src)
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
uint8_t * treePtr ()
const uint8_t * treePtr () const
template<uint32_t LEVEL>
const uint8_t * nodePtr () const
 Return a non-const uint8_t pointer to the first node at LEVEL.
template<uint32_t LEVEL>
uint8_t * nodePtr ()
 Return a non-const uint8_t pointer to the first node at LEVEL.
const GridBlindMetaDatablindMetaData (uint32_t n) const
 Returns a const reference to the blindMetaData at the specified linear offset.
const char * gridName () const
const BBox< Vec3d > & worldBBox () const
 return AABB of active values in world space
const CoordBBoxindexBBox () const
 return AABB of active values in index space
uint32_t rootTableSize () const
 return the root table has size
bool isEmpty () const
 test if the grid is empty, e.i the root table has size 0
bool isRootConnected () const
 return true if RootData follows TreeData in memory without any extra padding

Static Public Member Functions

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

Public Attributes

uint64_t mMagic
uint64_t mChecksum
Version mVersion
BitFlags< 32 > mFlags
uint32_t mGridIndex
uint32_t mGridCount
uint64_t mGridSize
char mGridName [MaxNameSize]
Map mMap
BBox< Vec3dmWorldBBox
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

◆ applyIJT()

template<typename Vec3T>
Vec3T applyIJT ( const Vec3T & xyz) const
inline

◆ applyIJTF()

template<typename Vec3T>
Vec3T applyIJTF ( const Vec3T & xyz) const
inline

◆ applyInverseJacobian()

template<typename Vec3T>
Vec3T applyInverseJacobian ( const Vec3T & xyz) const
inline

◆ applyInverseJacobianF()

template<typename Vec3T>
Vec3T applyInverseJacobianF ( const Vec3T & xyz) const
inline

◆ applyInverseMap()

template<typename Vec3T>
Vec3T applyInverseMap ( const Vec3T & xyz) const
inline

◆ applyInverseMapF()

template<typename Vec3T>
Vec3T applyInverseMapF ( const Vec3T & xyz) const
inline

◆ applyJacobian()

template<typename Vec3T>
Vec3T applyJacobian ( const Vec3T & xyz) const
inline

◆ applyJacobianF()

template<typename Vec3T>
Vec3T applyJacobianF ( const Vec3T & xyz) const
inline

◆ applyMap()

template<typename Vec3T>
Vec3T applyMap ( const Vec3T & xyz) const
inline

◆ applyMapF()

template<typename Vec3T>
Vec3T applyMapF ( const Vec3T & xyz) const
inline

◆ blindMetaData()

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

◆ gridName()

const char * gridName ( ) const
inline

◆ indexBBox()

const CoordBBox & indexBBox ( ) const
inline

return AABB of active values in index space

◆ init()

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

◆ isEmpty()

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

◆ isRootConnected()

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

◆ isValid()

bool isValid ( ) const
inline

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

◆ memUsage()

uint64_t memUsage ( )
inlinestatic

Return memory usage in bytes for this class only.

◆ nodePtr() [1/2]

template<uint32_t LEVEL>
uint8_t * nodePtr ( )
inline

Return a non-const uint8_t 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

◆ nodePtr() [2/2]

template<uint32_t LEVEL>
const uint8_t * nodePtr ( ) const
inline

Return a non-const uint8_t 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

◆ operator=()

GridData & operator= ( const GridData & other)
inline

Use this method to initiate most member dat.

◆ rootTableSize()

uint32_t rootTableSize ( ) const
inline

return the root table has size

◆ setAverageOn()

void setAverageOn ( bool on = true)
inline

◆ setBBoxOn()

void setBBoxOn ( bool on = true)
inline

◆ setGridName()

bool setGridName ( const char * src)
inline

◆ setLongGridNameOn()

void setLongGridNameOn ( bool on = true)
inline

◆ setMinMaxOn()

void setMinMaxOn ( bool on = true)
inline

◆ setStdDeviationOn()

void setStdDeviationOn ( bool on = true)
inline

◆ treePtr() [1/2]

uint8_t * treePtr ( )
inline

◆ treePtr() [2/2]

const uint8_t * treePtr ( ) const
inline

◆ worldBBox()

const BBox< Vec3d > & worldBBox ( ) const
inline

return AABB of active values in world space

Member Data Documentation

◆ MaxNameSize

const int MaxNameSize = 256
static

◆ mBlindMetadataCount

uint32_t mBlindMetadataCount

◆ mBlindMetadataOffset

int64_t mBlindMetadataOffset

◆ mChecksum

uint64_t mChecksum

◆ mData0

uint32_t mData0

◆ mData1

uint64_t mData1

◆ mData2

uint64_t mData2

◆ mFlags

BitFlags<32> mFlags

◆ mGridClass

GridClass mGridClass

◆ mGridCount

uint32_t mGridCount

◆ mGridIndex

uint32_t mGridIndex

◆ mGridName

char mGridName[MaxNameSize]

◆ mGridSize

uint64_t mGridSize

◆ mGridType

GridType mGridType

◆ mMagic

uint64_t mMagic

◆ mMap

Map mMap

◆ mVersion

Version mVersion

◆ mVoxelSize

Vec3d mVoxelSize

◆ mWorldBBox

BBox<Vec3d> mWorldBBox