OpenVDB: VdbPrimCIterator Class Reference

OpenVDB 11.0.0

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
VdbPrimCIterator Class Reference

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

`#include <openvdb_houdini/Utils.h>`

Inheritance diagram for VdbPrimCIterator:

## Public Types
using | FilterFunc = std::function< bool(const GU_PrimVDB &)>

## Public Member Functions
| VdbPrimCIterator (const GEO_Detail *gdp, const GA_PrimitiveGroup *group=nullptr, FilterFunc filter=FilterFunc())
| VdbPrimCIterator (const VdbPrimCIterator &)
VdbPrimCIterator & | operator= (const VdbPrimCIterator &)
void | advance ()
| Advance to the next VDB primitive.
VdbPrimCIterator & | operator++ ()
const GU_PrimVDB * | getPrimitive () const
| Return a pointer to the current VDB primitive (`nullptr` if at end).
const GU_PrimVDB * | operator* () const
const GU_PrimVDB * | operator-> () const
GA_Offset | getOffset () const
GA_Index | getIndex () const
| operator bool () const
| Return `false` if there are no more VDB primitives.
UT_String | getPrimitiveName (const UT_String &defaultName="") const
| Return the value of the current VDB primitive's `name` attribute.
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).
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.

## Protected Member Functions
| VdbPrimCIterator (const GEO_Detail *, GA_Range::safedeletions, const GA_PrimitiveGroup *=nullptr, FilterFunc=FilterFunc())
| Allow primitives to be deleted during iteration.

## Protected Attributes
UT_SharedPtr< GA_GBPrimitiveIterator > | mIter
FilterFunc | mFilter

## Detailed Description

Iterator over 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

## ◆ FilterFunc

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

## Constructor & Destructor Documentation

## ◆ VdbPrimCIterator() [1/3]

VdbPrimCIterator | ( | const GEO_Detail * | gdp,
|  | const GA_PrimitiveGroup * | group = `nullptr`,
|  | FilterFunc | filter = `FilterFunc()`
| ) |  |
| explicit

Parameters

  gdp | the geometry detail over which to iterate
  group | a group in the detail over which to iterate (if `nullptr`, iterate over all VDB primitives)
  filter | an 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`)

## ◆ VdbPrimCIterator() [2/3]

VdbPrimCIterator | ( | const VdbPrimCIterator & |  | ) |

## ◆ VdbPrimCIterator() [3/3]

VdbPrimCIterator | ( | const GEO_Detail * | ,
|  | GA_Range::safedeletions | ,
|  | const GA_PrimitiveGroup * | = `nullptr`,
|  | FilterFunc | = `FilterFunc()`
| ) |  |
| protected

Allow primitives to be deleted during iteration.

## Member Function Documentation

## ◆ advance()

void advance | ( |  | ) |

Advance to the next VDB primitive.

## ◆ getIndex()

GA_Index getIndex | ( |  | ) | const
| inline

## ◆ getOffset()

GA_Offset getOffset | ( |  | ) | const
| inline

## ◆ getPrimitive()

const GU_PrimVDB * getPrimitive | ( |  | ) | const

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

## ◆ getPrimitiveIndexAndName()

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.

Parameters

  keepEmptyName | if 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

## ◆ getPrimitiveName()

UT_String getPrimitiveName | ( | const UT_String & | defaultName = `""` | ) | const

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

Parameters

  defaultName | if the current primitive has no `name` attribute or its name is empty, return this name instead

## ◆ getPrimitiveNameOrIndex()

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).

## ◆ operator bool()

operator bool | ( |  | ) | const
| inline

Return `false` if there are no more VDB primitives.

## ◆ operator*()

const GU_PrimVDB * operator* | ( |  | ) | const
| inline

## ◆ operator++()

VdbPrimCIterator & operator++ | ( |  | ) |
| inline

## ◆ operator->()

const GU_PrimVDB * operator-> | ( |  | ) | const
| inline

## ◆ operator=()

VdbPrimCIterator & operator= | ( | const VdbPrimCIterator & |  | ) |

## Member Data Documentation

## ◆ mFilter

FilterFunc mFilter
| protected

## ◆ mIter

UT_SharedPtr<GA_GBPrimitiveIterator> mIter
| protected