Class Mat4
                 
                    
                  Hierarchy
              
              - Float32Array- Mat4
 
Indexable
- [index: number]: number
Index
Accessors
Constructor
Methods
Other
Static
Accessors
str
- get str(): stringA string representation of thisEquivalent toMat4.str(this);Returns string
Constructor
constructor
- Create a Mat4. - Parameters- ...values: number[] | [ArrayBufferLike | Readonly<Mat4Like>, number?]
 - Returns Mat4
Methods
copy
identity
- Set - thisto the identity matrix Equivalent to Mat4.identity(this)- Returns this- this
invert
mul
multiply
orthoNO 
- orthoNO(
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far: number,
 ): thisGenerates a orthogonal projection matrix with the given bounds. The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1], which matches WebGL/OpenGL's clip volume. Equivalent to Mat4.orthoNO(this, left, right, bottom, top, near, far);Parameters- left: numberLeft bound of the frustum 
- right: numberRight bound of the frustum 
- bottom: numberBottom bound of the frustum 
- top: numberTop bound of the frustum 
- near: numberNear bound of the frustum 
- far: numberFar bound of the frustum 
 Returns thisthis
- left: number
orthoZO 
- orthoZO(
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far: number,
 ): thisGenerates a orthogonal projection matrix with the given bounds. The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1], which matches WebGPU/Vulkan/DirectX/Metal's clip volume. Equivalent to Mat4.orthoZO(this, left, right, bottom, top, near, far);Parameters- left: numberLeft bound of the frustum 
- right: numberRight bound of the frustum 
- bottom: numberBottom bound of the frustum 
- top: numberTop bound of the frustum 
- near: numberNear bound of the frustum 
- far: numberFar bound of the frustum 
 Returns thisthis
- left: number
perspectiveNO 
- Generates a perspective projection matrix with the given bounds. The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1], which matches WebGL/OpenGL's clip volume. Passing null/undefined/no value for far will generate infinite projection matrix. Equivalent to - Mat4.perspectiveNO(this, fovy, aspect, near, far);- Parameters- fovy: numberVertical field of view in radians 
- aspect: numberAspect ratio. typically viewport width/height 
- near: numberNear bound of the frustum 
- far: numberFar bound of the frustum, can be null or Infinity 
 - Returns this- this
- fovy: number
perspectiveZO 
- Generates a perspective projection matrix suitable for WebGPU with the given bounds. The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1], which matches WebGPU/Vulkan/DirectX/Metal's clip volume. Passing null/undefined/no value for far will generate infinite projection matrix. Equivalent to - Mat4.perspectiveZO(this, fovy, aspect, near, far);- Parameters- fovy: numberVertical field of view in radians 
- aspect: numberAspect ratio. typically viewport width/height 
- near: numberNear bound of the frustum 
- far: numberFar bound of the frustum, can be null or Infinity 
 - Returns this- this
- fovy: number
rotate
rotateX 
- Rotates this Mat4 by the given angle around the X axis Equivalent to - Mat4.rotateX(this, this, rad);- Parameters- rad: numberthe angle to rotate the matrix by 
 - Returns this- this
- rad: number
rotateY 
- Rotates this Mat4 by the given angle around the Y axis Equivalent to - Mat4.rotateY(this, this, rad);- Parameters- rad: numberthe angle to rotate the matrix by 
 - Returns this- this
- rad: number
rotateZ 
- Rotates this Mat4 by the given angle around the Z axis Equivalent to - Mat4.rotateZ(this, this, rad);- Parameters- rad: numberthe angle to rotate the matrix by 
 - Returns this- this
- rad: number
scale
translate
transpose
Other
Readonly[toStringTag]  
Readonlybuffer
The ArrayBuffer instance referenced by the array.
ReadonlybyteLength 
The length in bytes of the array.
ReadonlybyteOffset 
The offset in bytes of the array.
ReadonlyBYTES_PER_ELEMENT  
The size in bytes of each element in the array.
Readonlylength
The length of the array.
Static ReadonlyBYTES_PER_ELEMENT  
The size in bytes of each element in the array.
[iterator]
- Returns ArrayIterator<number>
at
- Returns the item located at the specified index. - Parameters- index: numberThe zero-based index of the desired code unit. A negative index will count back from the last item. 
 - Returns number
- index: number
copyWithin 
- Returns the this object after copying a section of the array identified by start and end to the same array starting at position target - Parameters- target: numberIf target is negative, it is treated as length+target where length is the length of the array. 
- start: numberIf start is negative, it is treated as length+start. If end is negative, it is treated as length+end. 
- Optionalend: number- If not specified, length of the this object is used as its default value. 
 - Returns this
