OpenVDB: ValueAccessor0< _TreeType, IsSafe > Class Template Reference

OpenVDB 8.0.0

Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
ValueAccessor0< _TreeType, IsSafe > Class Template Reference

ValueAccessor with no mutex and no node caching. More...

`#include <ValueAccessor.h>`

## Public Types
using | TreeType = _TreeType
using | ValueType = typename TreeType::ValueType
using | RootNodeT = typename TreeType::RootNodeType
using | LeafNodeT = typename TreeType::LeafNodeType
using | BaseT = ValueAccessorBase< TreeType, IsSafe >

## Public Member Functions
| ValueAccessor0 (TreeType &tree)
| ValueAccessor0 (const ValueAccessor0 &other)
ValueAccessor0 & | operator= (const ValueAccessor0 &other)
| ~ValueAccessor0 () override=default
bool | isCached (const Coord &) const
| Return `true` if nodes along the path to the given voxel have been cached. More...
const ValueType & | getValue (const Coord &xyz) const
| Return the value of the voxel at the given coordinates. More...
bool | isValueOn (const Coord &xyz) const
| Return the active state of the voxel at the given coordinates. More...
bool | probeValue (const Coord &xyz, ValueType &value) const
| Return the active state and, in value, the value of the voxel at the given coordinates. More...
int | getValueDepth (const Coord &xyz) const
bool | isVoxel (const Coord &xyz) const
void | setValue (const Coord &xyz, const ValueType &value)
| Set the value of the voxel at the given coordinates and mark the voxel as active. More...
void | setValueOn (const Coord &xyz, const ValueType &value)
void | setValueOnly (const Coord &xyz, const ValueType &value)
| Set the value of the voxel at the given coordinate but don't change its active state. More...
void | setValueOff (const Coord &xyz, const ValueType &value)
| Set the value of the voxel at the given coordinates and mark the voxel as inactive. More...
template<typename ModifyOp >
void | modifyValue (const Coord &xyz, const ModifyOp &op)
| Apply a functor to the value of the voxel at the given coordinates and mark the voxel as active. More...
template<typename ModifyOp >
void | modifyValueAndActiveState (const Coord &xyz, const ModifyOp &op)
| Apply a functor to the voxel at the given coordinates. More...
void | setActiveState (const Coord &xyz, bool on=true)
| Set the active state of the voxel at the given coordinates but don't change its value. More...
void | setValueOn (const Coord &xyz)
| Mark the voxel at the given coordinates as active but don't change its value. More...
void | setValueOff (const Coord &xyz)
| Mark the voxel at the given coordinates as inactive but don't change its value. More...
template<typename NodeT >
NodeT * | getNode ()
| Return the cached node of type NodeType. [Mainly for internal use]. More...
template<typename NodeT >
void | insertNode (const Coord &, NodeT &)
void | addLeaf (LeafNodeT *leaf)
| Add the specified leaf to this tree, possibly creating a child branch in the process. If the leaf node already exists, replace it. More...
void | addTile (Index level, const Coord &xyz, const ValueType &value, bool state)
| Add a tile at the specified tree level that contains voxel (x, y, z), possibly deleting existing nodes or creating new nodes in the process. More...
template<typename NodeT >
void | eraseNode ()
LeafNodeT * | touchLeaf (const Coord &xyz)
template<typename NodeT >
NodeT * | probeNode (const Coord &xyz)
template<typename NodeT >
const NodeT * | probeConstNode (const Coord &xyz) const
LeafNodeT * | probeLeaf (const Coord &xyz)
const LeafNodeT * | probeConstLeaf (const Coord &xyz) const
const LeafNodeT * | probeLeaf (const Coord &xyz) const
void | clear () override
| Remove all nodes from this cache, then reinsert the root node. More...

## Static Public Member Functions
static Index | numCacheLevels ()
| Return the number of cache levels employed by this accessor. More...

## Friends
template<typename >
class | Tree

## Detailed Description

### template<typename _TreeType, bool IsSafe>
class openvdb::v8_2::tree::ValueAccessor0< _TreeType, IsSafe >

ValueAccessor with no mutex and no node caching.

This specialization is provided mainly for benchmarking. Accessors with caching will almost always be faster.

## Member Typedef Documentation

## ◆ BaseT

using BaseT = ValueAccessorBase<TreeType, IsSafe>

## ◆ LeafNodeT

using LeafNodeT = typename TreeType::LeafNodeType

## ◆ RootNodeT

using RootNodeT = typename TreeType::RootNodeType

## ◆ TreeType

using TreeType = _TreeType

## ◆ ValueType

using ValueType = typename TreeType::ValueType

## Constructor & Destructor Documentation

## ◆ ValueAccessor0() [1/2]

ValueAccessor0 | ( | TreeType & | tree | ) |
| inline

## ◆ ValueAccessor0() [2/2]

ValueAccessor0 | ( | const ValueAccessor0< _TreeType, IsSafe > & | other | ) |
| inline

## ◆ ~ValueAccessor0()

~ValueAccessor0 | ( |  | ) |
| overridedefault

## Member Function Documentation

## ◆ addLeaf()

void addLeaf | ( | LeafNodeT * | leaf | ) |
| inline

Add the specified leaf to this tree, possibly creating a child branch in the process. If the leaf node already exists, replace it.

