OpenVDB 11.0.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
ValueAccessorLeafBuffer< TreeTypeT, IntegerSequence, Enable > Struct Template Reference

A small class that contains a cached pointer to a LeafNode data buffer which is derived from by the internal Value Accessor Implementation. This allows for the empty base class optimization to be performed in the case where a LeafNode does not store a contiguous index-able buffer. From C++20 we can instead switch to [[no_unique_address]]. More...

#include <openvdb/tree/ValueAccessor.h>

Inheritance diagram for ValueAccessorLeafBuffer< TreeTypeT, IntegerSequence, Enable >:
ValueAccessorImpl< const TreeType, IsSafe > ValueAccessorImpl< const TreeT, false > ValueAccessorImpl< const TreeT > ValueAccessorImpl< TreeT > ValueAccessorImpl< TreeType > ValueAccessorImpl< IntTreeT > ValueAccessorImpl< const PointIndexTree >

Public Member Functions

const TreeTypeT::ValueType * buffer ()
 
const TreeTypeT::ValueType * buffer () const
 
void setBuffer (const typename TreeTypeT::ValueType *b) const
 

Static Public Attributes

template<typename NodeT >
static constexpr bool BypassLeafAPI
 

Detailed Description

template<typename TreeTypeT, typename IntegerSequence, typename Enable = void>
struct openvdb::v11_0::tree::ValueAccessorLeafBuffer< TreeTypeT, IntegerSequence, Enable >

A small class that contains a cached pointer to a LeafNode data buffer which is derived from by the internal Value Accessor Implementation. This allows for the empty base class optimization to be performed in the case where a LeafNode does not store a contiguous index-able buffer. From C++20 we can instead switch to [[no_unique_address]].

Member Function Documentation

◆ buffer() [1/2]

template<typename TreeTypeT , typename IntegerSequence , typename Enable = void>
const TreeTypeT::ValueType * buffer ( )
inline

◆ buffer() [2/2]

template<typename TreeTypeT , typename IntegerSequence , typename Enable = void>
const TreeTypeT::ValueType * buffer ( ) const
inline

◆ setBuffer()

template<typename TreeTypeT , typename IntegerSequence , typename Enable = void>
void setBuffer ( const typename TreeTypeT::ValueType * b) const
inline

Member Data Documentation

◆ BypassLeafAPI

template<typename TreeTypeT , typename IntegerSequence , typename Enable = void>
template<typename NodeT >
constexpr bool BypassLeafAPI
staticconstexpr
Initial value:
=
std::is_same<NodeT, typename TreeTypeT::LeafNodeType>::value