- target: number
entries
- Returns an array of key, value pairs for every entry in the array - Returns ArrayIterator<[number, number]>
every
- Determines whether all the members of an array satisfy the specified test. - Parameters- predicate: (value: number, index: number, array: this) => unknownA function that accepts up to three arguments. The every method calls the predicate function for each element in the array until the predicate returns a value which is coercible to the Boolean value false, or until the end of the array. 
- OptionalthisArg: any- An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value. 
 - Returns boolean
- predicate: (value: number, index: number, array: this) => unknown
fill
- Changes all array elements from - startto- endindex to a static- valueand returns the modified array- Parameters- value: numbervalue to fill array section with 
- Optionalstart: number- index to start filling the array at. If start is negative, it is treated as length+start where length is the length of the array. 
- Optionalend: number- index to stop filling the array at. If end is negative, it is treated as length+end. 
 - Returns this
- value: number
filter
- filter(
 predicate: (value: number, index: number, array: this) => any,
 thisArg?: any,
 ): Float32Array<ArrayBuffer>Returns the elements of an array that meet the condition specified in a callback function. Parameters- predicate: (value: number, index: number, array: this) => anyA function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array. 
- OptionalthisArg: any- An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value. 
 Returns Float32Array<ArrayBuffer>
- predicate: (value: number, index: number, array: this) => any
find
- Returns the value of the first element in the array where predicate is true, and undefined otherwise. - Parameters- predicate: (value: number, index: number, obj: this) => booleanfind calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined. 
- OptionalthisArg: any- If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead. 
 - Returns number
- predicate: (value: number, index: number, obj: this) => boolean
findIndex 
- Returns the index of the first element in the array where predicate is true, and -1 otherwise. - Parameters- predicate: (value: number, index: number, obj: this) => booleanfind calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, findIndex immediately returns that element index. Otherwise, findIndex returns -1. 
- OptionalthisArg: any- If provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead. 
 - Returns number
- predicate: (value: number, index: number, obj: this) => boolean
forEach 
- Performs the specified action for each element in an array. - Parameters- callbackfn: (value: number, index: number, array: this) => voidA function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. 
- OptionalthisArg: any- An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value. 
 - Returns void
- callbackfn: (value: number, index: number, array: this) => void
includes
- Determines whether an array includes a certain element, returning true or false as appropriate. - Parameters- searchElement: numberThe element to search for. 
- OptionalfromIndex: number- The position in this array at which to begin searching for searchElement. 
 - Returns boolean
- searchElement: number
indexOf 
- Returns the index of the first occurrence of a value in an array. - Parameters- searchElement: numberThe value to locate in the array. 
- OptionalfromIndex: number- The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0. 
 - Returns number
- searchElement: number
join
- Adds all the elements of an array separated by the specified separator string. - Parameters- Optionalseparator: string- A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma. 
 - Returns string
keys
- Returns an list of keys in the array - Returns ArrayIterator<number>
lastIndexOf  
- Returns the index of the last occurrence of a value in an array. - Parameters- searchElement: numberThe value to locate in the array. 
- OptionalfromIndex: number- The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0. 
 - Returns number
- searchElement: number
map
- map(
 callbackfn: (value: number, index: number, array: this) => number,
 thisArg?: any,
 ): Float32Array<ArrayBuffer>Calls a defined callback function on each element of an array, and returns an array that contains the results. Parameters- callbackfn: (value: number, index: number, array: this) => numberA function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array. 
- OptionalthisArg: any- An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value. 
 Returns Float32Array<ArrayBuffer>
- callbackfn: (value: number, index: number, array: this) => number
reduce
- reduce(
 callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => number,
 ): numberCalls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. Parameters- callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => numberA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array. 
 Returns number
