The Open Toolkit library  1.1
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
OpenTK.Matrix3 Struct Reference

Represents a 3x3 matrix containing 3D rotation and scale. More...

Inherits IEquatable< Matrix3 >.

Public Member Functions

 Matrix3 (Vector3 row0, Vector3 row1, Vector3 row2)
 Constructs a new instance. More...
 
 Matrix3 (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22)
 Constructs a new instance. More...
 
 Matrix3 (Matrix4 matrix)
 Constructs a new instance. More...
 
void Invert ()
 Converts this instance into its inverse. More...
 
void Transpose ()
 Converts this instance into its transpose. More...
 
Matrix3 Normalized ()
 Returns a normalised copy of this instance. More...
 
void Normalize ()
 Divides each element in the Matrix by the Determinant. More...
 
Matrix3 Inverted ()
 Returns an inverted copy of this instance. More...
 
Matrix3 ClearScale ()
 Returns a copy of this Matrix3 without scale. More...
 
Matrix3 ClearRotation ()
 Returns a copy of this Matrix3 without rotation. More...
 
Vector3 ExtractScale ()
 Returns the scale component of this instance. More...
 
Quaternion ExtractRotation (bool row_normalise=true)
 Returns the rotation component of this instance. Quite slow. More...
 
override string ToString ()
 Returns a System.String that represents the current Matrix3d. More...
 
override int GetHashCode ()
 Returns the hashcode for this instance. More...
 
override bool Equals (object obj)
 Indicates whether this instance and a specified object are equal. More...
 
bool Equals (Matrix3 other)
 Indicates whether the current matrix is equal to another matrix. More...
 

Static Public Member Functions

static void CreateFromAxisAngle (Vector3 axis, float angle, out Matrix3 result)
 Build a rotation matrix from the specified axis/angle rotation. More...
 
static Matrix3 CreateFromAxisAngle (Vector3 axis, float angle)
 Build a rotation matrix from the specified axis/angle rotation. More...
 
static void CreateFromQuaternion (ref Quaternion q, out Matrix3 result)
 Build a rotation matrix from the specified quaternion. More...
 
static Matrix3 CreateFromQuaternion (Quaternion q)
 Build a rotation matrix from the specified quaternion. More...
 
static void CreateRotationX (float angle, out Matrix3 result)
 Builds a rotation matrix for a rotation around the x-axis. More...
 
static Matrix3 CreateRotationX (float angle)
 Builds a rotation matrix for a rotation around the x-axis. More...
 
static void CreateRotationY (float angle, out Matrix3 result)
 Builds a rotation matrix for a rotation around the y-axis. More...
 
static Matrix3 CreateRotationY (float angle)
 Builds a rotation matrix for a rotation around the y-axis. More...
 
static void CreateRotationZ (float angle, out Matrix3 result)
 Builds a rotation matrix for a rotation around the z-axis. More...
 
static Matrix3 CreateRotationZ (float angle)
 Builds a rotation matrix for a rotation around the z-axis. More...
 
static Matrix3 CreateScale (float scale)
 Creates a scale matrix. More...
 
static Matrix3 CreateScale (Vector3 scale)
 Creates a scale matrix. More...
 
static Matrix3 CreateScale (float x, float y, float z)
 Creates a scale matrix. More...
 
static void CreateScale (float scale, out Matrix3 result)
 Creates a scale matrix. More...
 
static void CreateScale (ref Vector3 scale, out Matrix3 result)
 Creates a scale matrix. More...
 
static void CreateScale (float x, float y, float z, out Matrix3 result)
 Creates a scale matrix. More...
 
static Matrix3 Mult (Matrix3 left, Matrix3 right)
 Multiplies two instances. More...
 
static void Mult (ref Matrix3 left, ref Matrix3 right, out Matrix3 result)
 Multiplies two instances. More...
 
static void Invert (ref Matrix3 mat, out Matrix3 result)
 Calculate the inverse of the given matrix More...
 
static Matrix3 Invert (Matrix3 mat)
 Calculate the inverse of the given matrix More...
 
static Matrix3 Transpose (Matrix3 mat)
 Calculate the transpose of the given matrix More...
 
static void Transpose (ref Matrix3 mat, out Matrix3 result)
 Calculate the transpose of the given matrix More...
 
static Matrix3 operator* (Matrix3 left, Matrix3 right)
 Matrix multiplication More...
 
static bool operator== (Matrix3 left, Matrix3 right)
 Compares two instances for equality. More...
 
static bool operator!= (Matrix3 left, Matrix3 right)
 Compares two instances for inequality. More...
 

Public Attributes

