Back to class index
float3x3[Class Summary]
v
zero[static][const]
identity[static][const]
nan[static][const]
ctor (+4 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,x,y,z) (+2 overloads)
SetCol(column,x,y,z) (+2 overloads)
Set(...) (+3 overloads)
SetIdentity()
SwapColumns(col1,col2)
SwapRows(row1,row2)
SetRotatePart/X/Y/Z(...) (+1 overload)
operator=(rhs) (+1 overload)
Determinant()[const]
Inverse()
Inverted()[const]
InverseColOrthogonal()
InverseOrthogonalUniformScale()
InverseOrthonormal()
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*=(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]
ToEuler***()[const]
ExtractScale()[const]
Decompose(rotate,scale)[const] (+1 overload)
Mul(rhs)[const] (+4 overloads)
MulPos(rhs)[const]
MulDir(rhs)[const]
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::ToEuler***

Syntax

float3 float3x3::ToEulerXYX() const; [1 line of code]
float3 float3x3::ToEulerXZX() const; [1 lines of code]
float3 float3x3::ToEulerYXY() const; [1 lines of code]
float3 float3x3::ToEulerYZY() const; [1 lines of code]
float3 float3x3::ToEulerZXZ() const; [1 lines of code]
float3 float3x3::ToEulerZYZ() const; [1 lines of code]
float3 float3x3::ToEulerXYZ() const; [1 lines of code]
float3 float3x3::ToEulerXZY() const; [1 lines of code]
float3 float3x3::ToEulerYXZ() const; [1 lines of code]
float3 float3x3::ToEulerYZX() const; [1 lines of code]
float3 float3x3::ToEulerZXY() const; [1 lines of code]
float3 float3x3::ToEulerZYX() const; [1 lines of code]

Extracts the rotation part of this matrix into Euler rotation angles (in radians).

Note
It is better to thinkg about the returned float3 as an array of three floats, and not as a triple of xyz, because e.g. the .y component returned by ToEulerYXZ() does not return the amount of rotation about the y axis, but contains the amount of rotation in the second axis, in this case the x axis.

Performance

float3 float3x3::ToEulerXYX() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerXZX() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerYXY() const

0.16μsecs/call ≈ 6.25M calls/second ≈ 104.1k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerYZY() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerZXZ() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerZYZ() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerXYZ() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerXZY() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerYXZ() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerYZX() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerZXY() const

0.156μsecs/call ≈ 6.41M calls/second ≈ 106.84k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

float3 float3x3::ToEulerZYX() const

0.16μsecs/call ≈ 6.25M calls/second ≈ 104.1k calls/frame (@ 60fps).
This function does not perform dynamic memory allocation.

Leave a Comment

Name:
Comments:
Captcha:captcha image Type in the black symbols:
Back to class index