OpenVDB 10.0.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
ChannelAccessor< ChannelT > Class Template Reference

Class to access values in channels at a specific voxel location. More...

#include <nanovdb/NanoVDB.h>

Inheritance diagram for ChannelAccessor< ChannelT >:
ReadAccessor< BuildT, 0, 1, 2 >

Public Types

using ValueType = ChannelT
 
using TreeType = IndexTree
 
using AccessorType = ChannelAccessor< ChannelT >
 
using CoordType = CoordT
 
using NodeInfo = typename ReadAccessor< ValueT, -1, -1, -1 >::NodeInfo
 

Public Member Functions

 ChannelAccessor (const IndexGrid &grid, uint32_t channelID=0u)
 Ctor from an IndexGrid and an integer ID of an internal channel that is assumed to exist as blind data in the IndexGrid.
 
 ChannelAccessor (const IndexGrid &grid, ChannelT *channelPtr)
 Ctor from an IndexGrid and an external channel.
 
const IndexGridgrid () const
 Return a const reference to the IndexGrid.
 
const IndexTreetree () const
 Return a const reference to the tree of the IndexGrid.
 
const Vec3RvoxelSize () const
 Return a vector of the axial voxel sizes.
 
const uint64_tvalueCount () const
 Return total number of values indexed by the IndexGrid.
 
void setChannel (ChannelT *channelPtr)
 Change to an external channel.
 
void setChannel (uint32_t channelID)
 Change to an internal channel, assuming it exists as as blind data in the IndexGrid.
 
uint64_t getIndex (const Coord &ijk) const
 Return the linear offset into a channel that maps to the specified coordinate.
 
uint64_t idx (int i, int j, int k) const
 
ChannelTgetValue (const Coord &ijk) const
 Return the value from a cached channel that maps to the specified coordinate.
 
ChannelToperator() (const Coord &ijk) const
 
ChannelToperator() (int i, int j, int k) const
 
bool probeValue (const CoordType &ijk, typename remove_const< ChannelT >::type &v) const
 return the state and updates the value of the specified voxel
 
template<typename T >
TgetValue (const Coord &ijk, T *channelPtr) const
 Return the value from a specified channel that maps to the specified coordinate.
 
const RootTroot () const
 
template<typename NodeT >
const NodeT * getNode () const
 Return a const point to the cached node of the specified type.
 
template<int LEVEL>
const NodeTrait< TreeT, LEVEL >::type * getNode () const
 
void clear ()
 Reset this access to its initial state, i.e. with an empty cache.
 
template<typename NodeT >
bool isCached (const CoordType &ijk) const
 
ValueType getValue (const CoordType &ijk) const
 
ValueType operator() (const CoordType &ijk) const
 
NodeInfo getNodeInfo (const CoordType &ijk) const
 
bool isActive (const CoordType &ijk) const
 
bool probeValue (const CoordType &ijk, ValueType &v) const
 
const LeafTprobeLeaf (const CoordType &ijk) const
 
template<typename RayT >
uint32_t getDim (const CoordType &ijk, const RayT &ray) const
 

Static Public Attributes

static const int CacheLevels = 3
 

Detailed Description

template<typename ChannelT>
class nanovdb::ChannelAccessor< ChannelT >

Class to access values in channels at a specific voxel location.

Note
The ChannelT template parameter can be either const and non-const.

Member Typedef Documentation

◆ AccessorType

◆ CoordType

template<typename BuildT >
using CoordType = CoordT
inherited

◆ NodeInfo

template<typename BuildT >
using NodeInfo = typename ReadAccessor<ValueT, -1, -1, -1>::NodeInfo
inherited

◆ TreeType

◆ ValueType

Constructor & Destructor Documentation

◆ ChannelAccessor() [1/2]

template<typename ChannelT >
ChannelAccessor ( const IndexGrid grid,
uint32_t  channelID = 0u 
)
inline

Ctor from an IndexGrid and an integer ID of an internal channel that is assumed to exist as blind data in the IndexGrid.

◆ ChannelAccessor() [2/2]

