![]() |
OGRE-Next 3.0.0
Object-Oriented Graphics Rendering Engine
|
Class encapsulating a standard 4x4 homogeneous matrix. More...
#include <OgreMatrix4.h>
Public Member Functions | |
Matrix4 () | |
Default constructor. | |
Matrix4 (const Matrix3 &m3x3) | |
Creates a standard 4x4 transformation matrix with a zero translation part from a rotation/scaling 3x3 matrix. | |
Matrix4 (const Quaternion &rot) | |
Creates a standard 4x4 transformation matrix with a zero translation part from a rotation/scaling Quaternion. | |
Matrix4 (const Real *arr) | |
Matrix4 (Real m00, Real m01, Real m02, Real m03, Real m10, Real m11, Real m12, Real m13, Real m20, Real m21, Real m22, Real m23, Real m30, Real m31, Real m32, Real m33) | |
Matrix4 | adjoint () const |
Matrix4 | concatenate (const Matrix4 &m2) const |
Matrix4 | concatenateAffine (const Matrix4 &m2) const |
Concatenate two affine matrices. | |
void | decomposition (Vector3 &position, Vector3 &scale, Quaternion &orientation) const |
Decompose a Matrix4 to orientation / scale / position. | |
Real | determinant () const |
void | extract3x3Matrix (Matrix3 &m3x3) const |
Extracts the rotation / scaling part of the Matrix as a 3x3 matrix. | |
Quaternion | extractQuaternion () const |
Extracts the rotation / scaling part as a quaternion from the Matrix. | |
Vector3 | getTrans () const |
Extracts the translation transformation part of the matrix. | |
bool | hasNegativeScale () const |
Determines if this matrix involves a negative scaling. | |
bool | hasScale () const |
Determines if this matrix involves a scaling. | |
Matrix4 | inverse () const |
Matrix4 | inverseAffine () const |
Returns the inverse of the affine matrix. | |
bool | isAffine () const |
Check whether or not the matrix is affine matrix. | |
void | makeInverseTransform (const Vector3 &position, const Vector3 &scale, const Quaternion &orientation) |
Building an inverse Matrix4 from orientation / scale / position. | |
void | makeTrans (const Vector3 &v) |
Builds a translation matrix. | |
void | makeTrans (Real tx, Real ty, Real tz) |
void | makeTransform (const Vector3 &position, const Vector3 &scale, const Quaternion &orientation) |
Building a Matrix4 from orientation / scale / position. | |
bool | operator!= (const Matrix4 &m2) const |
Tests 2 matrices for inequality. | |
Matrix4 | operator* (const Matrix4 &m2) const |
Matrix concatenation using '*'. | |
Plane | operator* (const Plane &p) const |
Vector3 | operator* (const Vector3 &v) const |
Vector transformation using '*'. | |
Vector4 | operator* (const Vector4 &v) const |
Matrix4 | operator* (Real scalar) const |
Matrix4 | operator+ (const Matrix4 &m2) const |
Matrix addition. | |
Matrix4 | operator- (const Matrix4 &m2) const |
Matrix subtraction. | |
void | operator= (const Matrix3 &mat3) |
Assignment from 3x3 matrix. | |
bool | operator== (const Matrix4 &m2) const |
Tests 2 matrices for equality. | |
Real * | operator[] (size_t iRow) |
const Real * | operator[] (size_t iRow) const |
void | setScale (const Vector3 &v) |
Sets the scale part of the matrix. | |
void | setTrans (const Vector3 &v) |
Sets the translation transformation part of the matrix. | |
void | swap (Matrix4 &other) |
Exchange the contents of this matrix with another. | |
Vector3 | transformAffine (const Vector3 &v) const |
3-D Vector transformation specially for an affine matrix. | |
Vector4 | transformAffine (const Vector4 &v) const |
4-D Vector transformation specially for an affine matrix. | |
Vector3 | transformDirectionAffine (const Vector3 &v) const |
3-D Vector transformation specially for an affine matrix. | |
Matrix4 | transpose () const |
Static Public Member Functions | |
static Matrix4 | getScale (const Vector3 &v) |
Gets a scale matrix. | |
static Matrix4 | getScale (Real s_x, Real s_y, Real s_z) |
Gets a scale matrix - variation for not using a vector. | |
static Matrix4 | getTrans (const Vector3 &v) |
Gets a translation matrix. | |
static Matrix4 | getTrans (Real t_x, Real t_y, Real t_z) |
Gets a translation matrix - variation for not using a vector. | |
Static Public Attributes | |
static const Matrix4 | CLIPSPACE2DTOIMAGESPACE |
Useful little matrix which takes 2D clipspace {-1, 1} to {0,1} and inverts the Y. | |
static const Matrix4 | IDENTITY |
static const Matrix4 | ZERO |
static const Matrix4 | ZEROAFFINE |
Class encapsulating a standard 4x4 homogeneous matrix.
[ m[0][0] m[0][1] m[0][2] m[0][3] ] {x} | m[1][0] m[1][1] m[1][2] m[1][3] | * {y} | m[2][0] m[2][1] m[2][2] m[2][3] | {z} [ m[3][0] m[3][1] m[3][2] m[3][3] ] {1}
|
inline |
Default constructor.
Referenced by adjoint(), concatenate(), concatenateAffine(), getScale(), getScale(), getTrans(), getTrans(), inverse(), inverseAffine(), operator!=(), operator*(), operator*(), operator*(), operator+(), operator-(), operator<<, operator==(), swap(), and transpose().
|
inline |
References m.
|
inline |
Creates a standard 4x4 transformation matrix with a zero translation part from a rotation/scaling 3x3 matrix.
References IDENTITY, and operator=().
|
inline |
Creates a standard 4x4 transformation matrix with a zero translation part from a rotation/scaling Quaternion.
References IDENTITY, operator=(), and Ogre::Quaternion::ToRotationMatrix().
Referenced by operator*().
Concatenate two affine matrices.
References Matrix4(), isAffine(), and m.
void Ogre::Matrix4::decomposition | ( | Vector3 & | position, |
Vector3 & | scale, | ||
Quaternion & | orientation ) const |
Decompose a Matrix4 to orientation / scale / position.
Real Ogre::Matrix4::determinant | ( | ) | const |
Referenced by hasNegativeScale().
|
inline |
Extracts the rotation / scaling part of the Matrix as a 3x3 matrix.
m3x3 | Destination Matrix3 |
References m.
Referenced by extractQuaternion().
|
inline |
Extracts the rotation / scaling part as a quaternion from the Matrix.
References extract3x3Matrix().
Gets a scale matrix.
References Matrix4(), m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
|
inline |
Extracts the translation transformation part of the matrix.
References m.
Gets a translation matrix.
References Matrix4(), m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
|
inline |
Determines if this matrix involves a negative scaling.
References determinant().
|
inline |
Determines if this matrix involves a scaling.
References m, and Ogre::Math::RealEqual().
Matrix4 Ogre::Matrix4::inverse | ( | ) | const |
References Matrix4().
Referenced by operator*().
Matrix4 Ogre::Matrix4::inverseAffine | ( | ) | const |
Returns the inverse of the affine matrix.
References Matrix4().
|
inline |
Check whether or not the matrix is affine matrix.
References m.
Referenced by concatenateAffine(), Ogre::AxisAlignedBox::transformAffine(), transformAffine(), transformAffine(), and transformDirectionAffine().
void Ogre::Matrix4::makeInverseTransform | ( | const Vector3 & | position, |
const Vector3 & | scale, | ||
const Quaternion & | orientation ) |
Building an inverse Matrix4 from orientation / scale / position.
|
inline |
Builds a translation matrix.
References m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
void Ogre::Matrix4::makeTransform | ( | const Vector3 & | position, |
const Vector3 & | scale, | ||
const Quaternion & | orientation ) |
|
inline |
Matrix concatenation using '*'.
References Matrix4(), and concatenate().
Vector transformation using '*'.
References m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
References m, Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector4::y, and Ogre::Vector4::z.
|
inline |
|
inline |
|
inline |
Sets the scale part of the matrix.
References m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
|
inline |
Sets the translation transformation part of the matrix.
References m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
|
inline |
Exchange the contents of this matrix with another.
References Matrix4(), m, and std::swap().
3-D Vector transformation specially for an affine matrix.
References isAffine(), m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
Referenced by Ogre::AxisAlignedBox::transformAffine().
4-D Vector transformation specially for an affine matrix.
References isAffine(), m, Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector4::y, and Ogre::Vector4::z.
3-D Vector transformation specially for an affine matrix.
References isAffine(), m, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.
Real Ogre::Matrix4::_m[16] |
Referenced by Ogre::ArrayMatrix4::createAllFromMatrix4(), Ogre::ArrayMatrix4::getAsMatrix4(), Ogre::SimpleMatrix4::load(), Ogre::SimpleMatrixAf4x3::load(), Ogre::ArrayMatrix4::setAll(), Ogre::ArrayMatrixAf4x3::setAll(), Ogre::ArrayMatrix4::setFromMatrix4(), Ogre::SimpleMatrixAf4x3::store(), and Ogre::SimpleMatrixAf4x3::store4x3().
|
static |
Useful little matrix which takes 2D clipspace {-1, 1} to {0,1} and inverts the Y.
|
static |
Real Ogre::Matrix4::m[4][4] |
Referenced by Matrix4(), Matrix4(), concatenate(), concatenateAffine(), extract3x3Matrix(), getScale(), getScale(), getTrans(), getTrans(), getTrans(), hasScale(), isAffine(), makeTrans(), makeTrans(), operator!=(), operator*(), operator*(), operator*(), operator+(), operator-(), operator=(), operator==(), operator[](), operator[](), setScale(), setTrans(), swap(), transformAffine(), transformAffine(), transformDirectionAffine(), and transpose().
|
static |
|
static |