Back to class index
float3x3[Class Summary]
v
zero[static][const]
identity[static][const]
nan[static][const]
ctor (+3 overloads)
ToQuat()[const]
GetScale()[const]
operator[](row) (+1 overload)
At(row,col) (+1 overload)
Row(row) (+1 overload)
Row3(row) (+1 overload)
Col(col)[const]
Col3(col)[const]
Diagonal()[const]
ScaleRow(row,scalar)
ScaleCol(col,scalar)
PositiveX/Y/Z()[const]
ptr() (+1 overload)
SetRow(row,data) (+2 overloads)
SetCol(column,data) (+2 overloads)
Set(...) (+3 overloads)
SetIdentity()
SwapColumns(col1,col2)
SwapRows(row1,row2)
SetRotatePart/X/Y/Z(...) (+1 overload)
operator=(rhs) (+1 overload)
Determinant()[const]
DeterminantSymmetric()[const]
Inverse(epsilon)
InverseFast(epsilon)
SolveAxb(b,x)[const]
Inverted()[const]
InverseColOrthogonal()
InverseOrthogonalUniformScale()
InverseOrthonormal()
InverseSymmetric()
Transpose()
Transposed()[const]
InverseTranspose()
InverseTransposed()[const]
Trace()[const]
Orthonormalize(...)
RemoveScale()
Transform(vector)[const] (+1 overload)
TransformLeft(lhs)[const]
Transform(vector)[const]
BatchTransform(...)[const] (+3 overloads)
operator*(rhs)[const] (+4 overloads)
operator/(scalar)[const]
operator+(rhs)[const]
operator-(rhs)[const] (+1 overload)
operator+()[const]
operator*=(scalar)
operator/=(scalar)
operator+=(rhs)
operator-=(rhs)
IsFinite()[const]
IsIdentity(epsilon)[const]
IsLowerTriangular(epsilon)[const]
IsUpperTriangular(epsilon)[const]
IsInvertible(epsilon)[const]
IsSymmetric(epsilon)[const]
IsSkewSymmetric(epsilon)[const]
HasUnitaryScale(epsilonSq)[const]
HasNegativeScale()[const]
HasUniformScale(epsilon)[const]
IsRowOrthogonal(epsilon)[const]
IsColOrthogonal(epsilon)[const]
IsColOrthogonal3(epsilon)[const]
IsOrthonormal(epsilon)[const]
Equals(other,epsilon)[const]
ToString()[const]
SerializeToString()[const]
ToString2()[const]
ToEuler***()[const]
ExtractScale()[const]
Decompose(rotate,scale)[const] (+1 overload)
Mul(rhs)[const] (+5 overloads)
MulPos(rhs)[const] (+1 overload)
MulDir(rhs)[const] (+1 overload)
RotateX/Y/Z(angleRadians)[static]
RotateAxisAngle(...)[static]
RotateFromTo(...)[static]
LookAt(...)[static]
RandomRotation(lcg)[static]
RandomGeneral(...)[static]
FromQuat(orientation)[static]
FromRS(rotate,scale)[static] (+1 overload)
FromEuler***(ex,ey,ex2)[static]
Scale(sx,sy,sz)[static] (+1 overload)
ScaleAlongAxis(axis,scalingFactor)[static]
UniformScale(uniformScale)[static]
ShearX/Y/Z(yFactor,zFactor)[static]
Mirror(p)[static]
OrthographicProjection/YZ/XZ/XY(target)[static]

float3x3::HasUnitaryScale

Syntax

bool float3x3::HasUnitaryScale(float epsilonSq=1e-6f) const; [5 lines of code]

Returns true if this matrix does not perform any scaling.

A matrix does not do any scaling if the column vectors of this matrix are normalized in length, compared to the given epsilon. Note that this matrix may still perform reflection, i.e. it has a -1 scale along some axis.

Note
This function only examines the upper 3-by-3 part of this matrix. This function assumes that this matrix does not contain projection (the fourth row of this matrix is [0 0 0 1]).