11 #ifndef OPENVDB_TREE_NODEUNION_HAS_BEEN_INCLUDED 12 #define OPENVDB_TREE_NODEUNION_HAS_BEEN_INCLUDED 14 #include <openvdb/version.h> 17 #include <type_traits> 30 template<
typename ValueT,
typename ChildT,
typename Enable =
void>
43 const ValueT&
getValue()
const {
return mValue; }
45 void setValue(
const ValueT& val) { mValue = val; }
54 "Unexpected instantiation of NodeUnion");
59 template<
typename ValueT,
typename ChildT>
61 typename
std::enable_if<std::is_trivially_copyable<ValueT>::value>::type>
64 union { ChildT* mChild; ValueT
mValue; };
72 const ValueT&
getValue()
const {
return mValue; }
74 void setValue(
const ValueT& val) { mValue = val; }
85 #endif // OPENVDB_TREE_NODEUNION_HAS_BEEN_INCLUDED ChildT * child
Definition: GridBuilder.h:1289
ChildT * getChild() const
Definition: NodeUnion.h:40
void setValue(const ValueT &val)
Definition: NodeUnion.h:45
NodeUnion()
Definition: NodeUnion.h:67
void setChild(ChildT *child)
Definition: NodeUnion.h:70
void setValue(const ValueT &val)
Definition: NodeUnion.h:74
ValueT mValue
Definition: NodeUnion.h:64
ValueT & getValue()
Definition: NodeUnion.h:73
ChildT * getChild() const
Definition: NodeUnion.h:69
ValueT & getValue()
Definition: NodeUnion.h:44
Definition: Exceptions.h:13
ValueT value
Definition: GridBuilder.h:1290
void setChild(ChildT *child)
Definition: NodeUnion.h:41
const ValueT & getValue() const
Definition: NodeUnion.h:43
Default implementation of a NodeUnion that stores the child pointer and the value separately (i...
Definition: NodeUnion.h:31
NodeUnion()
Definition: NodeUnion.h:38
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:121
const ValueT & getValue() const
Definition: NodeUnion.h:72
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:212