OpenVDB  12.0.0
Public Types | Public Member Functions | List of all members
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. More...
 
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. More...
 
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. More...
 
size_t levels () const
 Returns the total number of resolution levels. More...
 
void updateFromLevel (size_t level)
 Clear the iterator and update it with all particles that reside at the given resolution level. More...
 
void reset ()
 Reset the iterator to point to the first item. More...
 
const IndexTypeoperator* () const
 Return a const reference to the item to which this iterator is pointing. More...
 
void increment ()
 Advance iterator to next item. More...
 
void operator++ ()
 Advance iterator to next item. More...
 
bool next ()
 Advance iterator to next item. More...
 
size_t size () const
 Return the number of point indices in the iterator range. More...
 
bool operator== (const Iterator &p) const
 Return true if both iterators point to the same element. More...
 
bool operator!= (const Iterator &p) const
 
bool test () const
 Return true if this iterator is not yet exhausted. More...
 
 operator bool () const
 Return true if this iterator is not yet exhausted. More...
 

Detailed Description

template<typename PointIndexGridType = PointIndexGrid>
struct openvdb::v12_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

using ConstAccessorPtr = std::unique_ptr<ConstAccessor>
using TreeType = typename PointIndexGridType::TreeType

Constructor & Destructor Documentation

Iterator ( const ParticleAtlas atlas)
inlineexplicit

Construct an iterator from the given atlas.

Member Function Documentation

void increment ( )
inline

Advance iterator to next item.

size_t levels ( ) const
inline

Returns the total number of resolution levels.

bool next ( )
inline

Advance iterator to next item.

Returns
true if this iterator is not yet exhausted.
operator bool ( ) const
inline

Return true if this iterator is not yet exhausted.

bool operator!= ( const Iterator p) const
inline
const IndexType& operator* ( ) const
inline

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

void operator++ ( )
inline

Advance iterator to next item.

bool operator== ( const Iterator p) const
inline

Return true if both iterators point to the same element.

void reset ( )
inline

Reset the iterator to point to the first item.

size_t size ( ) const
inline

Return the number of point indices in the iterator range.

bool test ( ) const
inline

Return true if this iterator is not yet exhausted.

void updateFromLevel ( size_t  level)
inline

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

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
centerworld-space center
radiusworld-space search radius
particlescontainer conforming to the ParticleArray interface
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
bboxworld-space bounding box
particlescontainer conforming to the ParticleArray interface