Irrlicht 3D Engine
irr::core::CMatrix4< T > Class Template Reference

4x4 matrix. Mostly used as transformation matrix for 3d calculations. More...

#include <matrix4.h>

List of all members.

Public Types

Public Member Functions


Detailed Description

template<class T>
class irr::core::CMatrix4< T >

4x4 matrix. Mostly used as transformation matrix for 3d calculations.

The matrix is a D3D style matrix, row major with translations in the 4th row.

Definition at line 45 of file matrix4.h.


Member Enumeration Documentation

template<class T>
enum irr::core::CMatrix4::eConstructor

Constructor Flags.

Enumerator:
EM4CONST_NOTHING 
EM4CONST_COPY 
EM4CONST_IDENTITY 
EM4CONST_TRANSPOSED 
EM4CONST_INVERSE 
EM4CONST_INVERSE_TRANSPOSED 

Definition at line 50 of file matrix4.h.


Constructor & Destructor Documentation

template<class T >
irr::core::CMatrix4< T >::CMatrix4 ( eConstructor  constructor = EM4CONST_IDENTITY) [inline]

Default constructor.

Parameters:
constructorChoose the initialization style

Definition at line 417 of file matrix4.h.

template<class T >
irr::core::CMatrix4< T >::CMatrix4 ( const CMatrix4< T > &  other,
eConstructor  constructor = EM4CONST_COPY 
) [inline]

Copy constructor.

Parameters:
otherOther matrix to copy from
constructorChoose the initialization style

Definition at line 440 of file matrix4.h.

References irr::core::CMatrix4< T >::getInverse(), and irr::core::CMatrix4< T >::getTransposed().


Member Function Documentation

template<class T >
void irr::core::CMatrix4< T >::buildAxisAlignedBillboard ( const core::vector3df camPos,
const core::vector3df center,
const core::vector3df translation,
const core::vector3df axis,
const core::vector3df from 
) [inline]

Builds a matrix which rotates a source vector to a look vector over an arbitrary axis.

Parameters:
camPos,:viewer position in world coo
center,:object position in world-coo and rotation pivot
translation,:object final translation from center
axis,:axis to rotate about
from,:source vector to rotate from
camPos,:viewer position in world coord
center,:object position in world-coord, rotation pivot
translation,:object final translation from center
axis,:axis to rotate about
from,:source vector to rotate from

Definition at line 1990 of file matrix4.h.

References irr::core::vector3d< T >::crossProduct(), irr::core::vector3d< T >::dotProduct(), irr::core::vector3d< T >::normalize(), irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildCameraLookAtMatrixLH ( const vector3df position,
const vector3df target,
const vector3df upVector 
) [inline]
template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildCameraLookAtMatrixRH ( const vector3df position,
const vector3df target,
const vector3df upVector 
) [inline]
template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildNDCToDCMatrix ( const core::rect< s32 > &  area,
f32  zScale 
) [inline]

Builds a matrix which transforms a normalized Device Coordinate to Device Coordinates.

Used to scale <-1,-1><1,1> to viewport, for example from <-1,-1> <1,1> to the viewport <0,0><0,640>

Definition at line 1913 of file matrix4.h.

References irr::core::rect< T >::getHeight(), irr::core::rect< T >::getWidth(), irr::core::rect< T >::LowerRightCorner, and irr::core::rect< T >::UpperLeftCorner.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildProjectionMatrixOrthoLH ( f32  widthOfViewVolume,
f32  heightOfViewVolume,
f32  zNear,
f32  zFar 
) [inline]

Builds a left-handed orthogonal projection matrix.

Definition at line 1604 of file matrix4.h.

References _IRR_DEBUG_BREAK_IF.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildProjectionMatrixOrthoRH ( f32  widthOfViewVolume,
f32  heightOfViewVolume,
f32  zNear,
f32  zFar 
) [inline]

Builds a right-handed orthogonal projection matrix.

Definition at line 1639 of file matrix4.h.

