OpenVDB 13.0.1
Loading...
Searching...
No Matches
PcaAttributes Struct Reference

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

#include <openvdb/points/PrincipalComponentAnalysis.h>

Public Types

enum class  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.
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 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.

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

◆ PosWsT

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

◆ QuatT

using QuatT = math::Quat<float>

◆ RotationT

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.

◆ StretchT

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

◆ XformOutput

enum class XformOutput
strong
Enumerator
COMBINED_TRANSFORM 
STRETCH_AND_QUATERNION 
STRETCH_AND_UNITARY_MATRIX 

Member Data Documentation

◆ ellipses

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.

◆ positionWS

std::string positionWS = "pws"

◆ rotation

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"

◆ stretch

std::string stretch = "stretch"

◆ xform

std::string xform = "xform"

◆ xformOutput