Public Attributes

AffineParts Struct Reference

Search for all occurrences

Detailed Description

See also:
Class Matrix3, Class Quat, Class Point, Class ScaleValue.
Remarks:
This structure and the associated functions provide a way to decompose an arbitrary Matrix3 into its translation, rotation, and scale components.

To use these APIs put the following statement in your source file:
#include "decomp.h"

For a full discussion of this decomposition see Graphics Gems IV - Polar Matrix Decomposition by Ken Shoemake. ISBN 0-12-336155-9.

T F R U K U'
T - translation matrix
F - either an identity matrix or negative identity matrix
R - rotation defined by Quat q.
U - rotates you into the coordinates system where the scaling or stretching is done
K - scaling matrix
U' - inverse of u.
See Functions:
SpectralDecomp(Matrix3 m, Point3 &s, Quat& q);
decomp_affine(Matrix3 A, AffineParts *parts);
invert_affine(AffineParts *parts, AffineParts *inverse);

#include <decomp.h>

Inheritance diagram for AffineParts:
Inheritance graph
[legend]

List of all members.

Public Attributes

Point3  t
  The translation components.
Quat  q
  The essential rotation.
Quat  u
  The stretch rotation.
Point3  k
  The stretch factors.
float  f
  Sign of the determinant.

Member Data Documentation

The translation components.

The essential rotation.

The stretch rotation.

This is the axis system of the scaling application.

The stretch factors.

These are the scale factors for x, y and z.

float f

Sign of the determinant.