OpenVDB 10.0.1
Loading...
Searching...
No Matches
CacheItem< TreeCacheT, NodeVecT, false, true > Class Template Reference

#include <openvdb/tree/ValueAccessor.h>

Public Types

using NodeType = typename NodeVecT::Front
using ValueType = typename NodeType::ValueType
using LeafNodeType = typename NodeType::LeafNodeType
using CoordLimits = std::numeric_limits<Int32>

Public Member Functions

 CacheItem (TreeCacheT &parent)
 CacheItem (TreeCacheT &parent, const CacheItem &other)
 Copy another CacheItem's node pointers and hash keys, but not its parent pointer.
CacheItemcopy (TreeCacheT &parent, const CacheItem &other)
bool isCached (const Coord &xyz) const
void insert (const Coord &xyz, const NodeType *node)
 Cache the given node at this level.
template<typename OtherNodeType>
void insert (const Coord &xyz, const OtherNodeType *node)
 Forward the given node to another level of the cache.
void erase (const NodeType *)
 Erase the node at this level.
template<typename OtherNodeType>
void erase (const OtherNodeType *node)
 Erase the node at another level of the cache.
void clear ()
 Erase the nodes at this and lower levels of the cache.
void getNode (const NodeType *&node) const
 Return the cached node (if any) at this level.
void getNode (const NodeType *&node)
void getNode (NodeType *&node)
template<typename OtherNodeType>
void getNode (OtherNodeType *&node)
 Forward the request to another level of the cache.
const ValueTypegetValue (const Coord &xyz)
 Return the value of the voxel at the given coordinates.
void addLeaf (LeafNodeType *leaf)
void addTile (Index level, const Coord &xyz, const ValueType &value, bool state)
LeafNodeTypetouchLeaf (const Coord &xyz)
LeafNodeTypeprobeLeaf (const Coord &xyz)
const LeafNodeTypeprobeConstLeaf (const Coord &xyz)
template<typename NodeT>
NodeT * probeNode (const Coord &xyz)
template<typename NodeT>
const NodeT * probeConstNode (const Coord &xyz)
bool isValueOn (const Coord &xyz)
 Return the active state of the voxel at the given coordinates.
bool probeValue (const Coord &xyz, ValueType &value)
 Return the active state and value of the voxel at the given coordinates.
int getValueDepth (const Coord &xyz)
bool isVoxel (const Coord &xyz)
void setValue (const Coord &xyz, const ValueType &value)
 Set the value of the voxel at the given coordinates and mark the voxel as active.
void setValueOnly (const Coord &xyz, const ValueType &value)
void setValueOn (const Coord &xyz, const ValueType &value)
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.
template<typename ModifyOp>
void modifyValueAndActiveState (const Coord &xyz, const ModifyOp &op)
 Apply a functor to the voxel at the given coordinates.
void setValueOff (const Coord &xyz, const ValueType &value)
 Set the value of the voxel at the given coordinates and mark the voxel as inactive.
void setActiveState (const Coord &xyz, bool on)
 Set the active state of the voxel at the given coordinates.

Member Typedef Documentation

◆ CoordLimits

template<typename TreeCacheT, typename NodeVecT>
using CoordLimits = std::numeric_limits<Int32>

◆ LeafNodeType

template<typename TreeCacheT, typename NodeVecT>
using LeafNodeType = typename NodeType::LeafNodeType

◆ NodeType

template<typename TreeCacheT, typename NodeVecT>
using NodeType = typename NodeVecT::Front

◆ ValueType

template<typename TreeCacheT, typename NodeVecT>
using ValueType = typename NodeType::ValueType

Constructor & Destructor Documentation

◆ CacheItem() [1/2]

template<typename TreeCacheT, typename NodeVecT>
CacheItem ( TreeCacheT & parent)
inline

◆ CacheItem() [2/2]

template<typename TreeCacheT, typename NodeVecT>
CacheItem ( TreeCacheT & parent,
const CacheItem< TreeCacheT, NodeVecT, false, true > & other )
inline

Copy another CacheItem's node pointers and hash keys, but not its parent pointer.

Member Function Documentation

◆ addLeaf()

template<typename TreeCacheT, typename NodeVecT>
void addLeaf ( LeafNodeType * leaf)
inline

◆ addTile()

template<typename TreeCacheT, typename NodeVecT>
void addTile ( Index level,
const Coord & xyz,
const ValueType & value,
bool state )
inline

◆ clear()

