OpenVDB  13.0.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

enum  XformOutput { COMBINED_TRANSFORM, STRETCH_AND_QUATERNION, STRETCH_AND_UNITARY_MATRIX }
 
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 "xform" attribute, either a floating point matrix or quaternion attribute. See the xformOutput setting and XformOutput enum above for details. More...
 
using QuatT = math::Quat< float >
 
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

XformOutput xformOutput = XformOutput::STRETCH_AND_UNITARY_MATRIX
 
std::string stretch = "stretch"
 
std::string xform = "xform"
 
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 xform 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...
 
std::string rotation = ""
 

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 QuatT = math::Quat<float>
using RotationT = math::Mat3<float>

Settings for the "xform" attribute, either a floating point matrix or quaternion attribute. See the xformOutput setting and XformOutput enum above for details.

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.

Note
This will only be created if the XformOutput is set to STRETCH_AND_QUATERNION or STRETCH_AND_UNITARY_MATRIX.

Member Enumeration Documentation

enum XformOutput
strong
Enumerator
COMBINED_TRANSFORM 
STRETCH_AND_QUATERNION 
STRETCH_AND_UNITARY_MATRIX 

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 xform 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 = ""

Old style "xform" attribute which has since been renamed and ONLY supported rotation. If set, both the above "xform" and this attribute will be created. This attribute only ever holds rotation, regardless of the xformOutput specified. This will be removed and should not be used.

Deprecated:
"Use PcaAttributes::xform"
std::string stretch = "stretch"
std::string xform = "xform"