15#ifndef OPENVDB_TOOLS_NODE_VISITOR_HAS_BEEN_INCLUDED
16#define OPENVDB_TOOLS_NODE_VISITOR_HAS_BEEN_INCLUDED
18#include <openvdb/version.h>
178template <
typename TreeT,
typename OpT>
191template <
typename NodeT, Index LEVEL = NodeT::LEVEL>
192struct DepthFirstNodeVisitor;
198template <
typename NodeT, Index LEVEL>
204 template <
typename OpT>
205 static size_t visit(NodeT& node, OpT& op,
size_t idx = 0,
bool topDown =
true)
208 if (topDown) op(node, idx + offset++);
209 for (
auto iter = node.beginChildOn(); iter; ++iter) {
211 *iter, op, idx + offset, topDown);
213 if (!topDown) op(node, idx + offset++);
220template <
typename NodeT>
223 template <
typename OpT>
224 static size_t visit(NodeT& node, OpT& op,
size_t idx = 0,
bool =
true)
232template <
typename TreeT,
typename OpT>
235 using NonConstRootNodeType =
typename TreeT::RootNodeType;
Definition PointDataGrid.h:170
Definition Exceptions.h:13
typename std::remove_const< ToType >::type Type
Definition Types.h:495
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121
#define OPENVDB_USE_VERSION_NAMESPACE
Definition version.h.in:284