Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Opcode::Matrix3x3 Class Reference

#include <Opcode.h>

Public Member Functions

inline_ Matrix3x3 ()
 Empty constructor. More...
 
inline_ Matrix3x3 (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22)
 Constructor from 9 values. More...
 
inline_ Matrix3x3 (const Matrix3x3 &mat)
 Copy constructor. More...
 
inline_ ~Matrix3x3 ()
 Destructor. More...
 
inline_ void Set (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22)
 Assign values. More...
 
inline_ void SetScale (const Point &p)
 Sets the scale from a Point. The point is put on the diagonal. More...
 
inline_ void SetScale (float sx, float sy, float sz)
 Sets the scale from floats. Values are put on the diagonal. More...
 
inline_ void Scale (const Point &p)
 Scales from a Point. Each row is multiplied by a component. More...
 
inline_ void Scale (float sx, float sy, float sz)
 Scales from floats. Each row is multiplied by a value. More...
 
inline_ void Copy (const Matrix3x3 &source)
 Copy from a Matrix3x3. More...
 
inline_ void GetRow (const udword r, Point &p) const
 Returns a row. More...
 
inline_ const PointGetRow (const udword r) const
 Returns a row. More...
 
inline_ PointGetRow (const udword r)
 Returns a row. More...
 
inline_ void SetRow (const udword r, const Point &p)
 Sets a row. More...
 
inline_ void GetCol (const udword c, Point &p) const
 Returns a column. More...
 
inline_ void SetCol (const udword c, const Point &p)
 Sets a column. More...
 
inline_ float Trace () const
 Computes the trace. The trace is the sum of the 3 diagonal components. More...
 
inline_ void Zero ()
 Clears the matrix. More...
 
inline_ void Identity ()
 Sets the identity matrix. More...
 
inline_ bool IsIdentity () const
 Checks for identity. More...
 
inline_ BOOL IsValid () const
 Checks matrix validity. More...
 
inline_ void SkewSymmetric (const Point &a)
 
inline_ void Neg ()
 Negates the matrix. More...
 
inline_ void Neg (const Matrix3x3 &mat)
 Neg from another matrix. More...
 
inline_ void Add (const Matrix3x3 &mat)
 Add another matrix. More...
 
inline_ void Sub (const Matrix3x3 &mat)
 Sub another matrix. More...
 
inline_ void Mac (const Matrix3x3 &a, const Matrix3x3 &b, float s)
 Mac. More...
 
inline_ void Mac (const Matrix3x3 &a, float s)
 Mac. More...
 
inline_ void Mult (const Matrix3x3 &a, float s)
 this = A * s More...
 
inline_ void Add (const Matrix3x3 &a, const Matrix3x3 &b)
 
inline_ void Sub (const Matrix3x3 &a, const Matrix3x3 &b)
 
inline_ void Mult (const Matrix3x3 &a, const Matrix3x3 &b)
 this = a * b More...
 
inline_ void MultAtB (const Matrix3x3 &a, const Matrix3x3 &b)
 this = transpose(a) * b More...
 
inline_ void MultABt (const Matrix3x3 &a, const Matrix3x3 &b)
 this = a * transpose(b) More...
 
Matrix3x3FromTo (const Point &from, const Point &to)
 Makes a rotation matrix mapping vector "from" to vector "to". More...
 
void RotX (float angle)
 
void RotY (float angle)
 
void RotZ (float angle)
 
void RotYX (float y, float x)
 
Matrix3x3Rot (float angle, const Point &axis)
 Make a rotation matrix about an arbitrary axis. More...
 
void Transpose ()
 Transpose the matrix. More...
 
void Transpose (const Matrix3x3 &a)
 this = Transpose(a) More...
 
float Determinant () const
 Compute the determinant of the matrix. We use the rule of Sarrus. More...
 
Matrix3x3Invert ()
 Invert the matrix. Determinant must be different from zero, else matrix can't be inverted. More...
 
Matrix3x3Normalize ()
 
Matrix3x3Exp (const Matrix3x3 &a)
 this = exp(a) More...
 
void FromQuat (const Quat &q)
 
void FromQuatL2 (const Quat &q, float l2)
 
inline_ Matrix3x3 operator+ (const Matrix3x3 &mat) const
 Operator for Matrix3x3 Plus = Matrix3x3 + Matrix3x3;. More...
 
inline_ Matrix3x3 operator- (const Matrix3x3 &mat) const
 Operator for Matrix3x3 Minus = Matrix3x3 - Matrix3x3;. More...
 
