OpenVDB 12.1.0
Loading...
Searching...
No Matches
PrincipalComponentAnalysisImpl.h File Reference

Go to the source code of this file.

Classes

struct  NoTimer
struct  PcaTimer
struct  AttrIndices
struct  PcaTransfer< PointDataTreeT >
struct  WeightPosSumsTransfer< PointDataTreeT >
struct  CovarianceTransfer< PointDataTreeT >

Namespaces

namespace  openvdb
namespace  openvdb::v12_1
namespace  openvdb::v12_1::points
namespace  openvdb::v12_1::points::pca_internal

Macros

#define OPENVDB_PCA_SELF_CONTRIBUTION   1
 when enabled, prints timings for each substep of the PCA algorithm

Typedefs

using TimerT = NoTimer
using WeightSumT = double
using WeightedPositionSumT = Vec3d
using GroupIndexT = points::AttributeSet::Descriptor::GroupIndex

Functions

template<typename T, typename LeafNodeT>
T * initPcaArrayAttribute (LeafNodeT &leaf, const size_t idx, const bool fill=true)
template<typename Scalar>
Vec3i descendingOrder (math::Vec3< Scalar > &vector)
 Sort a vector into descending order and output a vector of the resulting order.
template<typename Scalar>
bool decomposeSymmetricMatrix (const math::Mat3< Scalar > &mat, math::Mat3< Scalar > &U, math::Vec3< Scalar > &sigma)
 Decomposes a symmetric matrix into its eigenvalues and a rotation matrix of eigenvectors. Note that if mat is positive-definite, this will be equivalent to a singular value decomposition where V = U.
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.

Macro Definition Documentation

◆ OPENVDB_PCA_SELF_CONTRIBUTION

#define OPENVDB_PCA_SELF_CONTRIBUTION   1

when enabled, prints timings for each substep of the PCA algorithm

Experimental option to skip storing the self weight for the weighted PCA when set to 0