A read-only value accessor with three levels of node caching. This allows for inverse tree traversal during lookup, which is on average significantly faster than calling the equivalent method on the tree (i.e. top-down traversal).
More...
|
__hostdev__ | ReadAccessor (const RootT &root) |
| Constructor from a root node. More...
|
|
__hostdev__ | ReadAccessor (const GridT &grid) |
| Constructor from a grid. More...
|
|
__hostdev__ | ReadAccessor (const TreeT &tree) |
| Constructor from a tree. More...
|
|
__hostdev__ void | clear () |
| Reset this access to its initial state, i.e. with an empty cache Noop since this template specialization has no cache. More...
|
|
__hostdev__ const RootT & | root () const |
|
| ReadAccessor (const ReadAccessor &)=default |
| Defaults constructors. More...
|
|
| ~ReadAccessor ()=default |
|
ReadAccessor & | operator= (const ReadAccessor &)=default |
|
__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__ ValueType | operator() (int i, int j, int k) 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 LeafT * | probeLeaf (const CoordType &ijk) const |
|
template<typename RayT > |
__hostdev__ uint32_t | getDim (const CoordType &ijk, const RayT &ray) 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 BuildT>
class nanovdb::ReadAccessor< BuildT,-1,-1,-1 >
A read-only value accessor with three levels of node caching. This allows for inverse tree traversal during lookup, which is on average significantly faster than calling the equivalent method on the tree (i.e. top-down traversal).
- Note
- By virtue of the fact that a value accessor accelerates random access operations by re-using cached access patterns, this access should be reused for multiple access operations. In other words, never create an instance of this accessor for a single access only. In general avoid single access operations with this accessor, and if that is not possible call the corresponding method on the tree instead.
- Warning
- Since this ReadAccessor internally caches raw pointers to the nodes of the tree structure, it is not safe to copy between host and device, or even to share among multiple threads on the same host or device. However, it is light-weight so simple instantiate one per thread (on the host and/or device).
Used to accelerated random access into a VDB tree. Provides on average O(1) random access operations by means of inverse tree traversal, which amortizes the non-const time complexity of the root node.