References _IRR_DEBUG_BREAK_IF.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildProjectionMatrixPerspectiveFovInfinityLH ( f32  fieldOfViewRadians,
f32  aspectRatio,
f32  zNear,
f32  epsilon = 0 
) [inline]

Builds a left-handed perspective projection matrix based on a field of view, with far plane at infinity.

Definition at line 1568 of file matrix4.h.

References _IRR_DEBUG_BREAK_IF, and irr::core::reciprocal().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildProjectionMatrixPerspectiveFovLH ( f32  fieldOfViewRadians,
f32  aspectRatio,
f32  zNear,
f32  zFar 
) [inline]

Builds a left-handed perspective projection matrix based on a field of view.

Definition at line 1531 of file matrix4.h.

References _IRR_DEBUG_BREAK_IF, and irr::core::reciprocal().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildProjectionMatrixPerspectiveFovRH ( f32  fieldOfViewRadians,
f32  aspectRatio,
f32  zNear,
f32  zFar 
) [inline]

Builds a right-handed perspective projection matrix based on a field of view.

Definition at line 1492 of file matrix4.h.

References _IRR_DEBUG_BREAK_IF, and irr::core::reciprocal().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildProjectionMatrixPerspectiveLH ( f32  widthOfViewVolume,
f32  heightOfViewVolume,
f32  zNear,
f32  zFar 
) [inline]

Builds a left-handed perspective projection matrix.

Definition at line 1709 of file matrix4.h.

References _IRR_DEBUG_BREAK_IF.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildProjectionMatrixPerspectiveRH ( f32  widthOfViewVolume,
f32  heightOfViewVolume,
f32  zNear,
f32  zFar 
) [inline]

Builds a right-handed perspective projection matrix.

Definition at line 1674 of file matrix4.h.

References _IRR_DEBUG_BREAK_IF.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildRotateFromTo ( const core::vector3df from,
const core::vector3df to 
) [inline]

Builds a matrix that rotates from one vector to another.

Parameters:
from,:vector to rotate from
to,:vector to rotate to
from,:vector to rotate from
to,:vector to rotate to

http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToMatrix/index.htm

Definition at line 1934 of file matrix4.h.

References irr::core::vector3d< T >::crossProduct(), irr::core::vector3d< T >::dotProduct(), irr::core::vector3d< T >::normalize(), irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildShadowMatrix ( const core::vector3df light,
core::plane3df  plane,
f32  point = 1.0f 
) [inline]

Builds a matrix that flattens geometry into a plane.

Parameters:
light,:light source
plane,:plane into which the geometry if flattened into
point,:value between 0 and 1, describing the light source. If this is 1, it is a point light, if it is 0, it is a directional light.

Definition at line 1743 of file matrix4.h.

References irr::core::plane3d< T >::D, irr::core::vector3d< T >::dotProduct(), irr::core::plane3d< T >::Normal, irr::core::vector3d< T >::normalize(), irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::buildTextureTransform ( f32  rotateRad,
const core::vector2df rotatecenter,
const core::vector2df translate,
const core::vector2df scale 
) [inline]

Set to a texture transformation matrix with the given parameters.

Generate texture coordinates as linear functions so that: u = Ux*x + Uy*y + Uz*z + Uw v = Vx*x + Vy*y + Vz*z + Vw The matrix M for this case is: Ux Vx 0 0 Uy Vy 0 0 Uz Vz 0 0 Uw Vw 0 0

Definition at line 2065 of file matrix4.h.

References irr::core::vector2d< T >::X, and irr::core::vector2d< T >::Y.

template<class T >
bool irr::core::CMatrix4< T >::equals ( const core::CMatrix4< T > &  other,
const T  tolerance = (T)ROUNDING_ERROR_f64 
) const [inline]

Compare two matrices using the equal method.

Definition at line 2210 of file matrix4.h.

References irr::core::equals().

template<class T >
bool irr::core::CMatrix4< T >::getDefinitelyIdentityMatrix ( ) const [inline]

Gets if the matrix is definitely identity matrix.

Definition at line 2198 of file matrix4.h.

