/* SPDX-FileCopyrightText: 2023 Blender Foundation * * SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once /* NOTE: version header included here to enable correct forward declaration of some types. No other * OpenVDB headers should be included here, especially openvdb.h, to avoid affecting other * compilation units. */ #include #include /* -------------------------------------------------------------------- */ /** \name OpenVDB Forward Declaration * \{ */ /* Forward declaration for basic OpenVDB types. */ namespace openvdb { OPENVDB_USE_VERSION_NAMESPACE namespace OPENVDB_VERSION_NAME { class GridBase; class MetaMap; template class Grid; namespace math { class Transform; } namespace tree { class TreeBase; template class LeafNode; template class InternalNode; template class RootNode; template class Tree; /* Forward-declared version of Tree4, can't use the actual Tree4 alias because it can't be * forward-declared. */ template struct Tree4Fwd { using Type = openvdb::tree::Tree, N2>, N1>>>; }; } // namespace tree namespace tools { template struct PointIndexLeafNode; using PointIndexTree = tree::Tree, 4>, 5>>>; using PointIndexGrid = Grid; } // namespace tools namespace points { template class PointDataLeafNode; using PointDataTree = tree::Tree, 4>, 5>>>; using PointDataGrid = Grid; struct NullCodec; template class TypedAttributeArray; } // namespace points /// Common tree types using BoolTree = tree::Tree4Fwd::Type; using DoubleTree = tree::Tree4Fwd::Type; using FloatTree = tree::Tree4Fwd::Type; using Int8Tree = tree::Tree4Fwd::Type; using Int32Tree = tree::Tree4Fwd::Type; using Int64Tree = tree::Tree4Fwd::Type; using MaskTree = tree::Tree4Fwd::Type; using UInt32Tree = tree::Tree4Fwd::Type; using Vec2DTree = tree::Tree4Fwd::Type; using Vec2ITree = tree::Tree4Fwd::Type; using Vec2STree = tree::Tree4Fwd::Type; using Vec3DTree = tree::Tree4Fwd::Type; using Vec3ITree = tree::Tree4Fwd::Type; using Vec3STree = tree::Tree4Fwd::Type; using Vec4STree = tree::Tree4Fwd::Type; using ScalarTree = FloatTree; using TopologyTree = MaskTree; using Vec3dTree = Vec3DTree; using Vec3fTree = Vec3STree; using Vec4fTree = Vec4STree; using VectorTree = Vec3fTree; /// Common grid types using BoolGrid = Grid; using DoubleGrid = Grid; using FloatGrid = Grid; using Int8Grid = Grid; using Int32Grid = Grid; using Int64Grid = Grid; using UInt32Grid = Grid; using MaskGrid = Grid; using Vec3DGrid = Grid; using Vec2IGrid = Grid; using Vec3IGrid = Grid; using Vec2SGrid = Grid; using Vec3SGrid = Grid; using Vec4SGrid = Grid; using ScalarGrid = FloatGrid; using TopologyGrid = MaskGrid; using Vec3dGrid = Vec3DGrid; using Vec2fGrid = Vec2SGrid; using Vec3fGrid = Vec3SGrid; using Vec4fGrid = Vec4SGrid; using VectorGrid = Vec3fGrid; } // namespace OPENVDB_VERSION_NAME } // namespace openvdb /** \} */