inline_ Matrix3x3 operator* (const Matrix3x3 &mat) const
 Operator for Matrix3x3 Mul = Matrix3x3 * Matrix3x3;. More...
 
inline_ Point operator* (const Point &v) const
 Operator for Point Mul = Matrix3x3 * Point;. More...
 
inline_ Matrix3x3 operator* (float s) const
 Operator for Matrix3x3 Mul = Matrix3x3 * float;. More...
 
inline_ Matrix3x3 operator/ (float s) const
 Operator for Matrix3x3 Div = Matrix3x3 / float;. More...
 
inline_ Matrix3x3operator+= (const Matrix3x3 &mat)
 Operator for Matrix3x3 += Matrix3x3. More...
 
inline_ Matrix3x3operator-= (const Matrix3x3 &mat)
 Operator for Matrix3x3 -= Matrix3x3. More...
 
inline_ Matrix3x3operator*= (const Matrix3x3 &mat)
 Operator for Matrix3x3 *= Matrix3x3. More...
 
inline_ Matrix3x3operator*= (float s)
 Operator for Matrix3x3 *= float. More...
 
inline_ Matrix3x3operator/= (float s)
 Operator for Matrix3x3 /= float. More...
 
 operator Matrix4x4 () const
 Cast a Matrix3x3 to a Matrix4x4. More...
 
 operator Quat () const
 Cast a Matrix3x3 to a Quat. More...
 
inline_ const Pointoperator[] (int row) const
 
inline_ Pointoperator[] (int row)
 

Public Attributes

float m [3][3]
 

Friends

inline_ friend Matrix3x3 operator* (float s, const Matrix3x3 &mat)
 Operator for Matrix3x3 Mul = float * Matrix3x3;. More...
 
inline_ friend Matrix3x3 operator/ (float s, const Matrix3x3 &mat)
 Operator for Matrix3x3 Div = float / Matrix3x3;. More...
 

Detailed Description

Definition at line 21 of file Opcode.h.

Constructor & Destructor Documentation

inline_ Opcode::Matrix3x3::Matrix3x3 ( )
inline

Empty constructor.

Definition at line 25 of file Opcode.h.

