Go to the documentation of this file.
78 memcpy(m,arr,9*
sizeof(
Real));
82 memcpy(m,rkMatrix.
m,9*
sizeof(
Real));
115 inline const Real* operator[] (
size_t iRow)
const
120 inline Real* operator[] (
size_t iRow)
131 Vector3 GetColumn (
size_t iCol)
const;
132 void SetColumn(
size_t iCol,
const Vector3& vec);
138 memcpy(m,rkMatrix.
m,9*
sizeof(
Real));
182 bool Inverse (
Matrix3& rkInverse,
Real fTolerance = 1e-06)
const;
184 Real Determinant ()
const;
189 void SingularValueComposition (
const Matrix3& rkL,
193 void Orthonormalize ();
199 Real SpectralNorm ()
const;
205 ToAngleAxis ( rkAxis, r );
208 void FromAngleAxis (
const Vector3& rkAxis,
const Radian& fRadians);
213 bool ToEulerAnglesXYZ (
Radian& rfYAngle,
Radian& rfPAngle,
215 bool ToEulerAnglesXZY (
Radian& rfYAngle,
Radian& rfPAngle,
217 bool ToEulerAnglesYXZ (
Radian& rfYAngle,
Radian& rfPAngle,
219 bool ToEulerAnglesYZX (
Radian& rfYAngle,
Radian& rfPAngle,
221 bool ToEulerAnglesZXY (
Radian& rfYAngle,
Radian& rfPAngle,
223 bool ToEulerAnglesZYX (
Radian& rfYAngle,
Radian& rfPAngle,
225 void FromEulerAnglesXYZ (
const Radian& fYAngle,
const Radian& fPAngle,
const Radian& fRAngle);
226 void FromEulerAnglesXZY (
const Radian& fYAngle,
const Radian& fPAngle,
const Radian& fRAngle);
227 void FromEulerAnglesYXZ (
const Radian& fYAngle,
const Radian& fPAngle,
const Radian& fRAngle);
228 void FromEulerAnglesYZX (
const Radian& fYAngle,
const Radian& fPAngle,
const Radian& fRAngle);
229 void FromEulerAnglesZXY (
const Radian& fYAngle,
const Radian& fPAngle,
const Radian& fRAngle);
230 void FromEulerAnglesZYX (
const Radian& fYAngle,
const Radian& fPAngle,
const Radian& fRAngle);
232 void EigenSolveSymmetric (
Real afEigenvalue[3],
233 Vector3 akEigenvector[3])
const;
235 static void TensorProduct (
const Vector3& rkU,
const Vector3& rkV,
242 Real t = m[0][0] * m[0][0] + m[1][0] * m[1][0] + m[2][0] * m[2][0];
245 t = m[0][1] * m[0][1] + m[1][1] * m[1][1] + m[2][1] * m[2][1];
248 t = m[0][2] * m[0][2] + m[1][2] * m[1][2] + m[2][2] * m[2][2];
257 inline _OgreExport
friend std::ostream&
operator <<
260 o <<
"Matrix3(" << mat[0][0] <<
", " << mat[0][1] <<
", " << mat[0][2] <<
", "
261 << mat[1][0] <<
", " << mat[1][1] <<
", " << mat[1][2] <<
", "
262 << mat[2][0] <<
", " << mat[2][1] <<
", " << mat[2][2] <<
")";
272 void Tridiagonal (
Real afDiag[3],
Real afSubDiag[3]);
273 bool QLAlgorithm (
Real afDiag[3],
Real afSubDiag[3]);
284 static Real MaxCubicRoot (
Real afCoeff[3]);
static const Real msSvdEpsilon
static const Real EPSILON
void swap(Matrix3 &other)
Exchange the contents of this matrix with another.
A 3x3 matrix which can represent rotations around axes.
Radian operator*(Real a, const Radian &b)
Matrix3(const Real arr[3][3])
Matrix3()
Default constructor.
bool operator!=(STLAllocator< T, P > const &, STLAllocator< T2, P > const &)
determine equality, can memory from another allocator be released by this allocator,...
Matrix3(Real fEntry00, Real fEntry01, Real fEntry02, Real fEntry10, Real fEntry11, Real fEntry12, Real fEntry20, Real fEntry21, Real fEntry22)
Wrapper class which indicates a given angle value is in Degrees.
Class encapsulating a standard 4x4 homogeneous matrix.
Wrapper class which indicates a given angle value is in Radians.
bool hasScale() const
Determines if this matrix involves a scaling.
static const Matrix3 IDENTITY
Matrix3(const Matrix3 &rkMatrix)
void swap(Ogre::SmallVectorImpl< T > &LHS, Ogre::SmallVectorImpl< T > &RHS)
Implement std::swap in terms of SmallVector swap.
static const unsigned int msSvdMaxIterations
void ToAngleAxis(Vector3 &rkAxis, Degree &rfAngle) const
float Real
Software floating point type.
static bool RealEqual(Real a, Real b, Real tolerance=std::numeric_limits< Real >::epsilon())
Compare 2 reals, using tolerance for inaccuracies.
bool operator==(STLAllocator< T, P > const &, STLAllocator< T2, P > const &)
determine equality, can memory from another allocator be released by this allocator,...
Standard 3-dimensional vector.
static const Matrix3 ZERO
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Tue Apr 13 2021 08:53:15