class LM_Matrix

The Matrix class is used to represent a 4x4 transformation matrix. Matrix objects are used to transform points in 3D space.

Member Variables

(none)

Member Functions

void Set(mat)

Set the value of a matrix by copying an existing matrix.

mat (Matrix): another Matrix object whose value you wish to copy
Return value: none

void Multiply(mat)

Multiplies two matrices. The calling object is multiplied by the matrix "mat".

mat (Matrix): a Matrix object to multiply into the calling object
Return value: none

void Transform(vec2)

Apply a matrix transformation to a 2D vector object.

vec2 (Vector2): a vector to transform
Return value: none

void Transform(vec3)

Apply a matrix transformation to a 3D vector object.

vec3 (Vector3): a vector to transform
Return value: none

void Invert()

Invert the matrix.

Return value: none

void Identity()

Set the matrix to be an identity matrix. An identity matrix has no transformation - any vectors transformed by it will retain their original positions. Use this function to reset a matrix before creating a different transformation.

Return value: none

void Translate(dx, dy, dz)

Prepend a translation onto the current matrix.

dx (float): the x value of the translation
dy (float): the y value of the translation
dz (float): the z value of the translation
Return value: none

void Scale(sx, sy, sz)

Prepend a scale onto the current matrix.

sx (float): the x value of the scale
sy (float): the y value of the scale
sz (float): the z value of the scale
Return value: none

void Rotate(axis, angle)

Prepend a rotation onto the current matrix.

axis (int): the angle (in radians) to rotate about (axis constants can be found here)
angle (float): the angle (in radians) to rotate the vector
Return value: none

void Perspective(alpha, near, far, aspect)

Prepend a perspective transform onto the current matrix.

alpha (float): the field of view angle (in radians)
near (float): distance from the virtual eye to the near clipping plane
far (float): distance from the virtual eye to the far clipping plane
aspect (float): aspect ratio of the final viewing plane
Return value: none
 
class LM_Matrix @ Matrix {
  LM_Matrix();
  ~LM_Matrix();
 
  void Set(const LM_Matrix &m2);
 
  real ScaleValue();
 
  void Multiply(const LM_Matrix &m2);
 
  void Transform(LM_Vector2 &pt);
  void Transform(LM_BBox &box);
  void TransformHomo @ Transform(LM_Vector3 &pt);
 
  void Invert();
  void Identity();
  void Translate(real dx, real dy, real dz);
  void Scale(real sx, real sy, real sz);
  void Rotate(int32 axis, real angle);
  void Perspective(real alpha, real nearr, real farr, real aspect);
};