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::RandomRotation

Syntax

float3x3 float3x3::RandomRotation(LCG &lcg); [6 lines of code]

Returns a uniformly random 3x3 matrix that performs only rotation.

This matrix produces a random orthonormal basis for an orientation of an object. There is no mirroring or scaling present in the generated matrix. Also, naturally since float3x3 cannot represent translation or projection, those properties are not present either.