template<class T >
bool irr::core::CMatrix4< T >::getInverse ( CMatrix4< T > &  out) const [inline]

Gets the inversed matrix of this one.

Parameters:
out,:where result matrix is written to.
Returns:
Returns false if there is no inverse matrix.

Calculates the inverse of this Matrix The inverse is calculated using Cramers rule. If no inverse exists then 'false' is returned.

Definition at line 1307 of file matrix4.h.

References FLT_MIN, irr::core::iszero(), and irr::core::reciprocal().

Referenced by irr::core::CMatrix4< T >::CMatrix4().

template<class T >
bool irr::core::CMatrix4< T >::getInversePrimitive ( CMatrix4< T > &  out) const [inline]

Inverts a primitive matrix which only contains a translation and a rotation.

Parameters:
out,:where result matrix is written to.

Inverts a primitive matrix which only contains a translation and a rotation

Parameters:
out,:where result matrix is written to.

Definition at line 1393 of file matrix4.h.

template<class T >
core::vector3d< T > irr::core::CMatrix4< T >::getRotationDegrees ( ) const [inline]

Returns the rotation, as set by setRotation().

Returns a rotation that is equivalent to that set by setRotationDegrees().

This code was orginally written by by Chev.

This code was sent in by Chev. Note that it does not necessarily return the *same* Euler angles as those set by setRotationDegrees(), but the rotation will be equivalent, i.e. will have the same result when used to rotate a vector or node.

Definition at line 860 of file matrix4.h.

References irr::core::clamp(), irr::core::iszero(), irr::core::RADTODEG64, irr::core::reciprocal(), irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
vector3d< T > irr::core::CMatrix4< T >::getScale ( ) const [inline]

Get Scale.

Returns the absolute values of the scales of the matrix.

Note that this returns the absolute (positive) values unless only scale is set. Unfortunately it does not appear to be possible to extract any original negative values. The best that we could do would be to arbitrarily make one scale negative if one or three of them were negative. FIXME - return the original values.

Definition at line 795 of file matrix4.h.

References irr::core::iszero().

template<class T >
vector3d< T > irr::core::CMatrix4< T >::getTranslation ( ) const [inline]

Gets the current translation.

Definition at line 744 of file matrix4.h.

Referenced by irr::scene::ISceneNode::getAbsolutePosition().

template<class T >
CMatrix4< T > irr::core::CMatrix4< T >::getTransposed ( ) const [inline]

Gets transposed matrix.

Definition at line 1874 of file matrix4.h.

Referenced by irr::core::CMatrix4< T >::CMatrix4().

template<class T >
void irr::core::CMatrix4< T >::getTransposed ( CMatrix4< T > &  dest) const [inline]

Gets transposed matrix.

Definition at line 1884 of file matrix4.h.

template<class T >
CMatrix4< T > irr::core::CMatrix4< T >::interpolate ( const core::CMatrix4< T > &  b,
f32  time 
) const [inline]

Creates a new matrix as interpolated matrix from two other ones.

Parameters:
b,:other matrix to interpolate with
time,:Must be a value between 0 and 1.

Definition at line 1857 of file matrix4.h.

template<class T >
void irr::core::CMatrix4< T >::inverseRotateVect ( vector3df vect) const [inline]

Rotate a vector by the inverse of the rotation part of this matrix.

Definition at line 1128 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
void irr::core::CMatrix4< T >::inverseTranslateVect ( vector3df vect) const [inline]

Translate a vector by the inverse of the translation part of this matrix.

Definition at line 1290 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
bool irr::core::CMatrix4< T >::isIdentity ( ) const [inline]

Returns true if the matrix is the identity matrix.

Definition at line 1000 of file matrix4.h.

References irr::core::equals().

Referenced by irr::core::CMatrix4< T >::operator*(), irr::core::CMatrix4< T >::operator*=(), and irr::core::CMatrix4< T >::setbyproduct().

template<class T >
bool irr::core::CMatrix4< T >::isIdentity_integer_base ( ) const [inline]

Returns true if the matrix is the identity matrix.

Definition at line 1067 of file matrix4.h.