Vector3 Row0
 First row of the matrix. More...
 
Vector3 Row1
 Second row of the matrix. More...
 
Vector3 Row2
 Third row of the matrix. More...
 

Static Public Attributes

static readonly Matrix3 Identity = new Matrix3(Vector3.UnitX, Vector3.UnitY, Vector3.UnitZ)
 The identity matrix. More...
 
static readonly Matrix3 Zero = new Matrix3(Vector3.Zero, Vector3.Zero, Vector3.Zero)
 The zero matrix. More...
 

Properties

float Determinant [get]
 Gets the determinant of this matrix. More...
 
Vector3 Column0 [get]
 Gets the first column of this matrix. More...
 
Vector3 Column1 [get]
 Gets the second column of this matrix. More...
 
Vector3 Column2 [get]
 Gets the third column of this matrix. More...
 
float M11 [get, set]
 Gets or sets the value at row 1, column 1 of this instance. More...
 
float M12 [get, set]
 Gets or sets the value at row 1, column 2 of this instance. More...
 
float M13 [get, set]
 Gets or sets the value at row 1, column 3 of this instance. More...
 
float M21 [get, set]
 Gets or sets the value at row 2, column 1 of this instance. More...
 
float M22 [get, set]
 Gets or sets the value at row 2, column 2 of this instance. More...
 
float M23 [get, set]
 Gets or sets the value at row 2, column 3 of this instance. More...
 
float M31 [get, set]
 Gets or sets the value at row 3, column 1 of this instance. More...
 
float M32 [get, set]
 Gets or sets the value at row 3, column 2 of this instance. More...
 
float M33 [get, set]
 Gets or sets the value at row 3, column 3 of this instance. More...
 
Vector3 Diagonal [get, set]
 Gets or sets the values along the main diagonal of the matrix. More...
 
float Trace [get]
 Gets the trace of the matrix, the sum of the values along the diagonal. More...
 
float this[int rowIndex, int columnIndex] [get, set]
 Gets or sets the value at a specified row and column. More...
 

Detailed Description

Represents a 3x3 matrix containing 3D rotation and scale.

Constructor & Destructor Documentation

OpenTK.Matrix3.Matrix3 ( Vector3  row0,
Vector3  row1,
Vector3  row2 
)

Constructs a new instance.

Parameters
row0Top row of the matrix
row1Second row of the matrix
row2Bottom row of the matrix
OpenTK.Matrix3.Matrix3 ( float  m00,
float  m01,
float  m02,
float  m10,
float  m11,
float  m12,
float  m20,
float  m21,
float  m22 
)

Constructs a new instance.

Parameters
m00First item of the first row of the matrix.
m01Second item of the first row of the matrix.
m02Third item of the first row of the matrix.
m10First item of the second row of the matrix.
m11Second item of the second row of the matrix.
m12Third item of the second row of the matrix.
m20First item of the third row of the matrix.
m21Second item of the third row of the matrix.
m22Third item of the third row of the matrix.
OpenTK.Matrix3.Matrix3 ( Matrix4  matrix)

Constructs a new instance.

Parameters
matrixA Matrix4 to take the upper-left 3x3 from.

Member Function Documentation

Matrix3 OpenTK.Matrix3.ClearRotation ( )

Returns a copy of this Matrix3 without rotation.

Matrix3 OpenTK.Matrix3.ClearScale ( )

Returns a copy of this Matrix3 without scale.

static void OpenTK.Matrix3.CreateFromAxisAngle ( Vector3  axis,
float  angle,
out Matrix3  result 
)
static

Build a rotation matrix from the specified axis/angle rotation.

Parameters
axisThe axis to rotate about.
angleAngle in radians to rotate counter-clockwise (looking in the direction of the given axis).
resultA matrix instance.
static Matrix3 OpenTK.Matrix3.CreateFromAxisAngle ( Vector3  axis,
float  angle 
)
static

Build a rotation matrix from the specified axis/angle rotation.

Parameters
axisThe axis to rotate about.
angleAngle in radians to rotate counter-clockwise (looking in the direction of the given axis).
Returns
A matrix instance.
static void OpenTK.Matrix3.CreateFromQuaternion ( ref Quaternion  q,
out Matrix3  result 
)
static

Build a rotation matrix from the specified quaternion.

Parameters
qQuaternion to translate.
resultMatrix result.
static Matrix3 OpenTK.Matrix3.CreateFromQuaternion ( Quaternion  q)
static

Build a rotation matrix from the specified quaternion.

Parameters
qQuaternion to translate.
Returns
A matrix instance.
static void OpenTK.Matrix3.CreateRotationX ( float  angle,
out Matrix3  result 
)
static

