OpenVDB 10.0.1
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
Utils.h File Reference

Utility classes and functions for OpenVDB plugins. More...

#include "GU_PrimVDB.h"
#include <OP/OP_Node.h>
#include <UT/UT_SharedPtr.h>
#include <UT/UT_Interrupt.h>
#include <openvdb/openvdb.h>
#include <openvdb/util/NullInterrupter.h>
#include <functional>
#include <type_traits>

Go to the source code of this file.

Classes

class  VdbPrimCIterator
 Iterator over const VDB primitives on a geometry detail. More...
 
class  VdbPrimIterator
 Iterator over non-const VDB primitives on a geometry detail. More...
 
class  HoudiniInterrupter
 Wrapper class that adapts a Houdini UT_Interrupt object for use with OpenVDB library routines. More...
 
class  Interrupter
 Deprecated wrapper class with the same interface as HoudiniInterrupter, however it does not derive from openvdb::util::NullInterrupter. Intended for backwards-compatibility only. More...
 

Namespaces

namespace  openvdb_houdini
 

Typedefs

using Grid = openvdb::GridBase
 
using GridPtr = openvdb::GridBase::Ptr
 
using GridCPtr = openvdb::GridBase::ConstPtr
 
using GridRef = openvdb::GridBase &
 
using GridCRef = const openvdb::GridBase &
 
using ScalarGridTypes = openvdb::TypeList< openvdb::BoolGrid, openvdb::FloatGrid, openvdb::DoubleGrid, openvdb::Int32Grid, openvdb::Int64Grid >
 
using NumericGridTypes = openvdb::TypeList< openvdb::FloatGrid, openvdb::DoubleGrid, openvdb::Int32Grid, openvdb::Int64Grid >
 
using RealGridTypes = openvdb::TypeList< openvdb::FloatGrid, openvdb::DoubleGrid >
 
using Vec3GridTypes = openvdb::TypeList< openvdb::Vec3SGrid, openvdb::Vec3DGrid, openvdb::Vec3IGrid >
 
using PointGridTypes = openvdb::TypeList< openvdb::points::PointDataGrid >
 
using VolumeGridTypes = ScalarGridTypes::Append< Vec3GridTypes >
 
using AllGridTypes = VolumeGridTypes::Append< PointGridTypes >
 

Functions

OPENVDB_HOUDINI_API GU_PrimVDB * createVdbPrimitive (GU_Detail &gdp, GridPtr grid, const char *name=nullptr)
 Store a VDB grid in a new VDB primitive and add the primitive to a geometry detail.
 
OPENVDB_HOUDINI_API GU_PrimVDB * replaceVdbPrimitive (GU_Detail &gdp, GridPtr grid, GEO_PrimVDB &src, const bool copyAttrs=true, const char *name=nullptr)
 Replace an existing VDB primitive with a new primitive that contains the given grid.
 
OPENVDB_HOUDINI_API bool evalGridBBox (GridCRef grid, UT_Vector3 corners[8], bool expandHalfVoxel=false)
 Return in corners the corners of the given grid's active voxel bounding box.
 
OPENVDB_HOUDINI_API openvdb::CoordBBox makeCoordBBox (const UT_BoundingBox &, const openvdb::math::Transform &)
 Construct an index-space CoordBBox from a UT_BoundingBox.
 
template<typename GridTypeListT , typename OpT >
bool GEOvdbApply (const GEO_PrimVDB &vdb, OpT &op)
 If the given primitive's grid resolves to one of the listed grid types, invoke the functor op on the resolved grid.
 
template<typename GridTypeListT , typename OpT >
bool GEOvdbApply (GEO_PrimVDB &vdb, OpT &op, bool makeUnique=true)
 If the given primitive's grid resolves to one of the listed grid types, invoke the functor op on the resolved grid.
 
OPENVDB_HOUDINI_API void startLogForwarding (OP_OpTypeId)
 Start forwarding OpenVDB log messages to the Houdini error manager for all operators of the given type.
 
OPENVDB_HOUDINI_API void stopLogForwarding (OP_OpTypeId)
 Stop forwarding OpenVDB log messages to the Houdini error manager for all operators of the given type.
 
OPENVDB_HOUDINI_API bool isLogForwarding (OP_OpTypeId)
 Return true if OpenVDB messages logged by operators of the given type are forwarded to the Houdini error manager.
 

Detailed Description

Utility classes and functions for OpenVDB plugins.

Author
FX R&D Simulation team