OpenVDB  11.0.0
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

 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. More...
 
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. More...
 
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. More...
 
OPENVDB_HOUDINI_API openvdb::CoordBBox makeCoordBBox (const UT_BoundingBox &, const openvdb::math::Transform &)
 Construct an index-space CoordBBox from a UT_BoundingBox. More...
 
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. More...
 
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. More...
 
OPENVDB_HOUDINI_API void startLogForwarding (OP_OpTypeId)
 Start forwarding OpenVDB log messages to the Houdini error manager for all operators of the given type. More...
 
OPENVDB_HOUDINI_API void stopLogForwarding (OP_OpTypeId)
 Stop forwarding OpenVDB log messages to the Houdini error manager for all operators of the given type. More...
 
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. More...
 

Detailed Description

Utility classes and functions for OpenVDB plugins.

Author
FX R&D Simulation team