Blender V4.3
openvdb_fwd.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Foundation
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7/* NOTE: version header included here to enable correct forward declaration of some types. No other
8 * OpenVDB headers should be included here, especially openvdb.h, to avoid affecting other
9 * compilation units. */
10#include <openvdb/Types.h>
11#include <openvdb/version.h>
12
13/* -------------------------------------------------------------------- */
17/* Forward declaration for basic OpenVDB types. */
18namespace openvdb {
19OPENVDB_USE_VERSION_NAMESPACE
20namespace OPENVDB_VERSION_NAME {
21
22class GridBase;
23class MetaMap;
24template<typename TreeType> class Grid;
25
26namespace math {
27class Transform;
28}
29
30namespace tree {
31class TreeBase;
32template<typename T, Index Log2Dim> class LeafNode;
33template<typename ChildNodeType, Index Log2Dim> class InternalNode;
34template<typename ChildNodeType> class RootNode;
35template<typename RootNodeType> class Tree;
36
37/* Forward-declared version of Tree4, can't use the actual Tree4 alias because it can't be
38 * forward-declared. */
39template<typename T, Index N1 = 5, Index N2 = 4, Index N3 = 3> struct Tree4Fwd {
40 using Type = openvdb::tree::Tree<openvdb::tree::RootNode<
41 openvdb::tree::InternalNode<openvdb::tree::InternalNode<openvdb::tree::LeafNode<T, N3>, N2>,
42 N1>>>;
43};
44} // namespace tree
45
46namespace tools {
47template<typename T, Index Log2Dim> struct PointIndexLeafNode;
51} // namespace tools
52
53namespace points {
54template<typename T, Index Log2Dim> class PointDataLeafNode;
58struct NullCodec;
59template<typename ValueType, typename Codec> class TypedAttributeArray;
60} // namespace points
61
84
107
108} // namespace OPENVDB_VERSION_NAME
109} // namespace openvdb
110
KDTree_3d * tree
Grid< Vec2STree > Vec2SGrid
tree::Tree4Fwd< int32_t, 5, 4, 3 >::Type Int32Tree
Grid< Vec3DTree > Vec3DGrid
Grid< Vec3STree > Vec3SGrid
tree::Tree4Fwd< int64_t, 5, 4, 3 >::Type Int64Tree
tree::Tree4Fwd< float, 5, 4, 3 >::Type FloatTree
tree::Tree4Fwd< Vec3d, 5, 4, 3 >::Type Vec3DTree
tree::Tree4Fwd< Vec2d, 5, 4, 3 >::Type Vec2DTree
tree::Tree4Fwd< Vec4f, 5, 4, 3 >::Type Vec4STree
tree::Tree4Fwd< ValueMask, 5, 4, 3 >::Type MaskTree
tree::Tree4Fwd< int8_t, 5, 4, 3 >::Type Int8Tree
tree::Tree4Fwd< uint32_t, 5, 4, 3 >::Type UInt32Tree
tree::Tree4Fwd< Vec3f, 5, 4, 3 >::Type Vec3STree
tree::Tree4Fwd< double, 5, 4, 3 >::Type DoubleTree
tree::Tree4Fwd< Vec2i, 5, 4, 3 >::Type Vec2ITree
tree::Tree4Fwd< Vec3i, 5, 4, 3 >::Type Vec3ITree
tree::Tree4Fwd< Vec2s, 5, 4, 3 >::Type Vec2STree
Grid< FloatTree > FloatGrid
tree::Tree4Fwd< bool, 5, 4, 3 >::Type BoolTree
Common tree types.
Grid< Vec4STree > Vec4SGrid
openvdb::tree::Tree< openvdb::tree::RootNode< openvdb::tree::InternalNode< openvdb::tree::InternalNode< openvdb::tree::LeafNode< T, N3 >, N2 >, N1 > > > Type