goog.vec.Matrix4
Namespace.Type
.add(mat0, mat1, resultMat)
Performs a per-component addition of the matrix mat0 and mat1, storing the result into resultMat.
mat0
{goog.vec.ArrayType
}
mat1
{goog.vec.ArrayType
}
resultMat
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.applyRotate(mat, angle, x, y, z)
Applies a rotation by angle about the x,y,z axis to the given matrix.
mat
{goog.vec.ArrayType
}
angle
{number
}
x
{number
}
y
{number
}
z
{number
}
.applyScale(mat, x, y, z)
Applies an x,y,z scale to the given matrix.
mat
{goog.vec.ArrayType
}
x
{number
}
y
{number
}
z
{number
}
.applyTranslate(mat, x, y, z)
Applies a translation by x,y,z to the given matrix.
mat
{goog.vec.ArrayType
}
x
{number
}
y
{number
}
z
{number
}
.clone
Creates a clone of a 4x4 matrix.
matrix
{goog.vec.Matrix4.Type
}
goog.vec.Matrix4.Type
}
.create()
Creates the array representation of a 4x4 matrix. The use of the array directly eliminates any overhead associated with the class representation defined above. The returned matrix is cleared to all zeros.
goog.vec.Matrix4.Type
}
.createFromArray(matrix)
Creates a 4x4 matrix initialized from the given array.
matrix
{goog.vec.ArrayType
}
goog.vec.Matrix4.Type
}
.createFromValues(v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03,
v13, v23, v33)
Creates a 4x4 matrix initialized from the given values.
v00
{number
}
v10
{number
}
v20
{number
}
v30
{number
}
v01
{number
}
v11
{number
}
v21
{number
}
v31
{number
}
v02
{number
}
v12
{number
}
v22
{number
}
v32
{number
}
v03
{number
}
v13
{number
}
v23
{number
}
v33
{number
}
goog.vec.Matrix4.Type
}
.createIdentity()
Creates the array representation of a 4x4 matrix. The use of the array directly eliminates any overhead associated with the class representation defined above. The returned matrix is initialized with the identity
goog.vec.Matrix4.Type
}
.determinant(mat)
Computes the determinant of the matrix.
mat
{goog.vec.ArrayType
}
number
}
.equals(mat0, mat1)
Returns true if the components of mat0 are equal to the components of mat1.
mat0
{goog.vec.ArrayType
}
mat1
{goog.vec.ArrayType
}
boolean
}
.fromEulerZXZ(matrix, theta1, theta2, theta3)
Constructs a rotation matrix from its Euler angles using the ZXZ convention. Given the euler angles [theta1, theta2, theta3], the rotation is defined as rotation = rotation_z(theta1) * rotation_x(theta2) * rotation_z(theta3), where rotation_x(theta) means rotation around the X axis of theta radians.
matrix
{goog.vec.ArrayType
}
theta1
{number
}
theta2
{number
}
theta3
{number
}
.getColumn(mat, column, vec)
Retrieves the specified column from the matrix into the given vector array.
mat
{goog.vec.ArrayType
}
column
{number
}
vec
{goog.vec.ArrayType
}
.getColumns(mat, vec0, vec1, vec2, vec3)
Retrieves the column values from the given matrix into the given vector elements.
mat
{goog.vec.ArrayType
}
vec0
{goog.vec.ArrayType
}
vec1
{goog.vec.ArrayType
}
vec2
{goog.vec.ArrayType
}
vec3
{goog.vec.ArrayType
}
.getElement(mat, row, column)
Retrieves the element at the requested row and column.
mat
{goog.vec.ArrayType
}
row
{number
}
column
{number
}
number
}
.getRow(mat, row, vec)
Retrieves the row values into the given vector.
mat
{goog.vec.ArrayType
}
row
{number
}
vec
{goog.vec.ArrayType
}
.getRows(mat, vec0, vec1, vec2, vec3)
Retrieves the rows of the matrix into the supplied vectors.
mat
{goog.vec.ArrayType
}
vec0
{goog.vec.ArrayType
}
vec1
{goog.vec.ArrayType
}
vec2
{goog.vec.ArrayType
}
vec3
{goog.vec.ArrayType
}
.invert(mat, resultMat)
Computes the inverse of mat storing the result into resultMat. If the inverse is defined, this function returns true, false otherwise.
mat
{goog.vec.ArrayType
}
resultMat
{goog.vec.ArrayType
}
boolean
}
.lookAt(viewMatrix, eyePt, centerPt, worldUpVec)
Updates a matrix representing the modelview matrix of a camera so that the camera is 'looking at' the given center point.
viewMatrix
{goog.vec.ArrayType
}
eyePt
{goog.vec.ArrayType
}
centerPt
{goog.vec.ArrayType
}
worldUpVec
{goog.vec.ArrayType
}
.makeAxisAngleRotate(mat, angle, ax, ay, az)
Initializes the given 4x4 matrix as a rotation matrix with the given rotation angle about the axis defined by the vector (ax, ay, az).
mat
{goog.vec.ArrayType
}
angle
{number
}
ax
{number
}
ay
{number
}
az
{number
}
.makeFrustum(mat, left, right, bottom, top, near, far)
Initializes the given 4x4 matrix as a perspective projection matrix.
mat
{goog.vec.ArrayType
}
left
{number
}
right
{number
}
bottom
{number
}
top
{number
}
near
{number
}
far
{number
}
.makeOrtho(mat, left, right, bottom, top, near, far)
Initializes the given 4x4 matrix as an orthographic projection matrix.
mat
{goog.vec.ArrayType
}
left
{number
}
right
{number
}
bottom
{number
}
top
{number
}
near
{number
}
far
{number
}
.makePerspective(mat, fovy, aspect, near, far)
Initializes the given 4x4 matrix as a perspective projection matrix given a field of view and aspect ratio.
mat
{goog.vec.ArrayType
}
fovy
{number
}
aspect
{number
}
near
{number
}
far
{number
}
.makeScale(mat, x, y, z)
Initializes the given 4x4 matrix as a scale matrix with x, y and z scale factors.
mat
{goog.vec.ArrayType
}
x
{number
}
y
{number
}
z
{number
}
.makeTranslate(mat, x, y, z)
Initializes the given 4x4 matrix as a translation matrix with x, y and z translation factors.
mat
{goog.vec.ArrayType
}
x
{number
}
y
{number
}
z
{number
}
.multMat(mat0, mat1, resultMat)
Multiplies the two matrices mat0 and mat1 using matrix multiplication, storing the result into resultMat.
mat0
{goog.vec.ArrayType
}
mat1
{goog.vec.ArrayType
}
resultMat
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.multVec3(mat, vec, resultVec)
Transforms the given vector with the given matrix storing the resulting, transformed vector into resultVec. The input vector is multiplied against the upper 3x4 matrix omitting the projective component.
mat
{goog.vec.ArrayType
}
vec
{goog.vec.ArrayType
}
resultVec
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.multVec3NoTranslate(mat, vec, resultVec)
Transforms the given vector with the given matrix storing the resulting, transformed vector into resultVec. The input vector is multiplied against the upper 3x3 matrix omitting the projective component and translation components.
mat
{goog.vec.ArrayType
}
vec
{goog.vec.ArrayType
}
resultVec
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.multVec3Projective(mat, vec, resultVec)
Transforms the given vector with the given matrix storing the resulting, transformed vector into resultVec. The input vector is multiplied against the full 4x4 matrix with the homogeneous divide applied to reduce the 4 element vector to a 3 element vector.
mat
{goog.vec.ArrayType
}
vec
{goog.vec.ArrayType
}
resultVec
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.multVec3ToArray(mat, vec, resultVec)
Transforms the given vector with the given matrix storing the resulting, transformed vector into resultVec. The input matrix is multiplied against the upper 3x4 matrix omitting the projective component.
mat
{goog.vec.ArrayType
}
vec
{goog.vec.ArrayType
}
resultVec
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.multVec4(mat, vec, resultVec)
Transforms the given vector with the given matrix storing the resulting, transformed vector into resultVec.
mat
{goog.vec.ArrayType
}
vec
{goog.vec.ArrayType
}
resultVec
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.multVec4ToArray(mat, vec, resultVec)
Transforms the given vector with the given matrix storing the resulting, transformed vector into resultVec.
mat
{goog.vec.ArrayType
}
vec
{goog.vec.ArrayType
}
resultVec
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.scale(mat0, scalar, resultMat)
Performs a component-wise multiplication of mat0 with the given scalar storing the result into resultMat.
mat0
{goog.vec.ArrayType
}
scalar
{number
}
resultMat
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.setColumn(mat, column, vec)
Sets the specified column with the value from the supplied array.
mat
{goog.vec.ArrayType
}
column
{number
}
vec
{goog.vec.ArrayType
}
.setColumnValues(mat, column, v0, v1, v2, v3)
Sets the specified column with the supplied values.
mat
{goog.vec.ArrayType
}
column
{number
}
v0
{number
}
v1
{number
}
v2
{number
}
v3
{number
}
.setColumns(mat, vec0, vec1, vec2, vec3)
Sets the columns of the matrix from the set of vector elements.
mat
{goog.vec.ArrayType
}
vec0
{goog.vec.ArrayType
}
vec1
{goog.vec.ArrayType
}
vec2
{goog.vec.ArrayType
}
vec3
{goog.vec.ArrayType
}
.setDiagonal(mat, vec)
Sets the diagonal values of the matrix from the given vector.
mat
{goog.vec.ArrayType
}
vec
{goog.vec.ArrayType
}
.setDiagonalValues(mat, v00, v11, v22, v33)
Sets the diagonal values of the matrix from the given values.
mat
{goog.vec.ArrayType
}
v00
{number
}
v11
{number
}
v22
{number
}
v33
{number
}
.setElement(mat, row, column, value)
Sets the element at the requested row and column.
mat
{goog.vec.ArrayType
}
row
{number
}
column
{number
}
value
{number
}
.setFromArray(mat, values)
Sets the matrix from the array of values stored in column major order.
mat
{goog.vec.ArrayType
}
values
{goog.vec.ArrayType
}
.setFromRowMajorArray(mat, values)
Sets the matrix from the array of values stored in row major order.
mat
{goog.vec.ArrayType
}
values
{goog.vec.ArrayType
}
.setFromValues(mat, v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32,
v03, v13, v23, v33)
Initializes the matrix from the set of values. Note the values supplied are in column major order.
mat
{goog.vec.ArrayType
}
v00
{number
}
v10
{number
}
v20
{number
}
v30
{number
}
v01
{number
}
v11
{number
}
v21
{number
}
v31
{number
}
v02
{number
}
v12
{number
}
v22
{number
}
v32
{number
}
v03
{number
}
v13
{number
}
v23
{number
}
v33
{number
}
.setIdentity(mat)
Sets the given matrix to the identity matrix.
mat
{goog.vec.ArrayType
}
.setRow(mat, row, vec)
Sets the row values from the supplied vector.
mat
{goog.vec.ArrayType
}
row
{number
}
vec
{goog.vec.ArrayType
}
.setRowValues(mat, row, v0, v1, v2, v3)
Sets the row values from the supplied values.
mat
{goog.vec.ArrayType
}
row
{number
}
v0
{number
}
v1
{number
}
v2
{number
}
v3
{number
}
.setRows(mat, vec0, vec1, vec2, vec3)
Sets the rows of the matrix from the supplied vectors.
mat
{goog.vec.ArrayType
}
vec0
{goog.vec.ArrayType
}
vec1
{goog.vec.ArrayType
}
vec2
{goog.vec.ArrayType
}
vec3
{goog.vec.ArrayType
}
.setZero(mat)
Clears the given matrix to zero.
mat
{goog.vec.ArrayType
}
.subtract(mat0, mat1, resultMat)
Performs a per-component subtraction of the matrix mat0 and mat1, storing the result into resultMat.
mat0
{goog.vec.ArrayType
}
mat1
{goog.vec.ArrayType
}
resultMat
{goog.vec.ArrayType
}
goog.vec.ArrayType
}
.toEulerZXZ(matrix, euler)
Decomposes a rotation matrix into Euler angles using the ZXZ convention.
matrix
{goog.vec.ArrayType
}
euler
{goog.vec.ArrayType
}
.toLookAt(viewMatrix, eyePt, fwdVec, worldUpVec)
Decomposes a matrix into the lookAt vectors eyePt, fwdVec and worldUpVec. The matrix represents the modelview matrix of a camera. It is the inverse of lookAt except for the output of the fwdVec instead of centerPt. The centerPt itself cannot be recovered from a modelview matrix.
viewMatrix
{goog.vec.ArrayType
}
eyePt
{goog.vec.ArrayType
}
fwdVec
{goog.vec.ArrayType
}
worldUpVec
{goog.vec.ArrayType
}
boolean
}
.transpose(mat, resultMat)
Transposes the given matrix mat storing the result into resultMat.
mat
{goog.vec.ArrayType
}
resultMat
{goog.vec.ArrayType
}
goog.vec.ArrayType
}