Drag[en]gine Script Module DragonScript  1.21
Dragengine.Scenery.Matrix4 Class Reference

Immutable 4x4-component row major single precision matrix. More...

Inheritance diagram for Dragengine.Scenery.Matrix4:

Public Member Functions

Management
float getAt (int row, int col)
 Value at row and colon. More...
 
float get11 ()
 Value at (1,1). More...
 
float get12 ()
 Value at (1,2). More...
 
float get13 ()
 Value at (1,3). More...
 
float get14 ()
 Value at (1,4). More...
 
float get21 ()
 Value at (2,1). More...
 
float get22 ()
 Value at (2,2). More...
 
float get23 ()
 Value at (2,3). More...
 
float get24 ()
 Value at (2,4). More...
 
float get31 ()
 Value at (3,1). More...
 
float get32 ()
 Value at (3,2). More...
 
float get33 ()
 Value at (3,3). More...
 
float get34 ()
 Value at (3,4). More...
 
float get41 ()
 Value at (4,1). More...
 
float get42 ()
 Value at (4,2). More...
 
float get43 ()
 Value at (4,3). More...
 
float get44 ()
 Value at (4,4). More...
 
Vector getViewVector ()
 Vector composed of the third column. More...
 
Vector getUpVector ()
 Vector composed of the second column. More...
 
Vector getRightVector ()
 Vector composed of the first column. More...
 
Vector getPosition ()
 Vector composed of the fourth column. More...
 
Vector transformNormal (Vector normal)
 Transform normal by matrix. More...
 
Vector getEulerAngles ()
 Euler angles. More...
 
Matrix4 getInverse ()
 Inverse. More...
 
Matrix4 normalize ()
 Normalize matrix. More...
 
Quaternion toQuaternion ()
 Quaternion from upper 3x3 matrix. More...
 
DMatrix4 toDMatrix4 ()
 the double precision matrix. More...
 
DMatrix toDMatrix ()
 the double precision matrix. More...
 
Matrix toMatrix ()
 the single precision matrix. More...
 
bool equals (Object other)
 Matrix4 is equal to another object. More...
 
int hashCode ()
 Hash code for use as dictionary keys. More...
 
String toString ()
 String representation of matrix. More...
 
String toString (int precision)
 String representation of matrix with precision. More...
 
Operators
Matrix4 operator+ (Matrix4 matrix)
 Sum of matrix with another Matrix4. More...
 
Matrix4 operator- (Matrix4 matrix)
 Difference of matrix and another Matrix4. More...
 
Matrix4 operator* (float k)
 Matrix4 multiplied by a factor. More...
 
Matrix4 operator/ (float k)
 Matrix4 divided by a factor. More...
 
Matrix4 operator* (Matrix4 matrix)
 Matrix4 multiplied by another Matrix4. More...
 
Vector operator* (Vector vector)
 Vector transformed by matrix. More...
 

Constructors

Matrix4 new ()
 Create identity matrix. More...
 
Matrix4 new (float a11, float a12, float a13, float a14, float a21, float a22, float a23, float a24, float a31, float a32, float a33, float a34, float a41, float a42, float a43, float a44)
 Create matrix from values. More...
 
static Matrix4 newTranslation (Vector translation)
 Create translation matrix. More...
 
static Matrix4 newTranslation (float tx, float ty, float tz)
 Create translation matrix. More...
 
static Matrix4 newScaling (Vector scaling)
 Create scaling matrix. More...
 
static Matrix4 newScaling (float sx, float sy, float sz)
 Create scaling matrix. More...
 
static Matrix4 newRotationX (float rotation)
 Create rotation around the x axis matrix. More...
 
static Matrix4 newRotationY (float rotation)
 Create rotation around the y axis matrix. More...
 
static Matrix4 newRotationZ (float rotation)
 Create rotation around the z axis matrix. More...
 
static Matrix4 newRotation (Vector rotation)
 Create rotation matrix. More...
 