Builds a rotation matrix for a rotation around the x-axis.

Parameters
angleThe counter-clockwise angle in radians.
resultThe resulting Matrix3 instance.
static Matrix3 OpenTK.Matrix3.CreateRotationX ( float  angle)
static

Builds a rotation matrix for a rotation around the x-axis.

Parameters
angleThe counter-clockwise angle in radians.
Returns
The resulting Matrix3 instance.
static void OpenTK.Matrix3.CreateRotationY ( float  angle,
out Matrix3  result 
)
static

Builds a rotation matrix for a rotation around the y-axis.

Parameters
angleThe counter-clockwise angle in radians.
resultThe resulting Matrix3 instance.
static Matrix3 OpenTK.Matrix3.CreateRotationY ( float  angle)
static

Builds a rotation matrix for a rotation around the y-axis.

Parameters
angleThe counter-clockwise angle in radians.
Returns
The resulting Matrix3 instance.
static void OpenTK.Matrix3.CreateRotationZ ( float  angle,
out Matrix3  result 
)
static

Builds a rotation matrix for a rotation around the z-axis.

Parameters
angleThe counter-clockwise angle in radians.
resultThe resulting Matrix3 instance.
static Matrix3 OpenTK.Matrix3.CreateRotationZ ( float  angle)
static

Builds a rotation matrix for a rotation around the z-axis.

Parameters
angleThe counter-clockwise angle in radians.
Returns
The resulting Matrix3 instance.
static Matrix3 OpenTK.Matrix3.CreateScale ( float  scale)
static

Creates a scale matrix.

Parameters
scaleSingle scale factor for the x, y, and z axes.
Returns
A scale matrix.
static Matrix3 OpenTK.Matrix3.CreateScale ( Vector3  scale)
static

Creates a scale matrix.

Parameters
scaleScale factors for the x, y, and z axes.
Returns
A scale matrix.
static Matrix3 OpenTK.Matrix3.CreateScale ( float  x,
float  y,
float  z 
)
static

Creates a scale matrix.

Parameters
xScale factor for the x axis.
yScale factor for the y axis.
zScale factor for the z axis.
Returns
A scale matrix.
static void OpenTK.Matrix3.CreateScale ( float  scale,
out Matrix3  result 
)
static

Creates a scale matrix.

Parameters
scaleSingle scale factor for the x, y, and z axes.
resultA scale matrix.
static void OpenTK.Matrix3.CreateScale ( ref Vector3  scale,
out Matrix3  result 
)
static

Creates a scale matrix.

Parameters
scaleScale factors for the x, y, and z axes.
resultA scale matrix.
static void OpenTK.Matrix3.CreateScale ( float  x,
float  y,
float  z,
out Matrix3  result 
)
static

Creates a scale matrix.

Parameters
xScale factor for the x axis.
yScale factor for the y axis.
zScale factor for the z axis.
resultA scale matrix.
override bool OpenTK.Matrix3.Equals ( object  obj)

Indicates whether this instance and a specified object are equal.

Parameters
objThe object to compare to.
Returns
True if the instances are equal; false otherwise.
bool OpenTK.Matrix3.Equals ( Matrix3  other)

Indicates whether the current matrix is equal to another matrix.

Parameters
otherA matrix to compare with this matrix.
Returns
true if the current matrix is equal to the matrix parameter; otherwise, false.
Quaternion OpenTK.Matrix3.ExtractRotation ( bool  row_normalise = true)

Returns the rotation component of this instance. Quite slow.

Parameters
row_normaliseWhether the method should row-normalise (i.e. remove scale from) the Matrix. Pass false if you know it's already normalised.
Vector3 OpenTK.Matrix3.ExtractScale ( )

Returns the scale component of this instance.

override int OpenTK.Matrix3.GetHashCode ( )

Returns the hashcode for this instance.

Returns
A System.Int32 containing the unique hashcode for this instance.
void OpenTK.Matrix3.Invert ( )

Converts this instance into its inverse.

static void OpenTK.Matrix3.Invert ( ref Matrix3  mat,
out Matrix3  result 
)
static

Calculate the inverse of the given matrix

Parameters
matThe matrix to invert
resultThe inverse of the given matrix if it has one, or the input if it is singular
Exceptions
InvalidOperationExceptionThrown if the Matrix3 is singular.
static Matrix3 OpenTK.Matrix3.Invert ( Matrix3  mat)
static

Calculate the inverse of the given matrix

Parameters
matThe matrix to invert
Returns
The inverse of the given matrix if it has one, or the input if it is singular
Exceptions
InvalidOperationExceptionThrown if the Matrix4 is singular.
Matrix3 OpenTK.Matrix3.Inverted ( )