References F32_VALUE_1, and irr::core::IR().

template<class T >
bool irr::core::CMatrix4< T >::isOrthogonal ( ) const [inline]

Returns true if the matrix is orthogonal.

Definition at line 1038 of file matrix4.h.

References irr::core::iszero().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::makeIdentity ( ) [inline]

Set matrix to identity.

Definition at line 984 of file matrix4.h.

template<class T >
bool irr::core::CMatrix4< T >::makeInverse ( ) [inline]

Calculates inverse of matrix. Slow.

Returns:
Returns false if there is no inverse matrix.

Definition at line 1424 of file matrix4.h.

template<class T >
void irr::core::CMatrix4< T >::multiplyWith1x4Matrix ( T *  matrix) const [inline]

Multiplies this matrix by a 1x4 matrix.

Definition at line 1268 of file matrix4.h.

template<class T >
bool irr::core::CMatrix4< T >::operator!= ( const CMatrix4< T > &  other) const [inline]

Returns true if other matrix is not equal to this matrix.

Definition at line 1484 of file matrix4.h.

template<class T>
T& irr::core::CMatrix4< T >::operator() ( const s32  row,
const s32  col 
) [inline]

Simple operator for directly accessing every element of the matrix.

Definition at line 69 of file matrix4.h.

template<class T>
const T& irr::core::CMatrix4< T >::operator() ( const s32  row,
const s32  col 
) const [inline]

Simple operator for directly accessing every element of the matrix.

Definition at line 78 of file matrix4.h.

template<class T >
CMatrix4< T > irr::core::CMatrix4< T >::operator* ( const CMatrix4< T > &  other) const [inline]

Multiply by another matrix.

multiply by another matrix

Calculate other*this

Definition at line 705 of file matrix4.h.

References irr::core::CMatrix4< T >::isIdentity().

template<class T >
CMatrix4< T > irr::core::CMatrix4< T >::operator* ( const T &  scalar) const [inline]

Multiply by scalar.

Definition at line 576 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::operator*= ( const CMatrix4< T > &  other) [inline]

Multiply by another matrix.

Calculate and return other*this

Definition at line 626 of file matrix4.h.

References irr::core::CMatrix4< T >::isIdentity().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::operator*= ( const T &  scalar) [inline]

Multiply by scalar.

Definition at line 602 of file matrix4.h.

template<class T >
CMatrix4< T > irr::core::CMatrix4< T >::operator+ ( const CMatrix4< T > &  other) const [inline]

Add another matrix.

Definition at line 476 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::operator+= ( const CMatrix4< T > &  other) [inline]

Add another matrix.

Definition at line 502 of file matrix4.h.

template<class T >
CMatrix4< T > irr::core::CMatrix4< T >::operator- ( const CMatrix4< T > &  other) const [inline]

Subtract another matrix.

Definition at line 526 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::operator-= ( const CMatrix4< T > &  other) [inline]

Subtract another matrix.

Definition at line 552 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::operator= ( const CMatrix4< T > &  other) [inline]

Sets this matrix equal to the other matrix.

Definition at line 1443 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::operator= ( const T &  scalar) [inline]

Sets all elements of this matrix to the value.

Definition at line 1456 of file matrix4.h.

template<class T >
bool irr::core::CMatrix4< T >::operator== ( const CMatrix4< T > &  other) const [inline]

Returns true if other matrix is equal to this matrix.

Definition at line 1469 of file matrix4.h.

template<class T>
T& irr::core::CMatrix4< T >::operator[] ( u32  index) [inline]

Simple operator for linearly accessing every element of the matrix.

Definition at line 81 of file matrix4.h.

template<class T>
const T& irr::core::CMatrix4< T >::operator[] ( u32  index) const [inline]

Simple operator for linearly accessing every element of the matrix.

Definition at line 90 of file matrix4.h.

template<class T>
const T* irr::core::CMatrix4< T >::pointer ( ) const [inline]

Returns pointer to internal array.

Definition at line 99 of file matrix4.h.

template<class T>
T* irr::core::CMatrix4< T >::pointer ( ) [inline]

