OpenVDB
3.1.0
|
Spatially partitions points using a parallel radix-based sorting algorithm. More...
#include <openvdb/Types.h>
#include <openvdb/math/Transform.h>
#include <deque>
#include <map>
#include <set>
#include <utility>
#include <vector>
#include <boost/integer.hpp>
#include <boost/scoped_array.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/math/special_functions/fpclassify.hpp>
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <tbb/task_scheduler_init.h>
Go to the source code of this file.
Namespaces | |
openvdb | |
openvdb::v3_1_0 | |
openvdb::v3_1_0::tools | |
openvdb::v3_1_0::tools::point_partitioner_internal | |
Typedefs | |
typedef PointPartitioner< uint32_t, 3 > | UInt32PointPartitioner |
Functions | |
template<typename PointIndexType , typename VoxelOffsetType , typename PointArray > | |
void | binAndSegment (const PointArray &points, const math::Transform &xform, boost::scoped_array< typename Array< PointIndexType >::Ptr > &indexSegments, boost::scoped_array< typename Array< PointIndexType >::Ptr > &offsetSegments, size_t &segmentCount, const Index binLog2Dim, const Index bucketLog2Dim, VoxelOffsetType *voxelOffsets=NULL) |
Segment points using one level of least significant digit radix bins. More... | |
template<typename PointIndexType , typename VoxelOffsetType , typename PointArray > | |
void | partition (const PointArray &points, const math::Transform &xform, const Index bucketLog2Dim, boost::scoped_array< PointIndexType > &pointIndices, boost::scoped_array< PointIndexType > &pageOffsets, PointIndexType &pageCount, boost::scoped_array< VoxelOffsetType > &voxelOffsets, bool recordVoxelOffsets) |
Spatially partitions points using a parallel radix-based sorting algorithm.
Performs a stable deterministic sort; partitioning the same point sequence will produce the same result each time.
The algorithm is unbounded meaning that points may be distributed anywhere in index space.
The actual points are never stored in the tool, only offsets into an external array.