Returns an inverted copy of this instance.

static Matrix3 OpenTK.Matrix3.Mult ( Matrix3  left,
Matrix3  right 
)
static

Multiplies two instances.

Parameters
leftThe left operand of the multiplication.
rightThe right operand of the multiplication.
Returns
A new instance that is the result of the multiplication
static void OpenTK.Matrix3.Mult ( ref Matrix3  left,
ref Matrix3  right,
out Matrix3  result 
)
static

Multiplies two instances.

Parameters
leftThe left operand of the multiplication.
rightThe right operand of the multiplication.
resultA new instance that is the result of the multiplication
void OpenTK.Matrix3.Normalize ( )

Divides each element in the Matrix by the Determinant.

Matrix3 OpenTK.Matrix3.Normalized ( )

Returns a normalised copy of this instance.

static bool OpenTK.Matrix3.operator!= ( Matrix3  left,
Matrix3  right 
)
static

Compares two instances for inequality.

Parameters
leftThe first instance.
rightThe second instance.
Returns
True, if left does not equal right; false otherwise.
static Matrix3 OpenTK.Matrix3.operator* ( Matrix3  left,
Matrix3  right 
)
static

Matrix multiplication

Parameters
leftleft-hand operand
rightright-hand operand
Returns
A new Matrix3d which holds the result of the multiplication
static bool OpenTK.Matrix3.operator== ( Matrix3  left,
Matrix3  right 
)
static

Compares two instances for equality.

Parameters
leftThe first instance.
rightThe second instance.
Returns
True, if left equals right; false otherwise.
override string OpenTK.Matrix3.ToString ( )

Returns a System.String that represents the current Matrix3d.

Returns
The string representation of the matrix.
void OpenTK.Matrix3.Transpose ( )

Converts this instance into its transpose.

static Matrix3 OpenTK.Matrix3.Transpose ( Matrix3  mat)
static

Calculate the transpose of the given matrix

Parameters
matThe matrix to transpose
Returns
The transpose of the given matrix
static void OpenTK.Matrix3.Transpose ( ref Matrix3  mat,
out Matrix3  result 
)
static

Calculate the transpose of the given matrix

Parameters
matThe matrix to transpose
resultThe result of the calculation

Member Data Documentation

readonly Matrix3 OpenTK.Matrix3.Identity = new Matrix3(Vector3.UnitX, Vector3.UnitY, Vector3.UnitZ)
static

The identity matrix.

Vector3 OpenTK.Matrix3.Row0

First row of the matrix.

Vector3 OpenTK.Matrix3.Row1

Second row of the matrix.

Vector3 OpenTK.Matrix3.Row2

Third row of the matrix.

readonly Matrix3 OpenTK.Matrix3.Zero = new Matrix3(Vector3.Zero, Vector3.Zero, Vector3.Zero)
static

The zero matrix.

Property Documentation

Vector3 OpenTK.Matrix3.Column0
get

Gets the first column of this matrix.

Vector3 OpenTK.Matrix3.Column1
get

Gets the second column of this matrix.

Vector3 OpenTK.Matrix3.Column2
get

Gets the third column of this matrix.

float OpenTK.Matrix3.Determinant
get

Gets the determinant of this matrix.

Vector3 OpenTK.Matrix3.Diagonal
getset

Gets or sets the values along the main diagonal of the matrix.

float OpenTK.Matrix3.M11
getset

Gets or sets the value at row 1, column 1 of this instance.

float OpenTK.Matrix3.M12
getset

Gets or sets the value at row 1, column 2 of this instance.

float OpenTK.Matrix3.M13
getset

Gets or sets the value at row 1, column 3 of this instance.

float OpenTK.Matrix3.M21
getset

Gets or sets the value at row 2, column 1 of this instance.

float OpenTK.Matrix3.M22
getset

Gets or sets the value at row 2, column 2 of this instance.

float OpenTK.Matrix3.M23
getset

Gets or sets the value at row 2, column 3 of this instance.

float OpenTK.Matrix3.M31
getset

Gets or sets the value at row 3, column 1 of this instance.

float OpenTK.Matrix3.M32
getset

Gets or sets the value at row 3, column 2 of this instance.

float OpenTK.Matrix3.M33
getset

Gets or sets the value at row 3, column 3 of this instance.

float OpenTK.Matrix3.this[int rowIndex, int columnIndex]
getset

Gets or sets the value at a specified row and column.

float OpenTK.Matrix3.Trace
get

Gets the trace of the matrix, the sum of the values along the diagonal.