Definition at line 100 of file matrix4.h.

template<class T >
void irr::core::CMatrix4< T >::rotateVect ( vector3df vect) const [inline]

Rotate a vector by the rotation part of this matrix.

Definition at line 1101 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
void irr::core::CMatrix4< T >::rotateVect ( core::vector3df out,
const core::vector3df in 
) const [inline]

An alternate transform vector method, writing into a second vector.

Definition at line 1111 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
void irr::core::CMatrix4< T >::rotateVect ( T *  out,
const core::vector3df in 
) const [inline]

An alternate transform vector method, writing into an array of 3 floats.

Definition at line 1120 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setbyproduct ( const CMatrix4< T > &  other_a,
const CMatrix4< T > &  other_b 
) [inline]

set this matrix to the product of two matrices

multiply by another matrix

Calculate b*a

Definition at line 688 of file matrix4.h.

References irr::core::CMatrix4< T >::isIdentity().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setbyproduct_nocheck ( const CMatrix4< T > &  other_a,
const CMatrix4< T > &  other_b 
) [inline]

Set this matrix to the product of two matrices.

multiply by another matrix

Calculate b*a, no optimization used, use it if you know you never have a identity matrix

Definition at line 653 of file matrix4.h.

template<class T >
void irr::core::CMatrix4< T >::setDefinitelyIdentityMatrix ( bool  isDefinitelyIdentityMatrix) [inline]

Sets if the matrix is definitely identity matrix.

Definition at line 2188 of file matrix4.h.

Referenced by irr::core::quaternion::getMatrix(), and irr::core::quaternion::getMatrix_transposed().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setInverseRotationDegrees ( const vector3d< T > &  rotation) [inline]

Make an inverted rotation matrix from Euler angles.

The 4th row and column are unmodified.

Definition at line 819 of file matrix4.h.

References irr::core::DEGTORAD.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setInverseRotationRadians ( const vector3d< T > &  rotation) [inline]

Make an inverted rotation matrix from Euler angles.

Sets matrix to rotation matrix of inverse angles given as parameters.

The 4th row and column are unmodified.

Definition at line 917 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setInverseTranslation ( const vector3d< T > &  translation) [inline]

Set the inverse translation of the current matrix. Will erase any previous values.

Definition at line 763 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setM ( const T *  data) [inline]

Sets all matrix data members at once.

Definition at line 2175 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setRotationAxisRadians ( const T &  angle,
const vector3d< T > &  axis 
) [inline]

Make a rotation matrix from angle and axis, assuming left handed rotation.

Sets matrix to rotation matrix defined by axis and angle, assuming LH rotation.

The 4th row and column are unmodified.

Definition at line 948 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
void irr::core::CMatrix4< T >::setRotationCenter ( const core::vector3df center,
const core::vector3df translate 
) [inline]

Builds a combined matrix which translates to a center before rotation and translates from origin afterwards.

Builds a combined matrix which translate to a center before rotation and translate afterwards.

Parameters:
centerPosition to rotate around
translateTranslation applied after the rotation

Definition at line 2041 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

Referenced by irr::core::quaternion::getMatrixCenter().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setRotationDegrees ( const vector3d< T > &  rotation) [inline]

Make a rotation matrix from Euler angles. The 4th row and column are unmodified.

Definition at line 813 of file matrix4.h.

References irr::core::DEGTORAD.

Referenced by irr::scene::ISceneNode::getRelativeTransformation().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setRotationRadians ( const vector3d< T > &  rotation) [inline]

Make a rotation matrix from Euler angles. The 4th row and column are unmodified.

Definition at line 825 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setScale ( const vector3d< T > &  scale) [inline]
template<class T>
CMatrix4<T>& irr::core::CMatrix4< T >::setScale ( const T  scale) [inline]

Set Scale.

Definition at line 196 of file matrix4.h.

References irr::core::CMatrix4< T >::setScale().

Referenced by irr::core::CMatrix4< T >::setScale().

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setTextureRotationCenter ( f32  radAngle) [inline]

