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