OpenVDB 13.0.0

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

XformOutput xformOutput = XformOutput::STRETCH_AND_UNITARY_MATRIX