OpenVDB  12.0.0
Classes | Namespaces | Macros | Typedefs | Functions
PointIndexGrid.h File Reference

Space-partitioning acceleration structure for points. Partitions the points into voxels to accelerate range and nearest neighbor searches. More...

#include "PointPartitioner.h"
#include <openvdb/thread/Threading.h>
#include <openvdb/version.h>
#include <openvdb/Exceptions.h>
#include <openvdb/Grid.h>
#include <openvdb/Types.h>
#include <openvdb/math/Transform.h>
#include <openvdb/tree/LeafManager.h>
#include <openvdb/tree/LeafNode.h>
#include <openvdb/tree/Tree.h>
#include <openvdb/util/Assert.h>
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <atomic>
#include <algorithm>
#include <cmath>
#include <deque>
#include <iostream>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  SameLeafConfig< Dim1, NodeT2 >
 
struct  PointIndexLeafNode< T, Log2Dim >
 
struct  PointIndexIterator< TreeType >
 Accelerated range and nearest-neighbor searches for point index grids. More...
 
struct  PointIndexFilter< PointArray, TreeType >
 
struct  PointIndexLeafNode< T, Log2Dim >
 
struct  SameLeafConfig< Dim1, openvdb::tools::PointIndexLeafNode< T2, Dim1 > >
 

Namespaces

 openvdb
 
 openvdb::v12_0
 
 openvdb::v12_0::tree
 
 openvdb::v12_0::tools
 

Macros

#define VMASK_   this->getValueMask()
 

Typedefs

using PointIndexTree = tree::Tree< tree::RootNode< tree::InternalNode< tree::InternalNode< PointIndexLeafNode< PointIndex32, 3 >, 4 >, 5 >>>
 Point index tree configured to match the default OpenVDB tree configuration. More...
 
using PointIndexGrid = Grid< PointIndexTree >
 Point index grid. More...
 

Functions

template<typename GridT , typename PointArrayT >
GridT::Ptr createPointIndexGrid (const PointArrayT &points, double voxelSize)
 Partition points into a point index grid to accelerate range and nearest-neighbor searches. More...
 
template<typename GridT , typename PointArrayT >
GridT::Ptr createPointIndexGrid (const PointArrayT &points, const math::Transform &xform)
 Partition points into a point index grid to accelerate range and nearest-neighbor searches. More...
 
template<typename PointArrayT , typename GridT >
bool isValidPartition (const PointArrayT &points, const GridT &grid)
 Return true if the given point index grid represents a valid partitioning of the given point array. More...
 
template<typename GridT , typename PointArrayT >
GridT::ConstPtr getValidPointIndexGrid (const PointArrayT &points, const typename GridT::ConstPtr &grid)
 Repartition the points if needed, otherwise return the input grid. More...
 
template<typename GridT , typename PointArrayT >
GridT::Ptr getValidPointIndexGrid (const PointArrayT &points, const typename GridT::Ptr &grid)
 Repartition the points if needed, otherwise return the input grid. More...
 

Detailed Description

Space-partitioning acceleration structure for points. Partitions the points into voxels to accelerate range and nearest neighbor searches.

Note
Leaf nodes store a single point-index array and the voxels are only integer offsets into that array. The actual points are never stored in the acceleration structure, only offsets into an external array.
Author
Mihai Alden

Macro Definition Documentation

#define VMASK_   this->getValueMask()