Transform with non-uniform (3-component) scale. Transform applied as: T(p) = translate(rotate(scale(p))) = p' The scale is non-rotated to avoid shearing in the transform. Two transforms are applied as: T1(T2(p)) = t1(r1(t2(r2(s1(s2(p)))))) = p' This means that the transform is not associative: T1(T2(p)) != (T1*T2)(P)
Constructor. Leaves the struct in an uninitialized state
constructor
translation -
rotation -
scale -
constructor
translation -
rotation -
scale -
initialize to identity transform
get translation
translation -
set translation
translation -
get scale
scale -
set scale
scale -
Compute a 'uniform' scale for this transform. In the event that the scale applied to this transform is not uniform then the value is arbitrary: we make a selection that will not introduce any floating point rounding errors.
scale - the uniform scale associated with this transform.
set uniform scale
scale -
get rotatiom
rotation -
set rotatiom
rotation -
Apply the transform on a point (includes the transform translation).
t - Transform
p - Point
point - Transformed point
Apply the transform on a point, but without scaling the Z-component of the point (includes the transform translation).
t - Transform
p - Point
point - Transformed point
Apply the transform on a vector (excludes the transform translation).
t - Transform
v - Vector
point - Transformed vector
Apply the transform on a vector, but without scaling the Z-component of the vector (excludes the transform translation).
t - Transform
v - Vector
point - Transformed vector
Transforms the right-hand transform by the left-hand transform
lhs -
rhs -
result - Transformed transform
Transforms the right-hand transform by the left-hand transform, without scaling the Z-component of the transition of the transformed transform
lhs -
rhs -
result - Transformed transform
Invert a transform
t -
result - inverted transform
Convert a transform into a 4-dim matrix
t - Transform to convert
Matrix - representing the same transform
Extract the absolute values of the scale component from a matrix.
mtx - Source matrix
Vector3 - with scale values for x,y,z
Eliminate the scaling components in a matrix
mtx - Matrix to operate on
Vector - containing the scaling by component
Convert a matrix into a transform
mtx - Matrix4 to convert
Transform - representing the same transform
Eliminate the z scaling components in a matrix
mtx - Matrix to operate on
Eliminate the z scaling components in a matrix
source - Source matrix
target - Target matrix
Multiply two matrices without z-scaling the translation in m2
m1 - First matrix
m2 - Second matrix
result - The resulting transform