Loading...
Searching...
No Matches
ChannelAccessor< ChannelT, IndexT > Class Template Reference

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

`#include <nanovdb/NanoVDB.h>`

Inheritance diagram for ChannelAccessor< ChannelT, IndexT >:

## 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.
| ChannelAccessor (const NanoGrid< IndexT > &grid, ChannelT *channelPtr)
| Ctor from an IndexGrid and an external channel.
| operator bool () const
| return true if this access was initialized correctly
const NanoGrid< IndexT > & | grid () const
| Return a const reference to the IndexGrid.
const TreeType & | tree () const
| Return a const reference to the tree of the IndexGrid.
const Vec3d & | voxelSize () const
| Return a vector of the axial voxel sizes.
const uint64_t & | valueCount () const
| Return total number of values indexed by the IndexGrid.
ChannelT * | setChannel (ChannelT *channelPtr)
| Change to an external channel.
ChannelT * | 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
ChannelT & | getValue (const Coord &ijk) const
| Return the value from a cached channel that maps to the specified coordinate.
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
template<typename T >
T & | getValue (const Coord &ijk, T *channelPtr) const
| Return the value from a specified channel that maps to the specified coordinate.
const RootT & | root () 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 | 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 LeafT * | probeLeaf (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

## AccessorType

template<typename ChannelT , typename IndexT = ValueIndex>

using AccessorType = ChannelAccessor<ChannelT, IndexT>

## BuildType

template<typename BuildT >

using BuildType = BuildT

inherited

## CoordType

template<typename BuildT >

using CoordType = CoordT

inherited

## TreeType

template<typename ChannelT , typename IndexT = ValueIndex>

using TreeType = NanoTree<IndexT>

## ValueType

template<typename ChannelT , typename IndexT = ValueIndex>

using ValueType = ChannelT

## Constructor & Destructor Documentation

## ChannelAccessor() [1/2]

template<typename ChannelT , typename IndexT = ValueIndex>

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() [2/2]

template<typename ChannelT , typename IndexT = ValueIndex>

ChannelAccessor | ( | const NanoGrid< IndexT > & | 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.

## get()

template<typename BuildT >
template<typename OpT , typename... ArgsT>

auto get | ( | const CoordType & | ijk,
|  | ArgsT &&... | args
| ) |  | const

inlineinherited

## getDim()

template<typename BuildT >
template<typename RayT >

uint32_t getDim | ( | const CoordType & | ijk,
|  | const RayT & | ray
| ) |  | const

inlineinherited

## getIndex()

template<typename ChannelT , typename IndexT = ValueIndex>

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 >

auto getNodeInfo | ( | const CoordType & | ijk | ) | const

inlineinherited

## getValue() [1/4]

template<typename ChannelT , typename IndexT = ValueIndex>

ChannelT & getValue | ( | const Coord & | ijk | ) | const

inline

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

## getValue() [2/4]

template<typename ChannelT , typename IndexT = ValueIndex>
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/4]

template<typename BuildT >

ValueType getValue | ( | const CoordType & | ijk | ) | const

inlineinherited

## getValue() [4/4]

template<typename BuildT >

ValueType getValue | ( | int | i,
|  | int | j,
|  | int | k
| ) |  | const

inlineinherited

## grid()

template<typename ChannelT , typename IndexT = ValueIndex>

const NanoGrid< IndexT > & grid | ( |  | ) | const

inline

Return a const reference to the IndexGrid.

## idx()

template<typename ChannelT , typename IndexT = ValueIndex>

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 bool()

template<typename ChannelT , typename IndexT = ValueIndex>

operator bool | ( |  | ) | const

inline

return true if this access was initialized correctly

## operator()() [1/3]

template<typename ChannelT , typename IndexT = ValueIndex>

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 , typename IndexT = ValueIndex>

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 , typename IndexT = ValueIndex>

bool probeValue | ( | const Coord & | 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

## set()

template<typename BuildT >
template<typename OpT , typename... ArgsT>

auto set | ( | const CoordType & | ijk,
|  | ArgsT &&... | args
| ) |  | const

inlineinherited

## setChannel() [1/2]

template<typename ChannelT , typename IndexT = ValueIndex>

ChannelT * setChannel | ( | ChannelT * | channelPtr | ) |

inline

Change to an external channel.

Returns
  Pointer to channel data

## setChannel() [2/2]

template<typename ChannelT , typename IndexT = ValueIndex>

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

## tree()

template<typename ChannelT , typename IndexT = ValueIndex>

const TreeType & tree | ( |  | ) | const

inline

Return a const reference to the tree of the IndexGrid.

## valueCount()

template<typename ChannelT , typename IndexT = ValueIndex>

const uint64_t & valueCount | ( |  | ) | const

inline

Return total number of values indexed by the IndexGrid.

## voxelSize()

template<typename ChannelT , typename IndexT = ValueIndex>

const Vec3d & voxelSize | ( |  | ) | const

inline

Return a vector of the axial voxel sizes.

## Member Data Documentation

## CacheLevels

template<typename BuildT >

const int CacheLevels = 3

staticinherited