static Matrix4 newRotation (float rx, float ry, float rz)
 Create rotation matrix. More...
 
static Matrix4 newSRT (Vector scaling, Vector rotation, Vector translation)
 Create scaling-rotation-translation matrix composing of a scaling followed by a rotation and a translation. More...
 
static Matrix4 newRT (Vector rotation, Vector translation)
 Create rotation-translation matrix composing of a rotation followed by a translation. More...
 
static Matrix4 newSVUT (Vector scaling, Vector view, Vector up, Vector translation)
 Create scale-view-up-translation matrix composing of a rotation followed by a world matrix. More...
 
static Matrix4 newVU (Vector view, Vector up)
 Create view-up matrix. More...
 
static Matrix4 newCamera (Vector position, Vector view, Vector up)
 Create camera matrix. More...
 
static Matrix4 newWorld (Vector position, Vector view, Vector up)
 Create world matrix. More...
 
static Matrix4 newWorld (Vector position, Quaternion orientation)
 Create world matrix. More...
 
static Matrix4 newProjection (int width, int height, float fov, float fovRatio, float znear, float zfar)
 Create projection matrix. More...
 
static Matrix4 newOrtho (int left, int right, int top, int bottom, int znear, int zfar)
 Create an orthogonal matrix. More...
 
static Matrix4 newFromQuaternion (Quaternion quaternion)
 Create rotation matrix from the given quaternion. More...
 

File Handling

void writeToFile (FileWriter writer)
 Write matrix to a file writer. More...
 
static Matrix4 readFromFile (FileReader reader)
 Read matrix from a file reader. More...
 

Detailed Description

Immutable 4x4-component row major single precision matrix.

This is a native class. It can not be subclassed.

Member Function Documentation

◆ equals()

bool Dragengine.Scenery.Matrix4.equals ( Object  other)

Matrix4 is equal to another object.

Implements Object.equals(Object).

Returns
true if other is of type Matrix4 and components are equal.

◆ get11()

float Dragengine.Scenery.Matrix4.get11 ( )

Value at (1,1).

◆ get12()

float Dragengine.Scenery.Matrix4.get12 ( )

Value at (1,2).

◆ get13()

float Dragengine.Scenery.Matrix4.get13 ( )

Value at (1,3).

◆ get14()

float Dragengine.Scenery.Matrix4.get14 ( )

Value at (1,4).

◆ get21()

float Dragengine.Scenery.Matrix4.get21 ( )

Value at (2,1).

◆ get22()

float Dragengine.Scenery.Matrix4.get22 ( )

Value at (2,2).

◆ get23()

float Dragengine.Scenery.Matrix4.get23 ( )

Value at (2,3).

◆ get24()

float Dragengine.Scenery.Matrix4.get24 ( )

Value at (2,4).

◆ get31()

float Dragengine.Scenery.Matrix4.get31 ( )

Value at (3,1).

◆ get32()

float Dragengine.Scenery.Matrix4.get32 ( )

Value at (3,2).

◆ get33()

float Dragengine.Scenery.Matrix4.get33 ( )

Value at (3,3).

◆ get34()

float Dragengine.Scenery.Matrix4.get34 ( )

Value at (3,4).

◆ get41()

float Dragengine.Scenery.Matrix4.get41 ( )

Value at (4,1).

◆ get42()

float Dragengine.Scenery.Matrix4.get42 ( )

Value at (4,2).

◆ get43()

float Dragengine.Scenery.Matrix4.get43 ( )

Value at (4,3).

◆ get44()

float Dragengine.Scenery.Matrix4.get44 ( )

Value at (4,4).

◆ getAt()

float Dragengine.Scenery.Matrix4.getAt ( int  row,
int  col 
)

Value at row and colon.

Exceptions
EInvalidParamrow is less than 0 or larger than 3.
EInvalidParamcol is less than 0 or larger than 3.

◆ getEulerAngles()

Vector Dragengine.Scenery.Matrix4.getEulerAngles ( )

Euler angles.