## ◆ addTile()

void addTile | ( | Index | level,
|  | const Coord & | xyz,
|  | const ValueType & | value,
|  | bool | state
| ) |  |
| inline

Add a tile at the specified tree level that contains voxel (x, y, z), possibly deleting existing nodes or creating new nodes in the process.

## ◆ clear()

void clear | ( |  | ) |
| inlineoverride

Remove all nodes from this cache, then reinsert the root node.

## ◆ eraseNode()

void eraseNode | ( |  | ) |
| inline

If a node of the given type exists in the cache, remove it, so that isCached(xyz) returns `false` for any voxel (x, y, z) contained in that node. [Mainly for internal use]

## ◆ getNode()

NodeT* getNode | ( |  | ) |
| inline

Return the cached node of type NodeType. [Mainly for internal use].

## ◆ getValue()

const ValueType& getValue | ( | const Coord & | xyz | ) | const
| inline

Return the value of the voxel at the given coordinates.

## ◆ getValueDepth()

int getValueDepth | ( | const Coord & | xyz | ) | const
| inline

Return the tree depth (0 = root) at which the value of voxel (x, y, z) resides, or -1 if (x, y, z) isn't explicitly represented in the tree (i.e., if it is implicitly a background voxel).

## ◆ insertNode()

void insertNode | ( | const Coord & | ,
|  | NodeT & |
| ) |  |
| inline

Cache the given node, which should lie along the path from the root node to the node containing voxel (x, y, z). [Mainly for internal use]

## ◆ isCached()

bool isCached | ( | const Coord & |  | ) | const
| inline

Return `true` if nodes along the path to the given voxel have been cached.

## ◆ isValueOn()

bool isValueOn | ( | const Coord & | xyz | ) | const
| inline

Return the active state of the voxel at the given coordinates.

## ◆ isVoxel()

bool isVoxel | ( | const Coord & | xyz | ) | const
| inline

Return `true` if the value of voxel (x, y, z) resides at the leaf level of the tree, i.e., if it is not a tile value.

## ◆ modifyValue()

void modifyValue | ( | const Coord & | xyz,
|  | const ModifyOp & | op
| ) |  |
| inline

Apply a functor to the value of the voxel at the given coordinates and mark the voxel as active.

See Tree::modifyValue() for details.

## ◆ modifyValueAndActiveState()

void modifyValueAndActiveState | ( | const Coord & | xyz,
|  | const ModifyOp & | op
| ) |  |
| inline

Apply a functor to the voxel at the given coordinates.

See Tree::modifyValueAndActiveState() for details.

## ◆ numCacheLevels()

static Index numCacheLevels | ( |  | ) |
| inlinestatic

Return the number of cache levels employed by this accessor.

## ◆ operator=()

ValueAccessor0& operator= | ( | const ValueAccessor0< _TreeType, IsSafe > & | other | ) |
| inline

## ◆ probeConstLeaf()

const LeafNodeT* probeConstLeaf | ( | const Coord & | xyz | ) | const
| inline

## ◆ probeConstNode()

const NodeT* probeConstNode | ( | const Coord & | xyz | ) | const
| inline

## ◆ probeLeaf() [1/2]

LeafNodeT* probeLeaf | ( | const Coord & | xyz | ) |
| inline

## ◆ probeLeaf() [2/2]

const LeafNodeT* probeLeaf | ( | const Coord & | xyz | ) | const
| inline

## ◆ probeNode()

NodeT* probeNode | ( | const Coord & | xyz | ) |
| inline

## ◆ probeValue()

bool probeValue | ( | const Coord & | xyz,
|  | ValueType & | value
| ) |  | const
| inline

Return the active state and, in value, the value of the voxel at the given coordinates.

## ◆ setActiveState()

void setActiveState | ( | const Coord & | xyz,
|  | bool | on = `true`
| ) |  |
| inline

Set the active state of the voxel at the given coordinates but don't change its value.

## ◆ setValue()

void setValue | ( | const Coord & | xyz,
|  | const ValueType & | value
| ) |  |
| inline

Set the value of the voxel at the given coordinates and mark the voxel as active.

## ◆ setValueOff() [1/2]

void setValueOff | ( | const Coord & | xyz | ) |
| inline

Mark the voxel at the given coordinates as inactive but don't change its value.

## ◆ setValueOff() [2/2]

void setValueOff | ( | const Coord & | xyz,
|  | const ValueType & | value
| ) |  |
| inline

Set the value of the voxel at the given coordinates and mark the voxel as inactive.

## ◆ setValueOn() [1/2]

void setValueOn | ( | const Coord & | xyz | ) |
| inline

Mark the voxel at the given coordinates as active but don't change its value.

## ◆ setValueOn() [2/2]

void setValueOn | ( | const Coord & | xyz,
|  | const ValueType & | value
| ) |  |
| inline

## ◆ setValueOnly()

void setValueOnly | ( | const Coord & | xyz,
|  | const ValueType & | value
| ) |  |
| inline

Set the value of the voxel at the given coordinate but don't change its active state.

## ◆ touchLeaf()

LeafNodeT* touchLeaf | ( | const Coord & | xyz | ) |
| inline

## Friends And Related Function Documentation

## ◆ Tree

friend class Tree
| friend

The documentation for this class was generated from the following file:

- ValueAccessor.h