OpenVDB 12.1.0

Loading...
Searching...
No Matches
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.
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 | 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
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.

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

## ◆ RotationT

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.

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

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

## ◆ positionWS

std::string positionWS = "pws"

## ◆ rotation

std::string rotation = "rotation"

## ◆ stretch

std::string stretch = "stretch"