39 {
inline_ Opcode::Matrix3x3::Matrix3x3 ( float  m00,
float  m01,
float  m02,
float  m10,
float  m11,
float  m12,
float  m20,
float  m21,
float  m22 
)
inline

Constructor from 9 values.

Definition at line 27 of file Opcode.h.

39  {
inline_ Opcode::Matrix3x3::Matrix3x3 ( const Matrix3x3 mat)
inline

Copy constructor.

Definition at line 34 of file Opcode.h.

39 {
inline_ Opcode::Matrix3x3::~Matrix3x3 ( )
inline

Destructor.

Definition at line 36 of file Opcode.h.

39 {

Member Function Documentation

inline_ void Opcode::Matrix3x3::Add ( const Matrix3x3 mat)
inline

Add another matrix.

Definition at line 160 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Add ( const Matrix3x3 a,
const Matrix3x3 b 
)
inline

Definition at line 205 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Copy ( const Matrix3x3 source)
inline

Copy from a Matrix3x3.

Definition at line 69 of file Opcode.h.

float Opcode::Matrix3x3::Determinant ( ) const
inline

Compute the determinant of the matrix. We use the rule of Sarrus.

Definition at line 304 of file Opcode.h.

Matrix3x3& Opcode::Matrix3x3::Exp ( const Matrix3x3 a)

this = exp(a)

void Opcode::Matrix3x3::FromQuat ( const Quat &  q)
void Opcode::Matrix3x3::FromQuatL2 ( const Quat &  q,
float  l2 
)
Matrix3x3& Opcode::Matrix3x3::FromTo ( const Point from,
const Point to 
)

Makes a rotation matrix mapping vector "from" to vector "to".

inline_ void Opcode::Matrix3x3::GetCol ( const udword  c,
Point p 
) const
inline

Returns a column.

Definition at line 81 of file Opcode.h.

inline_ void Opcode::Matrix3x3::GetRow ( const udword  r,
Point p 
) const
inline

Returns a row.

Definition at line 73 of file Opcode.h.

inline_ const Point& Opcode::Matrix3x3::GetRow ( const udword  r) const
inline

Returns a row.

Definition at line 75 of file Opcode.h.

inline_ Point& Opcode::Matrix3x3::GetRow ( const udword  r)
inline

Returns a row.

Definition at line 77 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Identity ( )
inline

Sets the identity matrix.

Definition at line 90 of file Opcode.h.

Matrix3x3& Opcode::Matrix3x3::Invert ( )
inline

Invert the matrix. Determinant must be different from zero, else matrix can't be inverted.

Definition at line 318 of file Opcode.h.

inline_ bool Opcode::Matrix3x3::IsIdentity ( ) const
inline

Checks for identity.

Definition at line 92 of file Opcode.h.

inline_ BOOL Opcode::Matrix3x3::IsValid ( ) const
inline

Checks matrix validity.

Definition at line 110 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Mac ( const Matrix3x3 a,
const Matrix3x3 b,
float  s 
)
inline

Mac.

Definition at line 175 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Mac ( const Matrix3x3 a,
float  s 
)
inline

Mac.

Definition at line 190 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Mult ( const Matrix3x3 a,
float  s 
)
inline

this = A * s

Definition at line 198 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Mult ( const Matrix3x3 a,
const Matrix3x3 b 
)
inline

this = a * b

Definition at line 220 of file Opcode.h.

inline_ void Opcode::Matrix3x3::MultABt ( const Matrix3x3 a,
const Matrix3x3 b 
)
inline

this = a * transpose(b)

Definition at line 248 of file Opcode.h.

inline_ void Opcode::Matrix3x3::MultAtB ( const Matrix3x3 a,
const Matrix3x3 b 
)
inline

this = transpose(a) * b

Definition at line 234 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Neg ( )
inline

Negates the matrix.

Definition at line 144 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Neg ( const Matrix3x3 mat)
inline

Neg from another matrix.

Definition at line 152 of file Opcode.h.

Matrix3x3& Opcode::Matrix3x3::Normalize ( )
Matrix3x3::operator Matrix4x4 ( ) const

Cast a Matrix3x3 to a Matrix4x4.

Definition at line 42 of file IceMatrix3x3.cpp.

References f.

43 {
44  return Matrix4x4(
45  m[0][0], m[0][1], m[0][2], 0.0f,
46  m[1][0], m[1][1], m[1][2], 0.0f,
47  m[2][0], m[2][1], m[2][2], 0.0f,
48  0.0f, 0.0f, 0.0f, 1.0f);
49 }
Opcode::Matrix3x3::operator Quat ( ) const

Cast a Matrix3x3 to a Quat.

inline_ Matrix3x3 Opcode::Matrix3x3::operator* ( const Matrix3x3 mat) const
inline

Operator for Matrix3x3 Mul = Matrix3x3 * Matrix3x3;.

Definition at line 367 of file Opcode.h.

inline_ Point Opcode::Matrix3x3::operator* ( const Point v) const
inline

Operator for Point Mul = Matrix3x3 * Point;.

Definition at line 384 of file Opcode.h.

inline_ Matrix3x3 Opcode::Matrix3x3::operator* ( float  s) const
inline

Operator for Matrix3x3 Mul = Matrix3x3 * float;.

Definition at line 387 of file Opcode.h.

inline_ Matrix3x3& Opcode::Matrix3x3::operator*= ( const Matrix3x3 mat)
inline

Operator for Matrix3x3 *= Matrix3x3.

Definition at line 442 of file Opcode.h.

inline_ Matrix3x3& Opcode::Matrix3x3::operator*= ( float  s)
inline

Operator for Matrix3x3 *= float.

Definition at line 464 of file Opcode.h.

inline_ Matrix3x3 Opcode::Matrix3x3::operator+ ( const Matrix3x3 mat) const
inline

Operator for Matrix3x3 Plus = Matrix3x3 + Matrix3x3;.

Definition at line 349 of file Opcode.h.

inline_ Matrix3x3& Opcode::Matrix3x3::operator+= ( const Matrix3x3 mat)
inline

Operator for Matrix3x3 += Matrix3x3.

Definition at line 424 of file Opcode.h.

inline_ Matrix3x3 Opcode::Matrix3x3::operator- ( const Matrix3x3 mat) const
inline

Operator for Matrix3x3 Minus = Matrix3x3 - Matrix3x3;.

Definition at line 358 of file Opcode.h.

inline_ Matrix3x3& Opcode::Matrix3x3::operator-= ( const Matrix3x3 mat)
inline

Operator for Matrix3x3 -= Matrix3x3.

Definition at line 433 of file Opcode.h.

inline_ Matrix3x3 Opcode::Matrix3x3::operator/ ( float  s) const
inline

Operator for Matrix3x3 Div = Matrix3x3 / float;.

Definition at line 405 of file Opcode.h.

inline_ Matrix3x3& Opcode::Matrix3x3::operator/= ( float  s)
inline

Operator for Matrix3x3 /= float.

Definition at line 473 of file Opcode.h.

inline_ const Point& Opcode::Matrix3x3::operator[] ( int  row) const
inline

Definition at line 488 of file Opcode.h.

inline_ Point& Opcode::Matrix3x3::operator[] ( int  row)
inline

Definition at line 489 of file Opcode.h.

Matrix3x3& Opcode::Matrix3x3::Rot ( float  angle,
const Point axis 
)

Make a rotation matrix about an arbitrary axis.

void Opcode::Matrix3x3::RotX ( float  angle)

Set a rotation matrix around the X axis. 1 0 0 RX = 0 cx sx 0 -sx cx

void Opcode::Matrix3x3::RotY ( float  angle)

Set a rotation matrix around the Y axis. cy 0 -sy RY = 0 1 0 sy 0 cy

void Opcode::Matrix3x3::RotYX ( float  y,
float  x 
)
    cy      sx.sy       -sy.cx

RY.RX 0 cx sx sy -sx.cy cx.cy

void Opcode::Matrix3x3::RotZ ( float  angle)

Set a rotation matrix around the Z axis. cz sz 0 RZ = -sz cz 0 0 0 1

inline_ void Opcode::Matrix3x3::Scale ( const Point p)
inline

Scales from a Point. Each row is multiplied by a component.

Definition at line 53 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Scale ( float  sx,
float  sy,
float  sz 
)
inline

Scales from floats. Each row is multiplied by a value.

Definition at line 61 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Set ( float  m00,
float  m01,
float  m02,
float  m10,
float  m11,
float  m12,
float  m20,
float  m21,
float  m22 
)
inline

Assign values.

Definition at line 39 of file Opcode.h.

39  {
40 
41 
42 
43 
44  #include "Ice/IceAxes.h"
inline_ void Opcode::Matrix3x3::SetCol ( const udword  c,
const Point p 
)
inline

Sets a column.

Definition at line 83 of file Opcode.h.

inline_ void Opcode::Matrix3x3::SetRow ( const udword  r,
const Point p 
)
inline

Sets a row.

Definition at line 79 of file Opcode.h.

inline_ void Opcode::Matrix3x3::SetScale ( const Point p)
inline

Sets the scale from a Point. The point is put on the diagonal.

Definition at line 47 of file Opcode.h.

inline_ void Opcode::Matrix3x3::SetScale ( float  sx,
float  sy,
float  sz 
)
inline

Sets the scale from floats. Values are put on the diagonal.

Definition at line 50 of file Opcode.h.

inline_ void Opcode::Matrix3x3::SkewSymmetric ( const Point a)
inline

Makes a skew-symmetric matrix (a.k.a. Star(*) Matrix) [ 0.0 -a.z a.y ] [ a.z 0.0 -a.x ] [ -a.y a.x 0.0 ] This is also called a "cross matrix" since for any vectors A and B, A^B = Skew(A) * B = - B * Skew(A);

Definition at line 128 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Sub ( const Matrix3x3 mat)
inline

Sub another matrix.

Definition at line 168 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Sub ( const Matrix3x3 a,
const Matrix3x3 b 
)
inline

Definition at line 212 of file Opcode.h.

inline_ float Opcode::Matrix3x3::Trace ( ) const
inline

Computes the trace. The trace is the sum of the 3 diagonal components.

Definition at line 86 of file Opcode.h.

void Opcode::Matrix3x3::Transpose ( )
inline

Transpose the matrix.

Definition at line 288 of file Opcode.h.

void Opcode::Matrix3x3::Transpose ( const Matrix3x3 a)
inline

this = Transpose(a)

Definition at line 296 of file Opcode.h.

inline_ void Opcode::Matrix3x3::Zero ( )
inline

Clears the matrix.

Definition at line 88 of file Opcode.h.

Friends And Related Function Documentation

inline_ friend Matrix3x3 operator* ( float  s,
const Matrix3x3 mat 
)
friend

Operator for Matrix3x3 Mul = float * Matrix3x3;.

Definition at line 396 of file Opcode.h.

inline_ friend Matrix3x3 operator/ ( float  s,
const Matrix3x3 mat 
)
friend

Operator for Matrix3x3 Div = float / Matrix3x3;.

Definition at line 415 of file Opcode.h.

Member Data Documentation


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