◆ getInverse()

Matrix4 Dragengine.Scenery.Matrix4.getInverse ( )

Inverse.

◆ getPosition()

Vector Dragengine.Scenery.Matrix4.getPosition ( )

Vector composed of the fourth column.

◆ getRightVector()

Vector Dragengine.Scenery.Matrix4.getRightVector ( )

Vector composed of the first column.

◆ getUpVector()

Vector Dragengine.Scenery.Matrix4.getUpVector ( )

Vector composed of the second column.

◆ getViewVector()

Vector Dragengine.Scenery.Matrix4.getViewVector ( )

Vector composed of the third column.

◆ hashCode()

int Dragengine.Scenery.Matrix4.hashCode ( )

Hash code for use as dictionary keys.

Implements Object.hashCode().

◆ new() [1/2]

Matrix4 Dragengine.Scenery.Matrix4.new ( )

Create identity matrix.

◆ new() [2/2]

Matrix4 Dragengine.Scenery.Matrix4.new ( float  a11,
float  a12,
float  a13,
float  a14,
float  a21,
float  a22,
float  a23,
float  a24,
float  a31,
float  a32,
float  a33,
float  a34,
float  a41,
float  a42,
float  a43,
float  a44 
)

Create matrix from values.

◆ newCamera()

static Matrix4 Dragengine.Scenery.Matrix4.newCamera ( Vector  position,
Vector  view,
Vector  up 
)
static

Create camera matrix.

◆ newFromQuaternion()

static Matrix4 Dragengine.Scenery.Matrix4.newFromQuaternion ( Quaternion  quaternion)
static

Create rotation matrix from the given quaternion.

◆ newOrtho()

static Matrix4 Dragengine.Scenery.Matrix4.newOrtho ( int  left,
int  right,
int  top,
int  bottom,
int  znear,
int  zfar 
)
static

Create an orthogonal matrix.

◆ newProjection()

static Matrix4 Dragengine.Scenery.Matrix4.newProjection ( int  width,
int  height,
float  fov,
float  fovRatio,
float  znear,
float  zfar 
)
static

Create projection matrix.

◆ newRotation() [1/2]

static Matrix4 Dragengine.Scenery.Matrix4.newRotation ( float  rx,
float  ry,
float  rz 
)
static

Create rotation matrix.

◆ newRotation() [2/2]

static Matrix4 Dragengine.Scenery.Matrix4.newRotation ( Vector  rotation)
static

Create rotation matrix.

◆ newRotationX()

static Matrix4 Dragengine.Scenery.Matrix4.newRotationX ( float  rotation)
static

Create rotation around the x axis matrix.

◆ newRotationY()

static Matrix4 Dragengine.Scenery.Matrix4.newRotationY ( float  rotation)
static

Create rotation around the y axis matrix.

◆ newRotationZ()

static Matrix4 Dragengine.Scenery.Matrix4.newRotationZ ( float  rotation)
static

Create rotation around the z axis matrix.

◆ newRT()

static Matrix4 Dragengine.Scenery.Matrix4.newRT ( Vector  rotation,
Vector  translation 
)
static

Create rotation-translation matrix composing of a rotation followed by a translation.

◆ newScaling() [1/2]

static Matrix4 Dragengine.Scenery.Matrix4.newScaling ( float  sx,
float  sy,
float  sz 
)
static

Create scaling matrix.

◆ newScaling() [2/2]

static Matrix4 Dragengine.Scenery.Matrix4.newScaling ( Vector  scaling)
static

Create scaling matrix.

◆ newSRT()

static Matrix4 Dragengine.Scenery.Matrix4.newSRT ( Vector  scaling,
Vector  rotation,
Vector  translation 
)
static

Create scaling-rotation-translation matrix composing of a scaling followed by a rotation and a translation.

◆ newSVUT()

static Matrix4 Dragengine.Scenery.Matrix4.newSVUT ( Vector  scaling,
Vector  view,
Vector  up,
Vector  translation 
)
static

