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>
Inherited by ValueAccessorImpl< const PointIndexTree >, ValueAccessorImpl< TreeT >, ValueAccessorImpl< const TreeType, IsSafe >, ValueAccessorImpl< const TreeT, false >, ValueAccessorImpl< const TreeT >, ValueAccessorImpl< IntTreeT >, and ValueAccessorImpl< TreeType >.
|
const TreeTypeT::ValueType * | buffer () |
|
const TreeTypeT::ValueType * | buffer () const |
|
void | setBuffer (const typename TreeTypeT::ValueType *b) const |
|
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]].
◆ buffer() [1/2]
const TreeTypeT::ValueType* buffer |
( |
| ) |
|
|
inline |
◆ buffer() [2/2]
const TreeTypeT::ValueType* buffer |
( |
| ) |
const |
|
inline |
◆ setBuffer()
void setBuffer |
( |
const typename TreeTypeT::ValueType * |
b | ) |
const |
|
inline |
◆ BypassLeafAPI
constexpr bool BypassLeafAPI |
|
staticconstexpr |
Initial value:=
std::is_same<NodeT, typename TreeTypeT::LeafNodeType>::value