[name]

A class representing a 4x4 [link:https://en.wikipedia.org/wiki/Matrix_(mathematics) matrix].

Example

// Simple rig for rotating around 3 axes var m = new THREE.Matrix4(); var m1 = new THREE.Matrix4(); var m2 = new THREE.Matrix4(); var m3 = new THREE.Matrix4(); var alpha = 0; var beta = Math.PI; var gamma = Math.PI/2; m1.makeRotationX( alpha ); m2.makeRotationY( beta ); m3.makeRotationZ( gamma ); m.multiplyMatrices( m1, m2 ); m.multiply( m3 );

Constructor

[name]()

Creates and initializes the [name] to the 4x4 [link:https://en.wikipedia.org/wiki/Identity_matrix identity matrix].

Properties

[property:Float32Array elements]

A [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] list of matrix values.

[property:Boolean isMatrix4]

Used to check whether this or derived classes are Matrix4s. Default is *true*.

You should not change this, as it used internally for optimisation.

Methods

[method:Array applyToBuffer]( [page:ArrayBuffer buffer], [page:Number offset], [page:Number length] )

[page:Array buffer] - An [link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer ArrayBuffer] of floats in the form [vector1x, vector1y, vector1z, vector2x, vector2y, vector2z, ...], that represent 3D vectors.
> [page:Number offset] - (optional) index in the array of the first vector's x component. Default is 0.
[page:Number length] - (optional) index in the array of the last vector's z component. Default is the last element in the array.

Multiplies (applies) the upper 3x3 matrix of this matrix to every 3D vector in the [page:ArrayBuffer buffer].

[method:Array applyToVector3Array]( [page:Array array], [page:Number offset], [page:Number length] )

[page:Array array] - An array of floats in the form [vector1x, vector1y, vector1z, vector2x, vector2y, vector2z, ...], that represent 3D vectors.
> [page:Number offset] - (optional) index in the array of the first vector's x component. Default is 0.
[page:Number length] - (optional) index in the array of the last vector's z component. Default is the last element in the array.

Multiplies (applies) the upper 3x3 matrix of this matrix to every 3D vector in the [page:Array array].

[method:Matrix4 clone]()

Creates a new Matrix4 and with identical elements to this one.

[method:Matrix4 compose]( [page:Vector3 translation], [page:Quaternion quaternion], [page:Vector3 scale] )

Sets this matrix to the transformation composed of [page:Vector3 translation], [page:Quaternion quaternion] and [page:Vector3 scale].

[method:Matrix4 copy]( [page:Matrix4 m] )

Copies the elements of matrix [page:Matrix4 m] into this matrix.

[method:Matrix4 copyPosition]( [page:Matrix4 m] )

Copies the translation component of the supplied matrix *m* into this matrix's translation component.

[method:null decompose]( [page:Vector3 translation], [page:Quaternion quaternion], [page:Vector3 scale] )

Decomposes this matrix into the *translation*, *quaternion* and *scale* components.

[method:Float determinant]()

Computes and returns the determinant of this matrix.
Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm]

[method:Boolean equals]( [page:Matrix4 m] )

Return true if this and [page:Matrix4 m] are equals.

[method:Matrix4 extractBasis]( [page:Vector3 xAxis], [page:Vector3 yAxis], [page:Vector3 zAxis] )

Extracts basis of into the three axis vectors provided. Returns the current matrix.

[method:Matrix4 extractRotation]( [page:Matrix4 m] )

Extracts the rotation of the supplied matrix *m* into this matrix rotation component.

[method:Matrix4 fromArray]( [page:Array array], [page:Integer offset] )

array -- [page:Array] The array to read the elements from.
offset -- [page:Integer] optional offset into the array. Default is 0.
Sets the elements of this matrix based on an array in column-major format.

[method:Matrix4 getInverse]( [page:Matrix4 m] )

Sets this matrix to the inverse of matrix *m*.
Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm].

[method:Float getMaxScaleOnAxis]()

Gets the maximum scale value of the 3 axes.

[method:Matrix4 identity]()

Resets this matrix to identity.

[method:Matrix4 lookAt]( [page:Vector3 eye], [page:Vector3 center], [page:Vector3 up], )

Constructs a rotation matrix, looking from *eye* towards *center* with defined *up* vector.

