OpenVDB 13.0.0

Loading...
Searching...
No Matches
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 | 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
namespace | openvdb
namespace | openvdb::v13_0
namespace | openvdb::v13_0::tree
namespace | openvdb::v13_0::tools

## Macros
#define | VMASK_ this->getValueMask()

## Typedefs
using | PointIndexTree
| Point index tree configured to match the default OpenVDB tree configuration.
using | PointIndexGrid = Grid<PointIndexTree>
| Point index grid.

## 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.
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.
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.
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.
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.

## 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

## ◆ VMASK_

#define VMASK_ this->getValueMask()