template<typename TreeCacheT, typename NodeVecT>
void clear ( )
inline

Erase the nodes at this and lower levels of the cache.

◆ copy()

template<typename TreeCacheT, typename NodeVecT>
CacheItem & copy ( TreeCacheT & parent,
const CacheItem< TreeCacheT, NodeVecT, false, true > & other )
inline

◆ erase() [1/2]

template<typename TreeCacheT, typename NodeVecT>
void erase ( const NodeType * )
inline

Erase the node at this level.

◆ erase() [2/2]

template<typename TreeCacheT, typename NodeVecT>
template<typename OtherNodeType>
void erase ( const OtherNodeType * node)
inline

Erase the node at another level of the cache.

◆ getNode() [1/4]

template<typename TreeCacheT, typename NodeVecT>
void getNode ( const NodeType *& node)
inline

◆ getNode() [2/4]

template<typename TreeCacheT, typename NodeVecT>
void getNode ( const NodeType *& node) const
inline

Return the cached node (if any) at this level.

◆ getNode() [3/4]

template<typename TreeCacheT, typename NodeVecT>
void getNode ( NodeType *& node)
inline

◆ getNode() [4/4]

template<typename TreeCacheT, typename NodeVecT>
template<typename OtherNodeType>
void getNode ( OtherNodeType *& node)
inline

Forward the request to another level of the cache.

◆ getValue()

template<typename TreeCacheT, typename NodeVecT>
const ValueType & getValue ( const Coord & xyz)
inline

Return the value of the voxel at the given coordinates.

◆ getValueDepth()

template<typename TreeCacheT, typename NodeVecT>
int getValueDepth ( const Coord & xyz)
inline

◆ insert() [1/2]

template<typename TreeCacheT, typename NodeVecT>
void insert ( const Coord & xyz,
const NodeType * node )
inline

Cache the given node at this level.

◆ insert() [2/2]

template<typename TreeCacheT, typename NodeVecT>
template<typename OtherNodeType>
void insert ( const Coord & xyz,
const OtherNodeType * node )
inline

Forward the given node to another level of the cache.

◆ isCached()

template<typename TreeCacheT, typename NodeVecT>
bool isCached ( const Coord & xyz) const
inline

◆ isValueOn()

template<typename TreeCacheT, typename NodeVecT>
bool isValueOn ( const Coord & xyz)
inline

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

◆ isVoxel()

template<typename TreeCacheT, typename NodeVecT>
bool isVoxel ( const Coord & xyz)
inline

◆ modifyValue()

template<typename TreeCacheT, typename NodeVecT>
template<typename ModifyOp>
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()

template<typename TreeCacheT, typename NodeVecT>
template<typename ModifyOp>
void modifyValueAndActiveState ( const Coord & xyz,
const ModifyOp & op )
inline

Apply a functor to the voxel at the given coordinates.

See Tree::modifyValueAndActiveState() for details.

◆ probeConstLeaf()

template<typename TreeCacheT, typename NodeVecT>
const LeafNodeType * probeConstLeaf ( const Coord & xyz)
inline

◆ probeConstNode()

template<typename TreeCacheT, typename NodeVecT>
template<typename NodeT>
const NodeT * probeConstNode ( const Coord & xyz)
inline

◆ probeLeaf()

template<typename TreeCacheT, typename NodeVecT>
LeafNodeType * probeLeaf ( const Coord & xyz)
inline

◆ probeNode()

template<typename TreeCacheT, typename NodeVecT>
template<typename NodeT>
NodeT * probeNode ( const Coord & xyz)
inline

◆ probeValue()

template<typename TreeCacheT, typename NodeVecT>
bool probeValue ( const Coord & xyz,
ValueType & value )
inline

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

◆ setActiveState()

template<typename TreeCacheT, typename NodeVecT>
void setActiveState ( const Coord & xyz,
bool on )
inline

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

◆ setValue()

template<typename TreeCacheT, typename NodeVecT>
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()

template<typename TreeCacheT, typename NodeVecT>
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()

template<typename TreeCacheT, typename NodeVecT>
void setValueOn ( const Coord & xyz,
const ValueType & value )
inline

◆ setValueOnly()

template<typename TreeCacheT, typename NodeVecT>
void setValueOnly ( const Coord & xyz,
const ValueType & value )
inline

◆ touchLeaf()

template<typename TreeCacheT, typename NodeVecT>
LeafNodeType * touchLeaf ( const Coord & xyz)
inline