[method:Matrix4 makeRotationAxis]( [page:Vector3 axis], [page:Float theta] )

axis — Rotation axis, should be normalized. theta — Rotation angle in radians.
Sets this matrix as rotation transform around *axis* by *angle* radians.
Based on [link:http://www.gamedev.net/reference/articles/article1199.asp].

[method:Matrix4 makeBasis]( [page:Vector3 xAxis], [page:Vector3 yAxis], [page:Vector3 zAxis] )

Creates the basis matrix consisting of the three provided axis vectors. Returns the current matrix.

[method:Matrix4 makeFrustum]( [page:Float left], [page:Float right], [page:Float bottom], [page:Float top], [page:Float near], [page:Float far] )

Creates a [page:Frustum frustum] matrix.

[method:Matrix4 makeOrthographic]( [page:Float left], [page:Float right], [page:Float top], [page:Float bottom], [page:Float near], [page:Float far] )

Creates an orthographic projection matrix.

[method:Matrix4 makePerspective]( [page:Float fov], [page:Float aspect], [page:Float near], [page:Float far] )

Creates a perspective projection matrix.

[method:Matrix4 makeRotationFromEuler]( [page:Euler euler] )

euler — Rotation vector followed by order of rotations, e.g., "XYZ".
Sets the rotation submatrix of this matrix to the rotation specified by Euler angles, the rest of the matrix is identity.
Default order is *"XYZ"*.

[method:Matrix4 makeRotationFromQuaternion]( [page:Quaternion q] )

Sets the rotation submatrix of this matrix to the rotation specified by *q*. The rest of the matrix is identity.

[method:Matrix4 makeRotationX]( [page:Float theta] )

theta — Rotation angle in radians.
Sets this matrix as rotation transform around x axis by *theta* radians.

[method:Matrix4 makeRotationY]( [page:Float theta] )

theta — Rotation angle in radians.
Sets this matrix as rotation transform around y axis by *theta* radians.

[method:Matrix4 makeRotationZ]( [page:Float theta] )

theta — Rotation angle in radians.
Sets this matrix as rotation transform around z axis by *theta* radians.

[method:Matrix4 makeScale]( [page:Float x], [page:Float y], [page:Float z] )

Sets this matrix as scale transform.

[method:Matrix4 makeShear]( [page:Float x], [page:Float y], [page:Float z] )

Sets this matrix as shear transform.

[method:Matrix4 makeTranslation]( [page:Float x], [page:Float y], [page:Float z] )

Sets this matrix as translation transform.

[method:Matrix4 multiply]( [page:Matrix4 m] )

Post-multiplies this matrix by *m*.

[method:Matrix4 multiplyMatrices]( [page:Matrix4 a], [page:Matrix4 b] )

Sets this matrix to *a x b*.

[method:Matrix4 multiplyScalar]( [page:Float s] )

Multiplies every component of the matrix by a scalar value *s*.

[method:Matrix4 multiplyToArray]( [page:Matrix4 a], [page:Matrix4 b], [page:Array r] )

Sets this matrix to *a x b* and stores the result into the flat array *r*.
*r* can be either a regular Array or a TypedArray.

[method:Matrix4 premultiply]( [page:Matrix4 m] )

Pre-multiplies this matrix by *m*.

[method:Matrix4 scale]( [page:Vector3 v] )

Multiplies the columns of this matrix by vector *v*.

[method:Matrix4 set]( [page:Float n11], [page:Float n12], [page:Float n13], [page:Float n14], [page:Float n21], [page:Float n22], [page:Float n23], [page:Float n24], [page:Float n31], [page:Float n32], [page:Float n33], [page:Float n34], [page:Float n41], [page:Float n42], [page:Float n43], [page:Float n44] )

Sets all fields of this matrix to the supplied row-major values n11..n44.

[method:Matrix4 setPosition]( [page:Vector3 v] )

Sets the position component for this matrix from vector *v*.

[method:Array toArray]( [page:Array array], [page:Integer offset] )

array -- [page:Array] optional array to store the vector
offset -- [page:Integer] optional offset into the array
Writes the elements of this matrix to an array in column-major format.

[method:Matrix4 transpose]()

Transposes this matrix.

Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]