Class: Matrix4
Defined in: src/math/Matrix4.ts:12
math 4*4 matrix
Constructors
Constructor
new Matrix4(
doMatrix?):Matrix4
Defined in: src/math/Matrix4.ts:342
Create a Matrix4.
Parameters
doMatrix?
boolean = false
reserved flag; when set, requests an explicit matrix allocation
Returns
Matrix4
Properties
blockBytes
staticblockBytes:number
Defined in: src/math/Matrix4.ts:17
matrix44 bytes block size
allocCount
staticallocCount:number=1000
Defined in: src/math/Matrix4.ts:27
matrix do total count
allocOnceCount
staticallocOnceCount:number=1000
Defined in: src/math/Matrix4.ts:32
quantity allocated for each capacity expansion
maxCount
staticmaxCount:number
Defined in: src/math/Matrix4.ts:37
matrix has max limit count
useCount
staticuseCount:number=0
Defined in: src/math/Matrix4.ts:42
current matrix use count
dynamicMatrixBytes
staticdynamicMatrixBytes:FloatArray
Defined in: src/math/Matrix4.ts:58
matrix do use share bytesArray
dynamicMatrixBytes_32bit
staticdynamicMatrixBytes_32bit:Float32Array
Defined in: src/math/Matrix4.ts:60
32-bit float view of the shared matrix byte array.
matrixWorldPositionHLDatas
staticmatrixWorldPositionHLDatas:Float32Array
Defined in: src/math/Matrix4.ts:63
Shared buffer holding high-precision (split-float) world position data.
dynamicGlobalMatrixRef
staticdynamicGlobalMatrixRef:Matrix4[]
Defined in: src/math/Matrix4.ts:68
cache all use do matrix
help_matrix_0
statichelp_matrix_0:Matrix4
Defined in: src/math/Matrix4.ts:78
help fix global matrix 0
help_matrix_1
statichelp_matrix_1:Matrix4
Defined in: src/math/Matrix4.ts:83
help fix global matrix 1
help_matrix_2
statichelp_matrix_2:Matrix4
Defined in: src/math/Matrix4.ts:88
help fix global matrix 2
helpMatrix
statichelpMatrix:Matrix4
Defined in: src/math/Matrix4.ts:93
help fix global matrix 3
helpMatrix2
statichelpMatrix2:Matrix4
Defined in: src/math/Matrix4.ts:98
help fix global matrix 4
index
index:
number=0
Defined in: src/math/Matrix4.ts:110
matrix index at global matrix list
rawData
rawData:
FloatArray
Defined in: src/math/Matrix4.ts:121
matrix raw data format FloatArray
See
Accessors
determinant
Get Signature
get determinant():
number
Defined in: src/math/Matrix4.ts:1927
Returns the matrix determinant
Returns
number
number determinant
position
Get Signature
get position():
Vector3
Defined in: src/math/Matrix4.ts:1957
Return translation
Returns
Vector3 Position of translation
Set Signature
set position(
value):void
Defined in: src/math/Matrix4.ts:1966
Set Position of translation
Parameters
value
Position of translation
Returns
void
scale
Get Signature
get scale():
Vector3
Defined in: src/math/Matrix4.ts:1978
get Component of scale
Returns
Vector3 scale
Set Signature
set scale(
value):void
Defined in: src/math/Matrix4.ts:1986
Set component of scale
Parameters
value
Returns
void
Methods
allocMatrix()
staticallocMatrix(allocCount):void
Defined in: src/math/Matrix4.ts:130
alloc web runtime cpu memory totalCount * 4(float) * 4 init matrix memory by totalCount * 4(float) * 4
Parameters
allocCount
number
Returns
void
fromToRotation()
staticfromToRotation(fromDirection,toDirection,target?,epsilon?):Matrix4
Defined in: src/math/Matrix4.ts:162
create matrix from two direction
Parameters
fromDirection
first direction
toDirection
second direction
target?
Matrix4
ref matrix
epsilon?
number
tiny number
Returns
Matrix4
return new one matrix
getAxisRotation()
staticgetAxisRotation(x,y,z,degrees):Matrix4
Defined in: src/math/Matrix4.ts:176
Generate a matrix (rotate degrees with x,y,z as the center axis)
Parameters
x
number
x on the central axis
y
number
y on the central axis
z
number
z on the central axis
degrees
number
rotation angle
Returns
Matrix4
Matrix4 result
sanitizeEuler()
staticsanitizeEuler(euler):void
Defined in: src/math/Matrix4.ts:210
Arrange the Euler values
Parameters
euler
Euler values
Returns
void
makePositive()
staticmakePositive(euler):void
Defined in: src/math/Matrix4.ts:218
Parameters
euler
Returns
void
matrixToEuler()
staticmatrixToEuler(matrix,v):boolean
Defined in: src/math/Matrix4.ts:250
Convert the matrix to Euler angles
Parameters
matrix
Matrix4
Matrix to be transformed
v
euler angle
Returns
boolean
matrixMultiply()
staticmatrixMultiply(aMat,bMat,target_Mat):void
Defined in: src/math/Matrix4.ts:287
Multiply the world matrix, specifying parameters and results according to the index
Parameters
aMat
Matrix4
Matrix to be multiplied (please specify index)
bMat
Matrix4
Matrix to be multiplied (please specify index)
target_Mat
Matrix4
Result matrix (get results based on index)
Returns
void
matrixAppend()
staticmatrixAppend(aMat,bMat,target_Mat):void
Defined in: src/math/Matrix4.ts:297
World matrix extension, according to the index to specify parameters and results
Parameters
aMat
Matrix4
Matrix to be multiplied (please specify index)
bMat
Matrix4
Matrix to be multiplied (please specify index)
target_Mat
Matrix4
Result matrix (get results based on index)
Returns
void
matrixRotateY()
staticmatrixRotateY(rad,target_Mat):void
Defined in: src/math/Matrix4.ts:306
Rotate a matrix around the Y axis by the given angle, writing the result into the target matrix.
Parameters
rad
number
rotation angle, in radians
target_Mat
Matrix4
result matrix (referenced by index)
Returns
void
matrixRotate()
staticmatrixRotate(rad,axis,target_Mat):void
Defined in: src/math/Matrix4.ts:316
Rotate a matrix around an arbitrary axis by the given angle, writing the result into the target matrix.
Parameters
rad
number
rotation angle, in radians
axis
rotation axis
target_Mat
Matrix4
result matrix (referenced by index)
Returns
void
allocIndex()
staticallocIndex():number
Defined in: src/math/Matrix4.ts:325
Allocate a matrix index, reusing a freed index when available.
Returns
number
freeIndex()
staticfreeIndex(matrix):void
Defined in: src/math/Matrix4.ts:329
Return a matrix's index to the free list for later reuse.
Parameters
matrix
Matrix4
Returns
void
lookAt()
lookAt(
eye,at,up?):void
Defined in: src/math/Matrix4.ts:373
current matrix move position and rotation to target
Parameters
eye
eye position
at
target position
up?
Vector3 = Vector3.Y_AXIS
normalize axis way
Returns
void
multiply()
multiply(
mat4):this
Defined in: src/math/Matrix4.ts:421
matrix multiply
Parameters
mat4
Matrix4
multiply target
Returns
this
premultiply()
premultiply(
m):this
Defined in: src/math/Matrix4.ts:466
Set this = m * this.
Parameters
m
Matrix4
Returns
this
multiply()
staticmultiply(a,b,result?):Matrix4
Defined in: src/math/Matrix4.ts:471
Multiply two matrices: result = a * b. Allocates a new Matrix4 if result is omitted.
Parameters
a
Matrix4
b
Matrix4
result?
Matrix4
Returns
Matrix4
invert()
staticinvert(src,result?):Matrix4
Defined in: src/math/Matrix4.ts:482
Invert a matrix into result. Returns null when src is singular.
Parameters
src
Matrix4
source matrix
result?
Matrix4
optional output matrix
Returns
Matrix4
multiplyMatrices()
multiplyMatrices(
a,b):Matrix4
Defined in: src/math/Matrix4.ts:498
Parameters
a
Matrix4
b
Matrix4
Returns
Matrix4
multiplyPoint3()
multiplyPoint3(
v):Vector3
Defined in: src/math/Matrix4.ts:542
Convert a point (w=1) to this matrix space. Mutates and returns v.
Parameters
v
target point — mutated in place
Returns
multiplyPoint3()
staticmultiplyPoint3(m,v,result?):Vector3
Defined in: src/math/Matrix4.ts:547
Transform point v (w=1) by matrix m into result. Allocates a new Vector3 if result is omitted.
Parameters
m
Matrix4
v
result?
Returns
multiplyVector4()
multiplyVector4(
a):Vector3
Defined in: src/math/Matrix4.ts:561
Transform a homogeneous vector (w computed from matrix) and divide by w. Mutates and returns a.
Parameters
a
Returns
multiplyVector4()
staticmultiplyVector4(m,a,result?):Vector3
Defined in: src/math/Matrix4.ts:566
Transform homogeneous vector a by matrix m (w computed and divided out) into result.
Parameters
m
Matrix4
a
result?
Returns
transformVector4()
transformVector4(
v):Vector3
Defined in: src/math/Matrix4.ts:582
Transform a 4D vector (v.w used directly) by this matrix. Mutates and returns v.
Parameters
v
Returns
transformVector4()
statictransformVector4(m,v,result?):Vector3
Defined in: src/math/Matrix4.ts:587
Transform 4D vector v (v.w used directly) by matrix m into result.
Parameters
m
Matrix4
v
result?
Returns
perspectiveMultiplyPoint3()
perspectiveMultiplyPoint3(
v,output):boolean
Defined in: src/math/Matrix4.ts:604
Convert projection coordinates to 3D coordinates
Parameters
v
vector3 target
output
ref vector3d
Returns
boolean
perspective()
perspective(
fov,aspect,zn,zf):void
Defined in: src/math/Matrix4.ts:633
set matrix perspective
Parameters
fov
number
perspective angle 0 ~ 90
aspect
number
aspect ratio
zn
number
near plane
zf
number
far plane
Returns
void
perspective3()
perspective3(
fov,aspect,near,far):void
Defined in: src/math/Matrix4.ts:667
Set this matrix to a perspective projection defined by field of view.
Parameters
fov
number
vertical field of view, in degrees
aspect
number
aspect ratio (width / height)
near
number
near plane distance
far
number
far plane distance
Returns
void
frustum()
frustum(
l,r,b,t,n,f):void
Defined in: src/math/Matrix4.ts:682
Set this matrix to a perspective projection defined by frustum bounds.
Parameters
l
number
left plane
r
number
right plane
b
number
bottom plane
t
number
top plane
n
number
near plane
f
number
far plane
Returns
void
ortho()
ortho(
w,h,zn,zf):Matrix4
Defined in: src/math/Matrix4.ts:714
set matrix orthogonal projection
Parameters
w
number
screen width
h
number
screen height
zn
number
camera near plane
zf
number
camera far plane
Returns
Matrix4
this matrix
orthoZO()
orthoZO(
left,right,bottom,top,near,far):Matrix4
Defined in: src/math/Matrix4.ts:750
set matrix orthogonal projection by view side
Parameters
left
number
orthogonal view left
right
number
orthogonal view right
bottom
number
orthogonal view bottom
top
number
orthogonal view top
near
number
camera near plane
far
number
camera far plane
Returns
Matrix4
this matrix
orthoOffCenter()
orthoOffCenter(
l,r,b,t,zn,zf):void
Defined in: src/math/Matrix4.ts:777
set matrix orthogonal projection by view center
Parameters
l
number
r
number
b
number
t
number
zn
number
zf
number
Returns
void
transformDir()
transformDir(
fromDirection,toDirection,epsilon?):this
Defined in: src/math/Matrix4.ts:808
set matrix from two direction
Parameters
fromDirection
first direction
toDirection
second direction
epsilon?
number
tiny number
Returns
this
append()
append(
lhs):this
Defined in: src/math/Matrix4.ts:930
multiply matrix a b
Parameters
lhs
Matrix4
target matrix
Returns
this
add()
add(
lhs):Matrix4
Defined in: src/math/Matrix4.ts:976
matrix a add matrix b
Parameters
lhs
Matrix4
target matrix.
Returns
Matrix4
Matrix4 result.
sub()
sub(
lhs):Matrix4
Defined in: src/math/Matrix4.ts:1038
matrix a sub matrix b
Parameters
lhs
Matrix4
target matrix b.
Returns
Matrix4
Matrix4 .
mult()
mult(
v):Matrix4
Defined in: src/math/Matrix4.ts:1101
Matrix times components.
Parameters
v
number
This matrix is going to be multiplied by this value
Returns
Matrix4
Matrix4 Returns a multiplicative result matrix.
appendRotation()
appendRotation(
degrees,axis):void
Defined in: src/math/Matrix4.ts:1147
Add a direction Angle rotation to the current matrix (the matrix created by rotating degrees according to axis)
Parameters
degrees
number
Angle of rotation.
axis
Angle of rotation around axis axis
Returns
void
Version
Orillusion3D 0.5.1
createByRotation()
createByRotation(
degrees,axis):this
Defined in: src/math/Matrix4.ts:1157
Create a matrix based on the axis and rotation Angle (the matrix created by rotating the degrees according to the axis)
Parameters
degrees
number
Angle of rotation.
axis
Rotation Angle around axis axis. Axis needs to be specified as the orientation of an axis between x/y/z
Returns
this
appendScale()
appendScale(
xScale,yScale,zScale):void
Defined in: src/math/Matrix4.ts:1233
Append the triaxial scaling value
Parameters
xScale
number
x axis scaling
yScale
number
y axis scaling
zScale
number
z axis scaling
Returns
void
createByScale()
createByScale(
xScale,yScale,zScale):void
Defined in: src/math/Matrix4.ts:1244
A scaling matrix is generated and other properties are reset
Parameters
xScale
number
x axis scaling
yScale
number
y axis scaling
zScale
number
z axis scaling
Returns
void
appendTranslation()
appendTranslation(
x,y,z):void
Defined in: src/math/Matrix4.ts:1270
Plus a translation matrix
Parameters
x
number
x axis scaling
y
number
y axis scaling
z
number
z axis scaling
Returns
void
clone()
clone():
Matrix4
Defined in: src/math/Matrix4.ts:1281
Returns a clone of the current matrix
Returns
Matrix4
Matrix4 The cloned matrix
copyRowFrom()
copyRowFrom(
row,Vector3):void
Defined in: src/math/Matrix4.ts:1292
Assigns a value to one row of the current matrix
Parameters
row
number
Row of copy
Vector3
Value of copy
Returns
void
copyRowTo()
copyRowTo(
row,Vector3):void
Defined in: src/math/Matrix4.ts:1329
One of the rows in the copy matrix stores the values in Vector3.
Parameters
row
number
Row of copy
Vector3
Copy the storage target
Returns
void
copy()
copy(
sourceMatrix3D):Matrix4
Defined in: src/math/Matrix4.ts:1366
Assigns the value of a matrix to the current matrix.
Parameters
sourceMatrix3D
Matrix4
source Matrix
Returns
Matrix4
Returns the current matrix
copyRawDataTo()
copyRawDataTo(
vector,index?,transpose?):void
Defined in: src/math/Matrix4.ts:1393
CoMath.PIes the value of the current matrix to a float array.
Parameters
vector
The target array.
index?
number = 0
copy from the index of the array.
transpose?
boolean = false
Whether to transpose the current matrix.
Returns
void
copyColFrom()
copyColFrom(
col,Vector3):void
Defined in: src/math/Matrix4.ts:1418
Assigns a value to a column of the current matrix
Parameters
col
number
column
Vector3
Source of value
Returns
void
copyColTo()
copyColTo(
col,Vector3):void
Defined in: src/math/Matrix4.ts:1460
Copy a column of the current matrix into a Vector3.
Parameters
col
number
column index (0-3)
Vector3
target of copy
Returns
void
copyToMatrix3D()
copyToMatrix3D(
dest):void
Defined in: src/math/Matrix4.ts:1496
Copy the current matrix
Parameters
dest
Matrix4
Target of copy
Returns
void
makeRotationFromQuaternion()
makeRotationFromQuaternion(
quaternion):Matrix4
Defined in: src/math/Matrix4.ts:1505
Calculate rotation matrix
Parameters
quaternion
Rotate the quaternion
Returns
Matrix4
decompose()
decompose(
orientationStyle?,target?):Vector3[]
Defined in: src/math/Matrix4.ts:1519
Decompose the current matrix
Parameters
orientationStyle?
string = 'eulerAngles'
The default decomposition type is Orientation3D.EULER_ANGLES
target?
Vector3[]
Returns
Vector3[]
Vector3[3] pos rot scale
See
- Orientation3D.AXIS_ANGLE
- Orientation3D.EULER_ANGLES
- Orientation3D.QUATERNION
getEuler()
staticgetEuler(target,quaternion,isDegree?,order?):Vector3
Defined in: src/math/Matrix4.ts:1647
Get the Euler vector
Parameters
target
Vector of results
quaternion
Rotate the quaternion
isDegree?
boolean = true
Whether to convert to Angle
order?
string
convert order
Returns
compose()
compose(
position,quaternion,scale):Matrix4
Defined in: src/math/Matrix4.ts:1660
Calculate the combined matrix of displacement, rotation and scaling
Parameters
position
translation
quaternion
rotation
scale
scale
Returns
Matrix4
deltaTransformVector()
deltaTransformVector(
v,target?):Vector3
Defined in: src/math/Matrix4.ts:1713
The current matrix transforms a vector
Parameters
v
Vector to transform
target?
The default is null and if the current argument is null then a new Vector3 will be returned
Returns
Vector3 The transformed vector
identity()
identity():
Matrix4
Defined in: src/math/Matrix4.ts:1731
Unifies the current matrix
Returns
Matrix4
fill()
fill(
value):void
Defined in: src/math/Matrix4.ts:1757
Fill the current matrix
Parameters
value
number
The filled value
Returns
void
invers33()
invers33():
void
Defined in: src/math/Matrix4.ts:1780
Invert the current matrix
Returns
void
invert()
invert():
this
Defined in: src/math/Matrix4.ts:1817
Invert the current matrix in place. No-ops silently when the matrix is singular (matches Matrix3.invert). Use Matrix4.invert(src, result?) for the safe variant that returns null on singular input.
Returns
this
transformPoint()
transformPoint(
v):Vector3
Defined in: src/math/Matrix4.ts:1865
Convert the given point from the current matrix coordinate system to world coordinates. Mutates and returns v.
Parameters
v
Returns
transformPoint()
statictransformPoint(m,v,result?):Vector3
Defined in: src/math/Matrix4.ts:1870
Transform point v (with translation) by matrix m into result. Allocates a new Vector3 if result is omitted.
Parameters
m
Matrix4
v
result?
Returns
transformVector()
transformVector(
v):Vector3
Defined in: src/math/Matrix4.ts:1884
Transform a 3D direction vector (no translation) by this matrix. Mutates and returns v.
Parameters
v
Returns
transformVector()
statictransformVector(m,v,result?):Vector3
Defined in: src/math/Matrix4.ts:1889
Transform direction v (no translation) by matrix m into result. Allocates a new Vector3 if result is omitted.
Parameters
m
Matrix4
v
result?
Returns
transpose()
transpose():
void
Defined in: src/math/Matrix4.ts:1902
The current matrix transpose
Returns
void
getPosition()
getPosition(
out?):Vector3
Defined in: src/math/Matrix4.ts:1944
Return matrix displacement
Parameters
out?
Position of translation
Returns
Position of translation
toString()
toString():
string
Defined in: src/math/Matrix4.ts:2002
Returns the value of the matrix as a string
Returns
string
string
lerp()
lerp(
m0,m1,t):void
Defined in: src/math/Matrix4.ts:2047
Interpolate between two matrices
Parameters
m0
Matrix4
Matrix 0
m1
Matrix4
Matrix 1
t
number
Factor of interpolation 0.0 - 1.0
Returns
void
get()
get(
row,column):number
Defined in: src/math/Matrix4.ts:2058
Read matrix element values
Parameters
row
number
row
column
number
column
Returns
number
set()
set(
row,column,v):void
Defined in: src/math/Matrix4.ts:2068
Sets the matrix element values
Parameters
row
number
row
column
number
column
v
number
value
Returns
void
getMaxScaleOnAxis()
getMaxScaleOnAxis():
number
Defined in: src/math/Matrix4.ts:2075
Get the maximum value of the matrix scaled on each axis
Returns
number
translate()
translate(
inTrans):Matrix4
Defined in: src/math/Matrix4.ts:2090
Calculate the displacement from the vector
Parameters
inTrans
Vector
Returns
Matrix4
current matrix
setTRInverse()
setTRInverse(
pos,q):void
Defined in: src/math/Matrix4.ts:2109
Set this matrix to the inverse of the translation-rotation transform built from pos and q.
Parameters
pos
translation
q
rotation quaternion
Returns
void
setScale()
setScale(
inScale):Matrix4
Defined in: src/math/Matrix4.ts:2120
Set scale value
Parameters
inScale
scale value
Returns
Matrix4
this matrix
makeBasis()
makeBasis(
xAxis,yAxis,zAxis):Matrix4
Defined in: src/math/Matrix4.ts:2146
Generate the matrix according to the three axes
Parameters
xAxis
yAxis
zAxis
Returns
Matrix4
makeRotationAxis()
makeRotationAxis(
axis,angle):Matrix4
Defined in: src/math/Matrix4.ts:2161
Set this matrix to a rotation about the given axis by the given angle (in radians).
Parameters
axis
rotation axis (should be unit length)
angle
number
rotation angle, in radians
Returns
Matrix4

