OpenVDB
9.0.1
|
Space-partitioning acceleration structure for particles, points with radius. Partitions particle indices into voxels to accelerate range and nearest neighbor searches. More...
#include "PointIndexGrid.h"
#include <openvdb/Grid.h>
#include <openvdb/Types.h>
#include <openvdb/math/Transform.h>
#include <openvdb/tree/Tree.h>
#include <openvdb/tree/LeafNode.h>
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <tbb/parallel_reduce.h>
#include <algorithm>
#include <cmath>
#include <deque>
#include <limits>
#include <memory>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
struct | ParticleAtlas< PointIndexGridType > |
struct | ParticleAtlas< PointIndexGridType >::Iterator |
Provides accelerated range and nearest-neighbor searches for particles that are partitioned using the ParticleAtlas. More... | |
Namespaces | |
openvdb | |
openvdb::v9_0 | |
openvdb::v9_0::tools | |
Typedefs | |
using | ParticleIndexAtlas = ParticleAtlas< PointIndexGrid > |
Space-partitioning acceleration structure for particles, points with radius. Partitions particle indices into voxels to accelerate range and nearest neighbor searches.
Constructs and maintains a sequence of PointIndexGrids
each of progressively lower resolution. Particles are uniquely assigned to a particular resolution level based on their radius. This strategy has proven efficient for accelerating spatial queries on particle data sets with varying radii.
The data structure automatically detects and adapts to particle data sets with uniform radii. The construction is simplified and spatial queries pre-cache the uniform particle radius to avoid redundant access calls to the ParticleArray::getRadius method.