- callbackfn: (
- reduce(
 callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => number,
 initialValue: number,
 ): numberParameters- callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => number
- initialValue: number
 Returns number
- callbackfn: (
- reduce<U>(
 callbackfn: (
 previousValue: U,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => U,
 initialValue: U,
 ): UCalls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. Type Parameters- U
 Parameters- callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => UA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array. 
- initialValue: UIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value. 
 Returns U
reduceRight 
- reduceRight(
 callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => number,
 ): numberCalls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. Parameters- callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => numberA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. 
 Returns number
- callbackfn: (
- reduceRight(
 callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => number,
 initialValue: number,
 ): numberParameters- callbackfn: (
 previousValue: number,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => number
- initialValue: number
 Returns number
- callbackfn: (
- reduceRight<U>(
 callbackfn: (
 previousValue: U,
 currentValue: number,
 currentIndex: number,
 array: this,
 ) => U,
 initialValue: U,
 ): UCalls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. Type Parameters- U
 Parameters- callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: this) => UA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. 
- initialValue: UIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value. 
 Returns U
reverse
- Reverses the elements in an Array. - Returns this
set
- Sets a value or an array of values. - Parameters- array: ArrayLike<number>A typed or untyped array of values to set. 
- Optionaloffset: number- The index in the current array at which the values are to be written. 
 - Returns void
- array: ArrayLike<number>
slice
- Returns a section of an array. - Parameters- Optionalstart: number- The beginning of the specified portion of the array. 
- Optionalend: number- The end of the specified portion of the array. This is exclusive of the element at the index 'end'. 
 - Returns Float32Array<ArrayBuffer>
some
- Determines whether the specified callback function returns true for any element of an array. - Parameters- predicate: (value: number, index: number, array: this) => unknownA function that accepts up to three arguments. The some method calls the predicate function for each element in the array until the predicate returns a value which is coercible to the Boolean value true, or until the end of the array. 
- OptionalthisArg: any- An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value. 
 - Returns boolean
- predicate: (value: number, index: number, array: this) => unknown
sort
- Sorts an array. - Parameters- OptionalcompareFn: (a: number, b: number) => number- Function used to determine the order of the elements. It is expected to return a negative value if first argument is less than second argument, zero if they're equal and a positive value otherwise. If omitted, the elements are sorted in ascending order. - [11,2,22,1].sort((a, b) => a - b)
 - Returns this
subarray
- Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements at begin, inclusive, up to end, exclusive. - Parameters- Optionalbegin: number- The index of the beginning of the array. 
- Optionalend: number- The index of the end of the array. 
 - Returns Float32Array<ArrayBuffer>
toLocaleString  
- Converts a number to a string by using the current locale. - Returns string
- Parameters- locales: string | string[]
- Optionaloptions: NumberFormatOptions
 - Returns string
toString 
- Returns a string representation of an array. - Returns string
valueOf 
- Returns the primitive value of the specified object. - Returns this
values
- Returns an list of values in the array - Returns ArrayIterator<number>
Staticfrom
- Creates an array from an array-like or iterable object. - Parameters- arrayLike: ArrayLike<number>An array-like object to convert to an array. 
 - Returns Float32Array<ArrayBuffer>
- arrayLike: ArrayLike<number>
- from<T>(
 arrayLike: ArrayLike<T>,
 mapfn: (v: T, k: number) => number,
 thisArg?: any,
 ): Float32Array<ArrayBuffer>Creates an array from an array-like or iterable object. Type Parameters- T
 ParametersReturns Float32Array<ArrayBuffer>
- Creates an array from an array-like or iterable object. - Parameters- elements: Iterable<number>An iterable object to convert to an array. 
 - Returns Float32Array<ArrayBuffer>
- elements: Iterable<number>
- from<T>(
 elements: Iterable<T>,
 mapfn?: (v: T, k: number) => number,
 thisArg?: any,
 ): Float32Array<ArrayBuffer>Creates an array from an array-like or iterable object. Type Parameters- T
 ParametersReturns Float32Array<ArrayBuffer>
Staticof
- Returns a new array from a set of elements. - Parameters- ...items: number[]A set of elements to include in the new array object. 
 - Returns Float32Array<ArrayBuffer>
- ...items: number[]
Static
StaticBYTE_LENGTH 
- get BYTE_LENGTH(): numberReturns numberThe number of bytes in a Mat4. 
Staticadd
Staticadjoint
Staticclone
Staticcopy
Staticcreate
Staticdecompose
- Decomposes a transformation matrix into its rotation, translation and scale components. Returns only the rotation component - Parameters- Returns Vec4Like- out_r
Staticdeterminant
Staticequals
StaticexactEquals 
Staticfrob
StaticfromQuat 
StaticfromQuat2 
StaticfromRotation 
StaticfromRotationTranslation  
- Creates a matrix from a quaternion rotation and vector translation This is equivalent to (but much faster than): - mat4.identity(dest);
 mat4.translate(dest, vec);
 let quatMat = mat4.create();
 quat4.toMat4(quat, quatMat);
 mat4.multiply(dest, quatMat);- Parameters- Returns Mat4Like- out
StaticfromRotationTranslationScale   
- fromRotationTranslationScale(
 out: Mat4Like,
 q: Readonly<Vec4Like>,
 v: Readonly<Vec3Like>,
 s: Readonly<Vec3Like>,
 ): Mat4LikeCreates a matrix from a quaternion rotation, vector translation and vector scale This is equivalent to (but much faster than): mat4.identity(dest);
 mat4.translate(dest, vec);
 let quatMat = mat4.create();
 quat4.toMat4(quat, quatMat);
 mat4.multiply(dest, quatMat);
 mat4.scale(dest, scale);ParametersReturns Mat4Likeout
StaticfromRotationTranslationScaleOrigin    
- fromRotationTranslationScaleOrigin(
 out: Mat4Like,
 q: Readonly<Vec4Like>,
 v: Readonly<Vec3Like>,
 s: Readonly<Vec3Like>,
 o: Readonly<Vec3Like>,
 ): Mat4LikeCreates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin. This is equivalent to (but much faster than): mat4.identity(dest);
 mat4.translate(dest, vec);
 mat4.translate(dest, origin);
 let quatMat = mat4.create();
 quat4.toMat4(quat, quatMat);
 mat4.multiply(dest, quatMat);
 mat4.scale(dest, scale)
 mat4.translate(dest, negativeOrigin);ParametersReturns Mat4Likeout
StaticfromScaling 
StaticfromTranslation 
StaticfromValues 
StaticfromXRotation  
StaticfromYRotation  
StaticfromZRotation  
Staticfrustum
- frustum(
 out: Mat4Like,
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far?: number,
 ): Mat4LikeAlias for Mat4.frustumNO Parameters- out: Mat4Like
- left: number
- right: number
- bottom: number
- top: number
- near: number
- Optionalfar: number
 Returns Mat4LikeDeprecatedUse Mat4.frustumNO or Mat4.frustumZO explicitly 
StaticfrustumNO 
- frustumNO(
 out: Mat4Like,
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far?: number,
 ): Mat4LikeGenerates a frustum matrix with the given bounds The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1], which matches WebGL/OpenGL's clip volume. Passing null/undefined/no value for far will generate infinite projection matrix. Parameters- out: Mat4Likemat4 frustum matrix will be written into 
- left: numberLeft bound of the frustum 
- right: numberRight bound of the frustum 
- bottom: numberBottom bound of the frustum 
- top: numberTop bound of the frustum 
- near: numberNear bound of the frustum 
- Optionalfar: number- Far bound of the frustum, can be null or Infinity 
 Returns Mat4Likeout
- out: Mat4Like
StaticfrustumZO 
- frustumZO(
 out: Mat4Like,
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far?: number,
 ): Mat4LikeGenerates a frustum matrix with the given bounds The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1], which matches WebGPU/Vulkan/DirectX/Metal's clip volume. Passing null/undefined/no value for far will generate infinite projection matrix. Parameters- out: Mat4Likemat4 frustum matrix will be written into 
- left: numberLeft bound of the frustum 
- right: numberRight bound of the frustum 
- bottom: numberBottom bound of the frustum 
- top: numberTop bound of the frustum 
- near: numberNear bound of the frustum 
- Optionalfar: number- Far bound of the frustum, can be null or Infinity 
 Returns Mat4Likeout
- out: Mat4Like
StaticgetRotation 
- Returns a quaternion representing the rotational component of a transformation matrix. If a matrix is built with fromRotationTranslation, the returned quaternion will be the same as the quaternion originally supplied. - Parameters- Returns Vec4Like- out
StaticgetScaling 
- Returns the scaling factor component of a transformation matrix. If a matrix is built with fromRotationTranslationScale with a normalized Quaternion parameter, the returned vector will be the same as the scaling vector originally supplied. - Parameters- Returns Vec3Like- out 
StaticgetTranslation 
- Returns the translation vector component of a transformation matrix. If a matrix is built with fromRotationTranslation, the returned vector will be the same as the translation vector originally supplied. - Parameters- Returns Vec3Like- out 
Staticidentity
Staticinvert
StaticlookAt 
- lookAt(
 out: Mat4Like,
 eye: Readonly<Vec3Like>,
 center: Readonly<Vec3Like>,
 up: Readonly<Vec3Like>,
 ): Mat4LikeGenerates a look-at matrix with the given eye position, focal point, and up axis. If you want a matrix that actually makes an object look at another object, you should use targetTo instead. ParametersReturns Mat4Likeout
Staticmul
Staticmultiply
StaticmultiplyScalar 
StaticmultiplyScalarAndAdd   
StaticnormalFromMat4  
StaticnormalFromMat4Fast   
- Calculates a Mat4 normal matrix (transpose inverse) from a Mat4 This version omits the calculation of the constant factor (1/determinant), so any normals transformed with it will need to be renormalized. From https://stackoverflow.com/a/27616419/25968 - Parameters- Returns Mat4Like- out
Staticortho
- ortho(
 out: Mat4Like,
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far: number,
 ): Mat4LikeAlias for Mat4.orthoNO Parameters- out: Mat4Like
- left: number
- right: number
- bottom: number
- top: number
- near: number
- far: number
 Returns Mat4LikeDeprecatedUse Mat4.orthoNO or Mat4.orthoZO explicitly 
StaticorthoNO 
- orthoNO(
 out: Mat4Like,
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far: number,
 ): Mat4LikeGenerates an orthogonal projection matrix with the given bounds. The near / far clip planes correspond to a normalized device coordinate Z range of [-1, 1], which matches WebGL / OpenGLs clip volume. Parameters- out: Mat4Likemat4 frustum matrix will be written into 
- left: numberLeft bound of the frustum 
- right: numberRight bound of the frustum 
- bottom: numberBottom bound of the frustum 
- top: numberTop bound of the frustum 
- near: numberNear bound of the frustum 
- far: numberFar bound of the frustum 
 Returns Mat4Likeout
- out: Mat4Like
StaticorthoZO 
- orthoZO(
 out: Mat4Like,
 left: number,
 right: number,
 bottom: number,
 top: number,
 near: number,
 far: number,
 ): Mat4LikeGenerates a orthogonal projection matrix with the given bounds. The near / far clip planes correspond to a normalized device coordinate Z range of [0, 1], which matches WebGPU / Vulkan / DirectX / Metal's clip volume. Parameters- out: Mat4Likemat4 frustum matrix will be written into 
- left: numberLeft bound of the frustum 
- right: numberRight bound of the frustum 
- bottom: numberBottom bound of the frustum 
- top: numberTop bound of the frustum 
- near: numberNear bound of the frustum 
- far: numberFar bound of the frustum 
 Returns Mat4Likeout
- out: Mat4Like
Staticperspective
- Alias for Mat4.perspectiveNO - Parameters- out: Mat4Like
- fovy: number
- aspect: number
- near: number
- Optionalfar: number
 - Returns Mat4Like- Deprecated- Use Mat4.perspectiveNO or Mat4.perspectiveZO explicitly 
StaticperspectiveFromFieldOfView    
- perspectiveFromFieldOfView(
 out: Mat4Like,
 fov: {
 downDegrees: number;
 leftDegrees: number;
 rightDegrees: number;
 upDegrees: number;
 },
 near: number,
 far: number,
 ): Mat4LikeGenerates a perspective projection matrix with the given field of view. This is primarily useful for generating projection matrices to be used with the still experimental WebVR API. Parameters- out: Mat4Likemat4 frustum matrix will be written into 
- fov: {
 downDegrees: number;
 leftDegrees: number;
 rightDegrees: number;
 upDegrees: number;
 }Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees 
- near: numberNear bound of the frustum 
- far: numberFar bound of the frustum 
 Returns Mat4Likeout
- out: Mat4Like
StaticperspectiveNO 
- Generates a perspective projection matrix with the given bounds. The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1], which matches WebGL/OpenGL's clip volume. Passing null/undefined/no value for far will generate infinite projection matrix. - Parameters- out: Mat4Likemat4 frustum matrix will be written into 
- fovy: numberVertical field of view in radians 
- aspect: numberAspect ratio. typically viewport width/height 
- near: numberNear bound of the frustum 
- Optionalfar: number- Far bound of the frustum, can be null or Infinity 
 - Returns Mat4Like- out
- out: Mat4Like
StaticperspectiveZO 
- Generates a perspective projection matrix suitable for WebGPU with the given bounds. The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1], which matches WebGPU/Vulkan/DirectX/Metal's clip volume. Passing null/undefined/no value for far will generate infinite projection matrix. - Parameters- out: Mat4Likemat4 frustum matrix will be written into 
- fovy: numberVertical field of view in radians 
- aspect: numberAspect ratio. typically viewport width/height 
- near: numberNear bound of the frustum 
- Optionalfar: number- Far bound of the frustum, can be null or Infinity 
 - Returns Mat4Like- out
- out: Mat4Like
A 4x4 Matrix