OpenVDB  11.0.0
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>

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

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

Member Data Documentation

constexpr bool BypassLeafAPI
static
Initial value:
=
std::is_same<NodeT, typename TreeTypeT::LeafNodeType>::value