template<typename ChannelT >
ChannelAccessor ( const IndexGrid grid,
ChannelT channelPtr 
)
inline

Ctor from an IndexGrid and an external channel.

Member Function Documentation

◆ clear()

template<typename BuildT >
void clear ( )
inlineinherited

Reset this access to its initial state, i.e. with an empty cache.

◆ getDim()

template<typename BuildT >
template<typename RayT >
uint32_t getDim ( const CoordType ijk,
const RayT &  ray 
) const
inlineinherited

◆ getIndex()

template<typename ChannelT >
uint64_t getIndex ( const Coord ijk) const
inline

Return the linear offset into a channel that maps to the specified coordinate.

◆ getNode() [1/2]

template<typename BuildT >
template<typename NodeT >
const NodeT * getNode ( ) const
inlineinherited

Return a const point to the cached node of the specified type.

Warning
The return value could be NULL.

◆ getNode() [2/2]

template<typename BuildT >
template<int LEVEL>
const NodeTrait< TreeT, LEVEL >::type * getNode ( ) const
inlineinherited

◆ getNodeInfo()

template<typename BuildT >
NodeInfo getNodeInfo ( const CoordType ijk) const
inlineinherited

◆ getValue() [1/3]

template<typename ChannelT >
ChannelT & getValue ( const Coord ijk) const
inline

Return the value from a cached channel that maps to the specified coordinate.

◆ getValue() [2/3]

template<typename ChannelT >
template<typename T >
T & getValue ( const Coord ijk,
T channelPtr 
) const
inline

Return the value from a specified channel that maps to the specified coordinate.

Note
The template parameter can be either const or non-const

◆ getValue() [3/3]

template<typename BuildT >
ValueType getValue ( const CoordType ijk) const
inlineinherited

◆ grid()

template<typename ChannelT >
const IndexGrid & grid ( ) const
inline

Return a const reference to the IndexGrid.

◆ idx()

template<typename ChannelT >
uint64_t idx ( int  i,
int  j,
int  k 
) const
inline

◆ isActive()

template<typename BuildT >
bool isActive ( const CoordType ijk) const
inlineinherited

◆ isCached()

template<typename BuildT >
template<typename NodeT >
bool isCached ( const CoordType ijk) const
inlineinherited

◆ operator()() [1/3]

template<typename ChannelT >
ChannelT & operator() ( const Coord ijk) const
inline

◆ operator()() [2/3]

template<typename BuildT >
ValueType operator() ( const CoordType ijk) const
inlineinherited

◆ operator()() [3/3]

template<typename ChannelT >
ChannelT & operator() ( int  i,
int  j,
int  k 
) const
inline

◆ probeLeaf()

template<typename BuildT >
const LeafT * probeLeaf ( const CoordType ijk) const
inlineinherited

◆ probeValue() [1/2]

template<typename ChannelT >
bool probeValue ( const CoordType ijk,
typename remove_const< ChannelT >::type &  v 
) const
inline

return the state and updates the value of the specified voxel

◆ probeValue() [2/2]

template<typename BuildT >
bool probeValue ( const CoordType ijk,
ValueType v 
) const
inlineinherited

◆ root()

template<typename BuildT >
const RootT & root ( ) const
inlineinherited

◆ setChannel() [1/2]

template<typename ChannelT >
void setChannel ( ChannelT channelPtr)
inline

Change to an external channel.

◆ setChannel() [2/2]

template<typename ChannelT >
void setChannel ( uint32_t  channelID)
inline

Change to an internal channel, assuming it exists as as blind data in the IndexGrid.

◆ tree()

template<typename ChannelT >
const IndexTree & tree ( ) const
inline

Return a const reference to the tree of the IndexGrid.

◆ valueCount()

template<typename ChannelT >
const uint64_t & valueCount ( ) const
inline

Return total number of values indexed by the IndexGrid.

◆ voxelSize()

template<typename ChannelT >
const Vec3R & voxelSize ( ) const
inline

Return a vector of the axial voxel sizes.

Member Data Documentation

◆ CacheLevels

template<typename BuildT >
const int CacheLevels = 3
staticinherited