OpenVDB 11.0.0

Loading...
Searching...
No Matches
ParticleAtlas< PointIndexGridType >::Iterator Struct Reference

Provides accelerated range and nearest-neighbor searches for particles that are partitioned using the ParticleAtlas. More...

`#include <openvdb/tools/ParticleAtlas.h>`

## Public Types
using | TreeType = typename PointIndexGridType::TreeType
using | ConstAccessor = tree::ValueAccessor<const TreeType>
using | ConstAccessorPtr = std::unique_ptr<ConstAccessor>

## Public Member Functions
| Iterator (const ParticleAtlas &atlas)
| Construct an iterator from the given atlas.
template<typename ParticleArrayType>
void | worldSpaceSearchAndUpdate (const Vec3d &center, double radius, const ParticleArrayType &particles)
| Clear the iterator and update it with the result of the given world-space radial query.
template<typename ParticleArrayType>
void | worldSpaceSearchAndUpdate (const BBoxd &bbox, const ParticleArrayType &particles)
| Clear the iterator and update it with the result of the given world-space radial query.
size_t | levels () const
| Returns the total number of resolution levels.
void | updateFromLevel (size_t level)
| Clear the iterator and update it with all particles that reside at the given resolution level.
void | reset ()
| Reset the iterator to point to the first item.
const IndexType & | operator* () const
| Return a const reference to the item to which this iterator is pointing.
void | increment ()
| Advance iterator to next item.
void | operator++ ()
| Advance iterator to next item.
bool | next ()
| Advance iterator to next item.
size_t | size () const
| Return the number of point indices in the iterator range.
bool | operator== (const Iterator &p) const
| Return `true` if both iterators point to the same element.
bool | operator!= (const Iterator &p) const
bool | test () const
| Return `true` if this iterator is not yet exhausted.
| operator bool () const
| Return `true` if this iterator is not yet exhausted.

## Detailed Description

template<typename PointIndexGridType = PointIndexGrid>
struct openvdb::v11_0::tools::ParticleAtlas< PointIndexGridType >::Iterator

Provides accelerated range and nearest-neighbor searches for particles that are partitioned using the ParticleAtlas.

Note
  Prefer to construct the iterator object once and reuse it for subsequent queries.

## Member Typedef Documentation

## ◆ ConstAccessor

template<typename PointIndexGridType = PointIndexGrid>

using ConstAccessor = tree::ValueAccessor<const TreeType>

## ◆ ConstAccessorPtr

template<typename PointIndexGridType = PointIndexGrid>

using ConstAccessorPtr = std::unique_ptr<ConstAccessor>

## ◆ TreeType

template<typename PointIndexGridType = PointIndexGrid>

using TreeType = typename PointIndexGridType::TreeType

## Constructor & Destructor Documentation

## ◆ Iterator()

template<typename PointIndexGridType>

Iterator | ( | const ParticleAtlas & | atlas | ) |
| inline explicit

Construct an iterator from the given atlas.

## Member Function Documentation

## ◆ increment()

template<typename PointIndexGridType>

void increment | ( |  | ) |
| inline

Advance iterator to next item.

## ◆ levels()

template<typename PointIndexGridType = PointIndexGrid>

size_t levels | ( |  | ) | const
| inline

Returns the total number of resolution levels.

## ◆ next()

template<typename PointIndexGridType>

bool next | ( |  | ) |
| inline

Advance iterator to next item.

Returns
  `true` if this iterator is not yet exhausted.

## ◆ operator bool()

template<typename PointIndexGridType = PointIndexGrid>

operator bool | ( |  | ) | const
| inline

Return `true` if this iterator is not yet exhausted.

## ◆ operator!=()

template<typename PointIndexGridType = PointIndexGrid>

bool operator!= | ( | const Iterator & | p | ) | const
| inline

## ◆ operator*()

template<typename PointIndexGridType = PointIndexGrid>

const IndexType & operator* | ( |  | ) | const
| inline

Return a const reference to the item to which this iterator is pointing.

## ◆ operator++()

template<typename PointIndexGridType = PointIndexGrid>

void operator++ | ( |  | ) |
| inline

Advance iterator to next item.

## ◆ operator==()

template<typename PointIndexGridType = PointIndexGrid>

bool operator== | ( | const Iterator & | p | ) | const
| inline

Return `true` if both iterators point to the same element.

## ◆ reset()

template<typename PointIndexGridType>

void reset | ( |  | ) |
| inline

Reset the iterator to point to the first item.

## ◆ size()

template<typename PointIndexGridType>

size_t size | ( |  | ) | const
| inline

Return the number of point indices in the iterator range.

## ◆ test()

template<typename PointIndexGridType = PointIndexGrid>

bool test | ( |  | ) | const
| inline

Return `true` if this iterator is not yet exhausted.

## ◆ updateFromLevel()

template<typename PointIndexGridType>

void updateFromLevel | ( | size_t | level | ) |
| inline

Clear the iterator and update it with all particles that reside at the given resolution level.

## ◆ worldSpaceSearchAndUpdate() [1/2]

template<typename PointIndexGridType>
template<typename ParticleArrayType>

void worldSpaceSearchAndUpdate | ( | const BBoxd & | bbox,
|  | const ParticleArrayType & | particles )
| inline

Clear the iterator and update it with the result of the given world-space radial query.

Parameters

  bbox | world-space bounding box
  particles | container conforming to the ParticleArray interface

## ◆ worldSpaceSearchAndUpdate() [2/2]

template<typename PointIndexGridType>
template<typename ParticleArrayType>

void worldSpaceSearchAndUpdate | ( | const Vec3d & | center,
|  | double | radius,
|  | const ParticleArrayType & | particles )
| inline

Clear the iterator and update it with the result of the given world-space radial query.

Parameters

  center | world-space center
  radius | world-space search radius
  particles | container conforming to the ParticleArray interface