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> |
using | Ptr |
using | ConstPtr |
using | PointIndexGridPtr |
using | IndexType |
Public Member Functions | |
Iterator (const ParticleAtlas &atlas) | |
Construct an iterator from the given atlas. | |
template<typename ParticleArrayType> | |
void | worldSpaceSearchAndUpdate (const Vec3d ¢er, 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 |
ParticleAtlas () | |
void | construct (const ParticleArrayType &particles, double minVoxelSize, size_t maxLevels=50) |
Partitions particle indices. | |
size_t | levels () const |
Returns the number of resolution levels. | |
bool | empty () const |
true if the container size is 0, false otherwise. | |
double | minRadius (size_t n) const |
Returns minimum particle radius for level n. | |
double | maxRadius (size_t n) const |
Returns maximum particle radius for level n. | |
PointIndexGridType & | pointIndexGrid (size_t n) |
Returns the PointIndexGrid that represents the given level n. | |
const PointIndexGridType & | pointIndexGrid (size_t n) const |
Returns the PointIndexGrid that represents the given level n. | |
bool | test () const |
Return true if this iterator is not yet exhausted. | |
operator bool () const | |
Return true if this iterator is not yet exhausted. | |
Static Public Member Functions | |
static Ptr | create (const ParticleArrayType &particles, double minVoxelSize, size_t maxLevels=50) |
Create a new ParticleAtlas from the given particles. | |
Provides accelerated range and nearest-neighbor searches for particles that are partitioned using the ParticleAtlas.
using ConstAccessor = tree::ValueAccessor<const TreeType> |
using ConstAccessorPtr = std::unique_ptr<ConstAccessor> |
using ConstPtr |
using IndexType |
using PointIndexGridPtr |
using Ptr |
using TreeType = typename PointIndexGridType::TreeType |
|
inlineexplicit |
Construct an iterator from the given atlas.
|
inline |
Partitions particle indices.
particles | container conforming to the ParticleArray interface |
minVoxelSize | minimum voxel size limit |
maxLevels | maximum number of resolution levels |
|
inlinestatic |
Create a new ParticleAtlas
from the given particles.
particles | container conforming to the ParticleArray interface |
minVoxelSize | minimum voxel size limit |
maxLevels | maximum number of resolution levels |
|
inline |
true if the container size is 0, false otherwise.
|
inline |
Advance iterator to next item.
|
inline |
Returns the number of resolution levels.
|
inline |
Returns the total number of resolution levels.
|
inline |
Returns maximum particle radius for level n.
|
inline |
Returns minimum particle radius for level n.
|
inline |
Advance iterator to next item.
true
if this iterator is not yet exhausted.
|
inline |
Return true
if this iterator is not yet exhausted.
|
inline |
|
inline |
Return a const reference to the item to which this iterator is pointing.
|
inline |
Advance iterator to next item.
|
inline |
Return true
if both iterators point to the same element.
|
inline |
|
inline |
Returns the PointIndexGrid
that represents the given level n.
|
inline |
Returns the PointIndexGrid
that represents the given level n.
|
inline |
Reset the iterator to point to the first item.
|
inline |
Return the number of point indices in the iterator range.
|
inline |
Return true
if this iterator is not yet exhausted.
|
inline |
Clear the iterator and update it with all particles that reside at the given resolution level.
|
inline |
Clear the iterator and update it with the result of the given world-space radial query.
bbox | world-space bounding box |
particles | container conforming to the ParticleArray interface |
|
inline |
Clear the iterator and update it with the result of the given world-space radial query.
center | world-space center |
radius | world-space search radius |
particles | container conforming to the ParticleArray interface |