Back to class index
float4x4[Class Summary]
v
zero[static][const]
identity[static][const]
nan[static][const]
ctor (+6 overloads)
GetScale()[const]
ComplementaryProjection()[const]
operator[](row) (+1 overload)
At(row,col) (+1 overload)
Row(row) (+1 overload)
Row3(row)[const]
Col(col)[const]
Diagonal()[const]
ScaleRow3(row,scalar)
ScaleRow(row,scalar)
ScaleCol3(col,scalar)
ScaleCol(col,scalar)
Float3x3Part()[const]
Float3x4Part() (+1 overload)
TranslatePart()[const]
RotatePart()[const]
X/Y/Z()[const]
ptr() (+1 overload)
SetRow3(row,data) (+2 overloads)
SetRow(row,data) (+3 overloads)
SetCol3(column,data) (+2 overloads)
SetCol(column,data) (+3 overloads)
Set(...) (+3 overloads)
Set3x3Part(rotation)
Set3x4Part(rotateTranslate)
SetIdentity()
SwapColumns(col1,col2)
SwapRows(row1,row2)
SetTranslatePart(tx,ty,tz) (+2 overloads)
SetRotatePart/X/Y/Z(...) (+2 overloads)
operator=(rhs) (+4 overloads)
Determinant3()[const]
Determinant4()[const]
SubMatrix(i,j)[const]
Minor(i,j)[const]
Adjugate()[const]
CholeskyDecompose(outL)[const]
LUDecompose(outLower,outUpper)[const]
Inverse(epsilon)
Inverted()[const]
InverseColOrthogonal()
InverseOrthogonalUniformScale()
InverseOrthonormal()
Transpose()
Transposed()[const]
InverseTranspose()
InverseTransposed()[const]
Trace()[const]
Orthogonalize3(...) (+1 overload)
Orthonormalize3(...) (+1 overload)
RemoveScale()
Pivot()
TransformPos(pointVector)[const] (+2 overloads)
TransformDir(directionVector)[const] (+2 overloads)
Transform(vector)[const]
TransformPos(...)[const] (+1 overload)
TransformDir(...)[const] (+1 overload)
Transform(...)[const] (+1 overload)
operator*(rhs)[const] (+5 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]
IsIdempotent(epsilon)[const]
HasUnitaryScale(epsilon)[const]
HasNegativeScale()[const]
HasUniformScale(epsilon)[const]
IsRowOrthogonal3(epsilon)[const]
IsColOrthogonal3(epsilon)[const]
IsOrthonormal3(epsilon)[const]
Equals(other,epsilon)[const]
ContainsProjection(epsilon)[const]
ToString()[const]
SerializeToString()[const]
ToString2()[const]
ToEuler***()[const]
ExtractScale()[const]
Decompose(...)[const] (+3 overloads)
Abs()[const]
Mul(rhs)[const] (+3 overloads)
MulPos(pointVector)[const] (+1 overload)
MulDir(directionVector)[const] (+1 overload)
Mul(vector)[const]
Translate(tx,ty,tz)[static] (+1 overload)
RotateX/Y/Z(...)[static] (+1 overload)
RotateAxisAngle(...)[static] (+1 overload)
RotateFromTo(...)[static] (+1 overload)
RandomGeneral(...)[static]
RotateFromTo(...)[static] (+1 overload)
FromQuat(orientation)[static] (+1 overload)
FromTRS(...)[static] (+3 overloads)
FromEuler***(x2,y,x)[static]
Scale(sx,sy,sz)[static] (+2 overloads)
ScaleAlongAxis(...)[static] (+1 overload)
UniformScale(uniformScale)[static] (+1 overload)
ShearX/Y/Z(yFactor,zFactor)[static]
Mirror(p)[static]
D3DOrthoProjLH(...)[static]
D3DOrthoProjRH(...)[static]
D3DPerspProjLH(...)[static]
D3DPerspProjRH(...)[static]
OpenGLOrthoProjLH(...)[static]
OpenGLOrthoProjRH(...)[static]
OpenGLPerspProjLH(...)[static]
OpenGLPerspProjRH(...)[static]
OrthographicProjection/YZ/XZ/XY(target)[static]
LookAt(...)[static] (+1 overload)

float4x4::HasUniformScale

Syntax

bool float4x4::HasUniformScale(float epsilon=1e-3f) const; [5 lines of code]

Returns true if this matrix contains only uniform scaling, compared to the given epsilon.

Note
If the matrix does not really do any scaling, this function returns true (scaling uniformly by a factor of 1). 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]).