Create scale-view-up-translation matrix composing of a rotation followed by a world matrix.

◆ newTranslation() [1/2]

static Matrix4 Dragengine.Scenery.Matrix4.newTranslation ( float  tx,
float  ty,
float  tz 
)
static

Create translation matrix.

◆ newTranslation() [2/2]

static Matrix4 Dragengine.Scenery.Matrix4.newTranslation ( Vector  translation)
static

Create translation matrix.

◆ newVU()

static Matrix4 Dragengine.Scenery.Matrix4.newVU ( Vector  view,
Vector  up 
)
static

Create view-up matrix.

◆ newWorld() [1/2]

static Matrix4 Dragengine.Scenery.Matrix4.newWorld ( Vector  position,
Quaternion  orientation 
)
static

Create world matrix.

◆ newWorld() [2/2]

static Matrix4 Dragengine.Scenery.Matrix4.newWorld ( Vector  position,
Vector  view,
Vector  up 
)
static

Create world matrix.

◆ normalize()

Matrix4 Dragengine.Scenery.Matrix4.normalize ( )

Normalize matrix.

Returns matrix with scaling removed. Only normalized matrices are safe to be used with the getEulerAngles() and toQuaternion() calls since scaling interferes with the calculation.

This calls the same as this code

DMatrix.newWorld(m.getPosition(), getViewVector(), m.getUpVector())
Vector getViewVector()
Vector composed of the third column.

but is safe against 0-scaling. In such a case a 0-rotation matrix is created.

◆ operator*() [1/3]

Matrix4 Dragengine.Scenery.Matrix4.operator* ( float  k)

Matrix4 multiplied by a factor.

◆ operator*() [2/3]

Matrix4 Dragengine.Scenery.Matrix4.operator* ( Matrix4  matrix)

Matrix4 multiplied by another Matrix4.

◆ operator*() [3/3]

Vector Dragengine.Scenery.Matrix4.operator* ( Vector  vector)

Vector transformed by matrix.

◆ operator+()

Matrix4 Dragengine.Scenery.Matrix4.operator+ ( Matrix4  matrix)

Sum of matrix with another Matrix4.

◆ operator-()

Matrix4 Dragengine.Scenery.Matrix4.operator- ( Matrix4  matrix)

Difference of matrix and another Matrix4.

◆ operator/()

Matrix4 Dragengine.Scenery.Matrix4.operator/ ( float  k)

Matrix4 divided by a factor.

Exceptions
EDivisionByZeroscalar is 0.

◆ readFromFile()

static Matrix4 Dragengine.Scenery.Matrix4.readFromFile ( FileReader  reader)
static

Read matrix from a file reader.

◆ toDMatrix()

DMatrix Dragengine.Scenery.Matrix4.toDMatrix ( )

the double precision matrix.

◆ toDMatrix4()

DMatrix4 Dragengine.Scenery.Matrix4.toDMatrix4 ( )

the double precision matrix.

◆ toMatrix()

Matrix Dragengine.Scenery.Matrix4.toMatrix ( )

the single precision matrix.

◆ toQuaternion()

Quaternion Dragengine.Scenery.Matrix4.toQuaternion ( )

Quaternion from upper 3x3 matrix.

◆ toString() [1/2]

String Dragengine.Scenery.Matrix4.toString ( )

String representation of matrix.

Implements Object.toString()

◆ toString() [2/2]

String Dragengine.Scenery.Matrix4.toString ( int  precision)

String representation of matrix with precision.

Same as toString() except the count of digits of each component is precision.

Parameters
precisionPrecision in digits in the range from 0 to 9 inclusive.
Exceptions
EInvalidParamprecision is less than 0 or larger than 9.

◆ transformNormal()

Vector Dragengine.Scenery.Matrix4.transformNormal ( Vector  normal)

Transform normal by matrix.

◆ writeToFile()

void Dragengine.Scenery.Matrix4.writeToFile ( FileWriter  writer)

Write matrix to a file writer.


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