OpenVDB  11.0.0
Public Types | Public Member Functions | Static Public Attributes | List of all members
ChannelAccessor< ChannelT, IndexT > Class Template Reference

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

#include <nanovdb/NanoVDB.h>

Inherits ReadAccessor< BuildT, 0, 1, 2 >.

Public Types

using ValueType = ChannelT
 
using TreeType = NanoTree< IndexT >
 
using AccessorType = ChannelAccessor< ChannelT, IndexT >
 
using BuildType = BuildT
 
using CoordType = CoordT
 

Public Member Functions

 ChannelAccessor (const NanoGrid< IndexT > &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. More...
 
 ChannelAccessor (const NanoGrid< IndexT > &grid, ChannelT *channelPtr)
 Ctor from an IndexGrid and an external channel. More...
 
 operator bool () const
 return true if this access was initialized correctly More...
 
const NanoGrid< IndexT > & grid () const
 Return a const reference to the IndexGrid. More...
 
const TreeTypetree () const
 Return a const reference to the tree of the IndexGrid. More...
 
const Vec3dvoxelSize () const
 Return a vector of the axial voxel sizes. More...
 
const uint64_t & valueCount () const
 Return total number of values indexed by the IndexGrid. More...
 
ChannelT * setChannel (ChannelT *channelPtr)
 Change to an external channel. More...
 
ChannelT * setChannel (uint32_t channelID)
 Change to an internal channel, assuming it exists as as blind data in the IndexGrid. More...
 
uint64_t getIndex (const Coord &ijk) const
 Return the linear offset into a channel that maps to the specified coordinate. More...
 
uint64_t idx (int i, int j, int k) const
 
ChannelT & getValue (const Coord &ijk) const
 Return the value from a cached channel that maps to the specified coordinate. More...
 
ChannelT & operator() (const Coord &ijk) const
 
ChannelT & operator() (int i, int j, int k) const
 
bool probeValue (const Coord &ijk, typename remove_const< ChannelT >::type &v) const
 return the state and updates the value of the specified voxel More...
 
template<typename T >
T & getValue (const Coord &ijk, T *channelPtr) const
 Return the value from a specified channel that maps to the specified coordinate. More...
 
const RootTroot () const
 
template<typename NodeT >
const NodeT * getNode () const
 Return a const point to the cached node of the specified type. More...
 
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. More...
 
template<typename NodeT >
bool isCached (const CoordType &ijk) const
 
ValueType getValue (const CoordType &ijk) const
 
ValueType getValue (int i, int j, int k) const
 
ValueType operator() (const CoordType &ijk) const
 
auto 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 OpT , typename... ArgsT>
auto get (const CoordType &ijk, ArgsT &&...args) const
 
template<typename OpT , typename... ArgsT>
auto set (const CoordType &ijk, ArgsT &&...args) 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, typename IndexT = ValueIndex>
class nanovdb::ChannelAccessor< ChannelT, IndexT >

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

using AccessorType = ChannelAccessor<ChannelT, IndexT>
using BuildType = BuildT
inherited
using CoordType = CoordT
inherited
using TreeType = NanoTree<IndexT>
using ValueType = ChannelT

Constructor & Destructor Documentation

ChannelAccessor ( const NanoGrid< IndexT > &  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 ( const NanoGrid< IndexT > &  grid,
ChannelT *  channelPtr 
)
inline

Ctor from an IndexGrid and an external channel.

Member Function Documentation

void clear ( )
inlineinherited

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

auto get ( const CoordType ijk,
ArgsT &&...  args 
) const
inlineinherited
uint32_t getDim ( const CoordType ijk,
const RayT &  ray 
) const
inlineinherited
uint64_t getIndex ( const Coord ijk) const
inline

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

const NodeT* getNode ( ) const
inlineinherited

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

Warning
The return value could be NULL.
const NodeTrait<TreeT, LEVEL>::type* getNode ( ) const
inlineinherited
auto getNodeInfo ( const CoordType ijk) const
inlineinherited
ValueType getValue ( const CoordType ijk) const
inlineinherited
ValueType getValue ( int  i,
int  j,
int  k 
) const
inlineinherited
ChannelT& getValue ( const Coord ijk) const
inline

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

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
const NanoGrid<IndexT>& grid ( ) const
inline

Return a const reference to the IndexGrid.

uint64_t idx ( int  i,
int  j,
int  k 
) const
inline
bool isActive ( const CoordType ijk) const
inlineinherited
bool isCached ( const CoordType ijk) const
inlineinherited
operator bool ( ) const
inline

return true if this access was initialized correctly

ValueType operator() ( const CoordType ijk) const
inlineinherited
ChannelT& operator() ( const Coord ijk) const
inline
ChannelT& operator() ( int  i,
int  j,
int  k 
) const
inline
const LeafT* probeLeaf ( const CoordType ijk) const
inlineinherited
bool probeValue ( const CoordType ijk,
ValueType v 
) const
inlineinherited
bool probeValue ( const Coord ijk,
typename remove_const< ChannelT >::type &  v 
) const
inline

return the state and updates the value of the specified voxel

const RootT& root ( ) const
inlineinherited
auto set ( const CoordType ijk,
ArgsT &&...  args 
) const
inlineinherited
ChannelT* setChannel ( ChannelT *  channelPtr)
inline

Change to an external channel.

Returns
Pointer to channel data
ChannelT* setChannel ( uint32_t  channelID)
inline

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

Returns
Pointer to channel data, which could be NULL if channelID is out of range or if ChannelT does not match the value type of the blind data
const TreeType& tree ( ) const
inline

Return a const reference to the tree of the IndexGrid.

const uint64_t& valueCount ( ) const
inline

Return total number of values indexed by the IndexGrid.

const Vec3d& voxelSize ( ) const
inline

Return a vector of the axial voxel sizes.

Member Data Documentation

const int CacheLevels = 3
staticinherited