OpenVDB  12.1.0
Classes | Namespaces | Functions
PrincipalComponentAnalysis.h File Reference

Provides methods to perform principal component analysis (PCA) over a point set to compute rotational and affine transformations for each point that represent a their neighborhoods anisotropy. The techniques and algorithms used here are described in: [Reconstructing Surfaces of Particle-Based Fluids Using Anisotropic Kernel - Yu Turk 2010]. The parameters and results of these methods can be combines with the ellipsoidal surfacing technique found in PointRasterizeSDF.h. More...

#include <openvdb/openvdb.h>
#include <openvdb/Grid.h>
#include <openvdb/Types.h>
#include <openvdb/math/Coord.h>
#include <openvdb/thread/Threading.h>
#include <openvdb/util/NullInterrupter.h>
#include <openvdb/util/Assert.h>
#include <openvdb/points/PointAttribute.h>
#include <openvdb/points/PointGroup.h>
#include <openvdb/points/PointTransfer.h>
#include <openvdb/points/PointDataGrid.h>
#include <string>
#include <vector>
#include <memory>
#include <limits>
#include <cmath>
#include "impl/PrincipalComponentAnalysisImpl.h"

Go to the source code of this file.

Classes

struct  PcaSettings
 Various settings for the neighborhood analysis of point distributions. More...
 
struct  PcaAttributes
 The persistent attributes created by the PCA methods. More...
 

Namespaces

 openvdb
 
 openvdb::v12_1
 
 openvdb::v12_1::points
 

Functions

template<typename PointDataGridT >
void pca (PointDataGridT &points, const PcaSettings &settings, const PcaAttributes &attrs)
 Calculate ellipsoid transformations from the local point distributions as described in Yu and Turk's 'Reconstructing Fluid Surfaces with Anisotropic Kernels'. The results are stored on the attributes pointed to by the PcaAttributes. See the PcaSettings and PcaAttributes structs for more details. More...
 

Detailed Description

Provides methods to perform principal component analysis (PCA) over a point set to compute rotational and affine transformations for each point that represent a their neighborhoods anisotropy. The techniques and algorithms used here are described in: [Reconstructing Surfaces of Particle-Based Fluids Using Anisotropic Kernel - Yu Turk 2010]. The parameters and results of these methods can be combines with the ellipsoidal surfacing technique found in PointRasterizeSDF.h.

Author
Richard Jones, Nick Avramoussis