OpenVDB  12.1.0
Public Types | Public Attributes | List of all members
PcaAttributes Struct Reference

The persistent attributes created by the PCA methods. More...

#include <openvdb/points/PrincipalComponentAnalysis.h>

Public Types

using StretchT = math::Vec3< float >
 Settings for the "stretch" attribute, a floating point vector attribute which represents the scaling components of each points ellipse or (1.0,1.0,1.0) for isolated points. More...
 
using RotationT = math::Mat3< float >
 Settings for the "rotation" attribute, a floating point matrix attribute which represents the orthogonal rotation of each points ellipse or the identity matrix for isolated points. More...
 
using PosWsT = math::Vec3< double >
 Settings for the world space position of every point. This may end up being different to their actual position if the PcaSettings::averagePositions value is not exactly 0. This attribute is used in place of the point's actual position when calling points::rasterizeSdf. More...
 

Public Attributes

std::string stretch = "stretch"
 
std::string rotation = "rotation"
 
std::string positionWS = "pws"
 
std::string ellipses = "ellipsoids"
 A point group to create that represents points which have valid ellipsoidal neighborhood. Points outside of this group will have their stretch and rotation attributes set to describe a canonical sphere. Note however that all points, regardless of this groups membership flag, will still contribute to their neighbours and may have their world space position deformed in relation to their neighboring points. More...
 

Detailed Description

The persistent attributes created by the PCA methods.

Note
These can be passed to points::rasterizeSdf with the EllipsoidSettings to perform ellipsoidal surface construction.

Member Typedef Documentation

using PosWsT = math::Vec3<double>

Settings for the world space position of every point. This may end up being different to their actual position if the PcaSettings::averagePositions value is not exactly 0. This attribute is used in place of the point's actual position when calling points::rasterizeSdf.

Note
This should always be at least at double precision
using RotationT = math::Mat3<float>

Settings for the "rotation" attribute, a floating point matrix attribute which represents the orthogonal rotation of each points ellipse or the identity matrix for isolated points.

using StretchT = math::Vec3<float>

Settings for the "stretch" attribute, a floating point vector attribute which represents the scaling components of each points ellipse or (1.0,1.0,1.0) for isolated points.

Member Data Documentation

std::string ellipses = "ellipsoids"

A point group to create that represents points which have valid ellipsoidal neighborhood. Points outside of this group will have their stretch and rotation attributes set to describe a canonical sphere. Note however that all points, regardless of this groups membership flag, will still contribute to their neighbours and may have their world space position deformed in relation to their neighboring points.

std::string positionWS = "pws"
std::string rotation = "rotation"
std::string stretch = "stretch"