Set texture transformation rotation.

Rotate about z axis, recenter at (0.5,0.5). Doesn't clear other elements than those affected

Parameters:
radAngleAngle in radians
Returns:
Altered matrix

Definition at line 2101 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setTextureScale ( f32  sx,
f32  sy 
) [inline]

Set texture transformation scale.

Doesn't clear other elements than those affected.

Parameters:
sxScale factor on x axis
syScale factor on y axis
Returns:
Altered matrix.

Definition at line 2147 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setTextureScaleCenter ( f32  sx,
f32  sy 
) [inline]

Set texture transformation scale, and recenter at (0.5,0.5)

Doesn't clear other elements than those affected.

Parameters:
sxScale factor on x axis
syScale factor on y axis
Returns:
Altered matrix.

Definition at line 2159 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setTextureTranslate ( f32  x,
f32  y 
) [inline]

Set texture transformation translation.

Doesn't clear other elements than those affected.

Parameters:
xOffset on x axis
yOffset on y axis
Returns:
Altered matrix

Definition at line 2122 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setTextureTranslateTransposed ( f32  x,
f32  y 
) [inline]

Set texture transformation translation, using a transposed representation.

Doesn't clear other elements than those affected.

Parameters:
xOffset on x axis
yOffset on y axis
Returns:
Altered matrix

Definition at line 2135 of file matrix4.h.

template<class T >
CMatrix4< T > & irr::core::CMatrix4< T >::setTranslation ( const vector3d< T > &  translation) [inline]

Set the translation of the current matrix. Will erase any previous values.

Definition at line 751 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

Referenced by irr::scene::ISceneNode::getRelativeTransformation().

template<class T >
void irr::core::CMatrix4< T >::transformBox ( core::aabbox3d< f32 > &  box) const [inline]

Transforms a axis aligned bounding box.

The result box of this operation may not be accurate at all. For correct results, use transformBoxEx()

Definition at line 1203 of file matrix4.h.

References irr::core::aabbox3d< T >::MaxEdge, irr::core::aabbox3d< T >::MinEdge, and irr::core::aabbox3d< T >::repair().

template<class T >
void irr::core::CMatrix4< T >::transformBoxEx ( core::aabbox3d< f32 > &  box) const [inline]

Transforms a axis aligned bounding box.

Transforms a axis aligned bounding box more accurately than transformBox()

The result box of this operation should by accurate, but this operation is slower than transformBox().

Definition at line 1217 of file matrix4.h.

References irr::core::aabbox3d< T >::MaxEdge, irr::core::aabbox3d< T >::MinEdge, irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

Referenced by irr::scene::ISceneNode::getTransformedBoundingBox().

template<class T >
void irr::core::CMatrix4< T >::transformPlane ( core::plane3d< f32 > &  plane) const [inline]
template<class T >
void irr::core::CMatrix4< T >::transformPlane ( const core::plane3d< f32 > &  in,
core::plane3d< f32 > &  out 
) const [inline]

Transforms a plane by this matrix.

Definition at line 1195 of file matrix4.h.

template<class T >
void irr::core::CMatrix4< T >::transformVec3 ( T *  out,
const T *  in 
) const [inline]

An alternate transform vector method, reading from and writing to an array of 3 floats.

Definition at line 1169 of file matrix4.h.

template<class T >
void irr::core::CMatrix4< T >::transformVect ( vector3df vect) const [inline]
template<class T >
void irr::core::CMatrix4< T >::transformVect ( vector3df out,
const vector3df in 
) const [inline]

Transforms input vector by this matrix and stores result in output vector.

Definition at line 1151 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
void irr::core::CMatrix4< T >::transformVect ( T *  out,
const core::vector3df in 
) const [inline]

An alternate transform vector method, writing into an array of 4 floats.

Definition at line 1160 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

template<class T >
void irr::core::CMatrix4< T >::translateVect ( vector3df vect) const [inline]

Translate a vector by the translation part of this matrix.

Definition at line 1298 of file matrix4.h.

References irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.


The documentation for this class was generated from the following file: