OpenVDB 11.0.0

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 (int i, int j, int k) 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 | ( |  | ) |
| inline inherited

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
| inline inherited

## ◆ getDim()

template<typename BuildT>
template<typename RayT>

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

## ◆ 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
| inline inherited

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
| inline inherited

## ◆ getNodeInfo()

template<typename BuildT>

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

## ◆ getValue() [1/3]

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/3]

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/3]

template<typename BuildT>

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

## ◆ 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
| inline inherited

## ◆ isCached()

template<typename BuildT>
template<typename NodeT>

bool isCached | ( | const CoordType & | ijk | ) | const
| inline inherited

## ◆ operator bool()

template<typename ChannelT, typename IndexT = ValueIndex>

operator bool | ( |  | ) | const
| inline

return true if this access was initialized correctly

## ◆ operator()() [1/2]

template<typename ChannelT, typename IndexT = ValueIndex>

ChannelT & operator() | ( | const Coord & | ijk | ) | const
| inline

## ◆ operator()() [2/2]

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
| inline inherited

## ◆ 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
| inline inherited

## ◆ root()

template<typename BuildT>

const RootT & root | ( |  | ) | const
| inline inherited

## ◆ set()

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

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

## ◆ 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
| static inherited