OpenVDB  12.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

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

__hostdev__ 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.

__hostdev__ ChannelAccessor ( const NanoGrid< IndexT > &  grid,
ChannelT *  channelPtr 
)
inline

Ctor from an IndexGrid and an external channel.

Member Function Documentation

__hostdev__ void clear ( )
inlineinherited

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

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

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

__hostdev__ const NodeT* getNode ( ) const
inlineinherited

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

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

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

__hostdev__ T& getValue ( const math::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
__hostdev__ const NanoGrid<IndexT>& grid ( ) const
inline

Return a const reference to the IndexGrid.

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

return true if this access was initialized correctly

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

return the state and updates the value of the specified voxel

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

Change to an external channel.

Returns
Pointer to channel data
__hostdev__ 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
__hostdev__ const TreeType& tree ( ) const
inline

Return a const reference to the tree of the IndexGrid.

__hostdev__ const uint64_t& valueCount ( ) const
inline

Return total number of values indexed by the IndexGrid.

__hostdev__ const Vec3d& voxelSize ( ) const
inline

Return a vector of the axial voxel sizes.

Member Data Documentation

const int CacheLevels = 3
staticinherited