OpenVDB  12.0.0
Public Types | Public Member Functions | Protected Attributes | List of all members
VdbPrimIterator Class Reference

Iterator over non-const VDB primitives on a geometry detail. More...

#include <openvdb_houdini/Utils.h>

Inherits VdbPrimCIterator.

Public Types

using FilterFunc = std::function< bool(const GU_PrimVDB &)>
 

Public Member Functions

 VdbPrimIterator (GEO_Detail *gdp, const GA_PrimitiveGroup *group=nullptr, FilterFunc filter=FilterFunc())
 
 VdbPrimIterator (GEO_Detail *gdp, GA_Range::safedeletions, const GA_PrimitiveGroup *group=nullptr, FilterFunc filter=FilterFunc())
 Allow primitives to be deleted during iteration. More...
 
 VdbPrimIterator (const VdbPrimIterator &)
 
VdbPrimIteratoroperator= (const VdbPrimIterator &)
 
VdbPrimIteratoroperator++ ()
 Advance to the next VDB primitive. More...
 
 operator bool () const
 Return false if there are no more VDB primitives. More...
 
UT_String getPrimitiveName (const UT_String &defaultName="") const
 Return the value of the current VDB primitive's name attribute. More...
 
UT_String getPrimitiveNameOrIndex () const
 Return the value of the current VDB primitive's name attribute or, if the name is empty, the primitive's index (as a UT_String). More...
 
UT_String getPrimitiveIndexAndName (bool keepEmptyName=true) const
 Return a string of the form "N (NAME)", where N is the current VDB primitive's index and NAME is the value of the primitive's name attribute. More...
 
GU_PrimVDB * getPrimitive () const
 Return a pointer to the current VDB primitive (nullptr if at end). More...
 
GU_PrimVDB * operator* () const
 Return a pointer to the current VDB primitive (nullptr if at end). More...
 
GU_PrimVDB * operator-> () const
 Return a pointer to the current VDB primitive (nullptr if at end). More...
 
void advance ()
 Advance to the next VDB primitive. More...
 
GA_Offset getOffset () const
 
GA_Index getIndex () const
 

Protected Attributes

UT_SharedPtr< GA_GBPrimitiveIterator > mIter
 
FilterFunc mFilter
 

Detailed Description

Iterator over non-const VDB primitives on a geometry detail.

At least until GEO_PrimVDB becomes a built-in primitive type (that can be used as the mask for a GA_GBPrimitiveIterator), use this iterator to iterate over all VDB grids belonging to a gdp and, optionally, belonging to a particular group.

Member Typedef Documentation

using FilterFunc = std::function<bool (const GU_PrimVDB&)>
inherited

Constructor & Destructor Documentation

VdbPrimIterator ( GEO_Detail *  gdp,
const GA_PrimitiveGroup *  group = nullptr,
FilterFunc  filter = FilterFunc() 
)
inlineexplicit
Parameters
gdpthe geometry detail over which to iterate
groupa group in the detail over which to iterate (if nullptr, iterate over all VDB primitives)
filteran optional function or functor that takes a const reference to a GU_PrimVDB and returns a boolean specifying whether that primitive should be visited (true) or not (false)
VdbPrimIterator ( GEO_Detail *  gdp,
GA_Range::safedeletions  ,
const GA_PrimitiveGroup *  group = nullptr,
FilterFunc  filter = FilterFunc() 
)
inline

Allow primitives to be deleted during iteration.

Parameters
gdpthe geometry detail over which to iterate
groupa group in the detail over which to iterate (if nullptr, iterate over all VDB primitives)
filteran optional function or functor that takes a const reference to a GU_PrimVDB and returns a boolean specifying whether that primitive should be visited (true) or not (false)

Member Function Documentation

void advance ( )
inherited

Advance to the next VDB primitive.

GA_Index getIndex ( ) const
inlineinherited
GA_Offset getOffset ( ) const
inlineinherited
GU_PrimVDB* getPrimitive ( ) const
inline

Return a pointer to the current VDB primitive (nullptr if at end).

UT_String getPrimitiveIndexAndName ( bool  keepEmptyName = true) const
inherited

Return a string of the form "N (NAME)", where N is the current VDB primitive's index and NAME is the value of the primitive's name attribute.

Parameters
keepEmptyNameif the current primitive has no name attribute or its name is empty, then if this flag is true, return a string "N ()", otherwise return a string "N" omitting the empty name
UT_String getPrimitiveName ( const UT_String &  defaultName = "") const
inherited

Return the value of the current VDB primitive's name attribute.

Parameters
defaultNameif the current primitive has no name attribute or its name is empty, return this name instead
UT_String getPrimitiveNameOrIndex ( ) const
inherited

Return the value of the current VDB primitive's name attribute or, if the name is empty, the primitive's index (as a UT_String).

operator bool ( ) const
inlineinherited

Return false if there are no more VDB primitives.

GU_PrimVDB* operator* ( ) const
inline

Return a pointer to the current VDB primitive (nullptr if at end).

VdbPrimIterator& operator++ ( )
inline

Advance to the next VDB primitive.

GU_PrimVDB* operator-> ( ) const
inline

Return a pointer to the current VDB primitive (nullptr if at end).

VdbPrimIterator& operator= ( const VdbPrimIterator )

Member Data Documentation

FilterFunc mFilter
protectedinherited
UT_SharedPtr<GA_GBPrimitiveIterator> mIter
protectedinherited