@lightningjs/renderer 2.6.0 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/core-api.d.ts +74 -0
- package/dist/exports/core-api.js +96 -0
- package/dist/exports/core-api.js.map +1 -0
- package/dist/exports/main-api.d.ts +30 -0
- package/dist/exports/main-api.js +45 -0
- package/dist/exports/main-api.js.map +1 -0
- package/dist/src/core/CoreExtension.d.ts +12 -0
- package/dist/src/core/CoreExtension.js +29 -0
- package/dist/src/core/CoreExtension.js.map +1 -0
- package/dist/src/core/CoreNode.js +0 -3
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreStuff.d.ts +1 -0
- package/dist/src/core/CoreStuff.js +138 -0
- package/dist/src/core/CoreStuff.js.map +1 -0
- package/dist/src/core/LngNode.d.ts +736 -0
- package/dist/src/core/LngNode.js +1174 -0
- package/dist/src/core/LngNode.js.map +1 -0
- package/dist/src/core/Matrix2DContext.d.ts +15 -0
- package/dist/src/core/Matrix2DContext.js +45 -0
- package/dist/src/core/Matrix2DContext.js.map +1 -0
- package/dist/src/core/ShaderNode.d.ts +10 -0
- package/dist/src/core/ShaderNode.js +30 -0
- package/dist/src/core/ShaderNode.js.map +1 -0
- package/dist/src/core/TextNode.d.ts +103 -0
- package/dist/src/core/TextNode.js +331 -0
- package/dist/src/core/TextNode.js.map +1 -0
- package/dist/src/core/lib/Coords.d.ts +14 -0
- package/dist/src/core/lib/Coords.js +55 -0
- package/dist/src/core/lib/Coords.js.map +1 -0
- package/dist/src/core/lib/glm/common.d.ts +162 -0
- package/dist/src/core/lib/glm/common.js +81 -0
- package/dist/src/core/lib/glm/common.js.map +1 -0
- package/dist/src/core/lib/glm/index.d.ts +11 -0
- package/dist/src/core/lib/glm/index.js +30 -0
- package/dist/src/core/lib/glm/index.js.map +1 -0
- package/dist/src/core/lib/glm/mat2.d.ts +219 -0
- package/dist/src/core/lib/glm/mat2.js +396 -0
- package/dist/src/core/lib/glm/mat2.js.map +1 -0
- package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
- package/dist/src/core/lib/glm/mat2d.js +442 -0
- package/dist/src/core/lib/glm/mat2d.js.map +1 -0
- package/dist/src/core/lib/glm/mat3.d.ts +283 -0
- package/dist/src/core/lib/glm/mat3.js +680 -0
- package/dist/src/core/lib/glm/mat3.js.map +1 -0
- package/dist/src/core/lib/glm/mat4.d.ts +550 -0
- package/dist/src/core/lib/glm/mat4.js +1802 -0
- package/dist/src/core/lib/glm/mat4.js.map +1 -0
- package/dist/src/core/lib/glm/quat.d.ts +363 -0
- package/dist/src/core/lib/glm/quat.js +693 -0
- package/dist/src/core/lib/glm/quat.js.map +1 -0
- package/dist/src/core/lib/glm/quat2.d.ts +356 -0
- package/dist/src/core/lib/glm/quat2.js +754 -0
- package/dist/src/core/lib/glm/quat2.js.map +1 -0
- package/dist/src/core/lib/glm/vec2.d.ts +365 -0
- package/dist/src/core/lib/glm/vec2.js +569 -0
- package/dist/src/core/lib/glm/vec2.js.map +1 -0
- package/dist/src/core/lib/glm/vec3.d.ts +406 -0
- package/dist/src/core/lib/glm/vec3.js +720 -0
- package/dist/src/core/lib/glm/vec3.js.map +1 -0
- package/dist/src/core/lib/glm/vec4.d.ts +330 -0
- package/dist/src/core/lib/glm/vec4.js +608 -0
- package/dist/src/core/lib/glm/vec4.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderManager.d.ts +19 -0
- package/dist/src/core/renderers/CoreShaderManager.js +33 -0
- package/dist/src/core/renderers/CoreShaderManager.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +27 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +82 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +11 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +34 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +1 -0
- package/dist/src/core/scene/Scene.d.ts +59 -0
- package/dist/src/core/scene/Scene.js +106 -0
- package/dist/src/core/scene/Scene.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +2 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
- package/dist/src/main-api/ICoreDriver.d.ts +27 -0
- package/dist/src/main-api/ICoreDriver.js +20 -0
- package/dist/src/main-api/ICoreDriver.js.map +1 -0
- package/dist/src/main-api/IRenderDriver.d.ts +20 -0
- package/dist/src/main-api/IRenderDriver.js +20 -0
- package/dist/src/main-api/IRenderDriver.js.map +1 -0
- package/dist/src/main-api/IShaderController.d.ts +14 -0
- package/dist/src/main-api/IShaderController.js +30 -0
- package/dist/src/main-api/IShaderController.js.map +1 -0
- package/dist/src/main-api/IShaderNode.d.ts +17 -0
- package/dist/src/main-api/IShaderNode.js +19 -0
- package/dist/src/main-api/IShaderNode.js.map +1 -0
- package/dist/src/main-api/Inspector.js +22 -21
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/RendererMain.d.ts +375 -0
- package/dist/src/main-api/RendererMain.js +365 -0
- package/dist/src/main-api/RendererMain.js.map +1 -0
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +9 -0
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +38 -0
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +1 -0
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +56 -0
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +101 -0
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -0
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +32 -0
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +28 -0
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +1 -0
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +24 -0
- package/dist/src/render-drivers/main/MainCoreDriver.js +118 -0
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +99 -0
- package/dist/src/render-drivers/main/MainOnlyNode.js +396 -0
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +6 -0
- package/dist/src/render-drivers/main/MainOnlyShaderController.js +15 -0
- package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +7 -0
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js +34 -0
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +47 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +205 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -0
- package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
- package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
- package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/NodeStruct.d.ts +90 -0
- package/dist/src/render-drivers/threadx/NodeStruct.js +281 -0
- package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -0
- package/dist/src/render-drivers/threadx/SharedNode.d.ts +39 -0
- package/dist/src/render-drivers/threadx/SharedNode.js +60 -0
- package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +44 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +201 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +28 -0
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +234 -0
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +20 -0
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +84 -0
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +44 -0
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +154 -0
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +6 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +16 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +7 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +15 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +28 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +55 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +198 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +70 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +32 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +19 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +177 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +27 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +108 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/worker/renderer.d.ts +1 -0
- package/dist/src/render-drivers/threadx/worker/renderer.js +145 -0
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -0
- package/dist/src/render-drivers/utils.d.ts +12 -0
- package/dist/src/render-drivers/utils.js +69 -0
- package/dist/src/render-drivers/utils.js.map +1 -0
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/core/CoreNode.ts +0 -4
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +1 -1
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +2 -0
- package/src/main-api/Inspector.ts +31 -21
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { EPSILON, getMatrixArrayType, } from './common.js';
|
|
20
|
+
/**
|
|
21
|
+
* 2x3 Matrix
|
|
22
|
+
* @description
|
|
23
|
+
* A mat2d contains six elements defined as:
|
|
24
|
+
* <pre>
|
|
25
|
+
* [a, b,
|
|
26
|
+
* c, d,
|
|
27
|
+
* tx, ty]
|
|
28
|
+
* </pre>
|
|
29
|
+
* This is a short form for the 3x3 matrix:
|
|
30
|
+
* <pre>
|
|
31
|
+
* [a, b, 0,
|
|
32
|
+
* c, d, 0,
|
|
33
|
+
* tx, ty, 1]
|
|
34
|
+
* </pre>
|
|
35
|
+
* The last column is ignored so the array is shorter and operations are faster.
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* Creates a new identity mat2d
|
|
39
|
+
*
|
|
40
|
+
* @returns {mat2d} a new 2x3 matrix
|
|
41
|
+
*/
|
|
42
|
+
export function create() {
|
|
43
|
+
const out = getMatrixArrayType(6);
|
|
44
|
+
if (!(out instanceof Float32Array)) {
|
|
45
|
+
out[1] = 0;
|
|
46
|
+
out[2] = 0;
|
|
47
|
+
out[4] = 0;
|
|
48
|
+
out[5] = 0;
|
|
49
|
+
}
|
|
50
|
+
out[0] = 1;
|
|
51
|
+
out[3] = 1;
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates a new mat2d initialized with values from an existing matrix
|
|
56
|
+
*
|
|
57
|
+
* @param {Mat2d} a matrix to clone
|
|
58
|
+
* @returns {mat2d} a new 2x3 matrix
|
|
59
|
+
*/
|
|
60
|
+
export function clone(a) {
|
|
61
|
+
const out = getMatrixArrayType(6);
|
|
62
|
+
out[0] = a[0];
|
|
63
|
+
out[1] = a[1];
|
|
64
|
+
out[2] = a[2];
|
|
65
|
+
out[3] = a[3];
|
|
66
|
+
out[4] = a[4];
|
|
67
|
+
out[5] = a[5];
|
|
68
|
+
return out;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Copy the values from one mat2d to another
|
|
72
|
+
*
|
|
73
|
+
* @param {mat2d} out the receiving matrix
|
|
74
|
+
* @param {Mat2d} a the source matrix
|
|
75
|
+
* @returns {mat2d} out
|
|
76
|
+
*/
|
|
77
|
+
export function copy(out, a) {
|
|
78
|
+
out[0] = a[0];
|
|
79
|
+
out[1] = a[1];
|
|
80
|
+
out[2] = a[2];
|
|
81
|
+
out[3] = a[3];
|
|
82
|
+
out[4] = a[4];
|
|
83
|
+
out[5] = a[5];
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Set a mat2d to the identity matrix
|
|
88
|
+
*
|
|
89
|
+
* @param {mat2d} out the receiving matrix
|
|
90
|
+
* @returns {mat2d} out
|
|
91
|
+
*/
|
|
92
|
+
export function identity(out) {
|
|
93
|
+
out[0] = 1;
|
|
94
|
+
out[1] = 0;
|
|
95
|
+
out[2] = 0;
|
|
96
|
+
out[3] = 1;
|
|
97
|
+
out[4] = 0;
|
|
98
|
+
out[5] = 0;
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create a new mat2d with the given values
|
|
103
|
+
*
|
|
104
|
+
* @param {Number} a Component A (index 0)
|
|
105
|
+
* @param {Number} b Component B (index 1)
|
|
106
|
+
* @param {Number} c Component C (index 2)
|
|
107
|
+
* @param {Number} d Component D (index 3)
|
|
108
|
+
* @param {Number} tx Component TX (index 4)
|
|
109
|
+
* @param {Number} ty Component TY (index 5)
|
|
110
|
+
* @returns {mat2d} A new mat2d
|
|
111
|
+
*/
|
|
112
|
+
export function fromValues(a, b, c, d, tx, ty) {
|
|
113
|
+
const out = getMatrixArrayType(6);
|
|
114
|
+
out[0] = a;
|
|
115
|
+
out[1] = b;
|
|
116
|
+
out[2] = c;
|
|
117
|
+
out[3] = d;
|
|
118
|
+
out[4] = tx;
|
|
119
|
+
out[5] = ty;
|
|
120
|
+
return out;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Set the components of a mat2d to the given values
|
|
124
|
+
*
|
|
125
|
+
* @param {mat2d} out the receiving matrix
|
|
126
|
+
* @param {Number} a Component A (index 0)
|
|
127
|
+
* @param {Number} b Component B (index 1)
|
|
128
|
+
* @param {Number} c Component C (index 2)
|
|
129
|
+
* @param {Number} d Component D (index 3)
|
|
130
|
+
* @param {Number} tx Component TX (index 4)
|
|
131
|
+
* @param {Number} ty Component TY (index 5)
|
|
132
|
+
* @returns {mat2d} out
|
|
133
|
+
*/
|
|
134
|
+
export function set(out, a, b, c, d, tx, ty) {
|
|
135
|
+
out[0] = a;
|
|
136
|
+
out[1] = b;
|
|
137
|
+
out[2] = c;
|
|
138
|
+
out[3] = d;
|
|
139
|
+
out[4] = tx;
|
|
140
|
+
out[5] = ty;
|
|
141
|
+
return out;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Inverts a mat2d
|
|
145
|
+
*
|
|
146
|
+
* @param {mat2d} out the receiving matrix
|
|
147
|
+
* @param {Mat2d} a the source matrix
|
|
148
|
+
* @returns {mat2d} out
|
|
149
|
+
*/
|
|
150
|
+
export function invert(out, a) {
|
|
151
|
+
const aa = a[0], ab = a[1], ac = a[2], ad = a[3];
|
|
152
|
+
const atx = a[4], aty = a[5];
|
|
153
|
+
let det = aa * ad - ab * ac;
|
|
154
|
+
if (!det) {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
det = 1.0 / det;
|
|
158
|
+
out[0] = ad * det;
|
|
159
|
+
out[1] = -ab * det;
|
|
160
|
+
out[2] = -ac * det;
|
|
161
|
+
out[3] = aa * det;
|
|
162
|
+
out[4] = (ac * aty - ad * atx) * det;
|
|
163
|
+
out[5] = (ab * atx - aa * aty) * det;
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Calculates the determinant of a mat2d
|
|
168
|
+
*
|
|
169
|
+
* @param {Mat2d} a the source matrix
|
|
170
|
+
* @returns {Number} determinant of a
|
|
171
|
+
*/
|
|
172
|
+
export function determinant(a) {
|
|
173
|
+
return a[0] * a[3] - a[1] * a[2];
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Multiplies two mat2d's
|
|
177
|
+
*
|
|
178
|
+
* @param {mat2d} out the receiving matrix
|
|
179
|
+
* @param {Mat2d} a the first operand
|
|
180
|
+
* @param {Mat2d} b the second operand
|
|
181
|
+
* @returns {mat2d} out
|
|
182
|
+
*/
|
|
183
|
+
export function multiply(out, a, b) {
|
|
184
|
+
const a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5];
|
|
185
|
+
const b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5];
|
|
186
|
+
out[0] = a0 * b0 + a2 * b1;
|
|
187
|
+
out[1] = a1 * b0 + a3 * b1;
|
|
188
|
+
out[2] = a0 * b2 + a2 * b3;
|
|
189
|
+
out[3] = a1 * b2 + a3 * b3;
|
|
190
|
+
out[4] = a0 * b4 + a2 * b5 + a4;
|
|
191
|
+
out[5] = a1 * b4 + a3 * b5 + a5;
|
|
192
|
+
return out;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Rotates a mat2d by the given angle
|
|
196
|
+
*
|
|
197
|
+
* @param {mat2d} out the receiving matrix
|
|
198
|
+
* @param {Mat2d} a the matrix to rotate
|
|
199
|
+
* @param {Number} rad the angle to rotate the matrix by
|
|
200
|
+
* @returns {mat2d} out
|
|
201
|
+
*/
|
|
202
|
+
export function rotate(out, a, rad) {
|
|
203
|
+
const a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5];
|
|
204
|
+
const s = Math.sin(rad);
|
|
205
|
+
const c = Math.cos(rad);
|
|
206
|
+
out[0] = a0 * c + a2 * s;
|
|
207
|
+
out[1] = a1 * c + a3 * s;
|
|
208
|
+
out[2] = a0 * -s + a2 * c;
|
|
209
|
+
out[3] = a1 * -s + a3 * c;
|
|
210
|
+
out[4] = a4;
|
|
211
|
+
out[5] = a5;
|
|
212
|
+
return out;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Scales the mat2d by the dimensions in the given vec2
|
|
216
|
+
*
|
|
217
|
+
* @param {mat2d} out the receiving matrix
|
|
218
|
+
* @param {Mat2d} a the matrix to translate
|
|
219
|
+
* @param {Vec2} v the vec2 to scale the matrix by
|
|
220
|
+
* @returns {mat2d} out
|
|
221
|
+
**/
|
|
222
|
+
export function scale(out, a, v) {
|
|
223
|
+
const a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5];
|
|
224
|
+
const v0 = v[0], v1 = v[1];
|
|
225
|
+
out[0] = a0 * v0;
|
|
226
|
+
out[1] = a1 * v0;
|
|
227
|
+
out[2] = a2 * v1;
|
|
228
|
+
out[3] = a3 * v1;
|
|
229
|
+
out[4] = a4;
|
|
230
|
+
out[5] = a5;
|
|
231
|
+
return out;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Translates the mat2d by the dimensions in the given vec2
|
|
235
|
+
*
|
|
236
|
+
* @param {mat2d} out the receiving matrix
|
|
237
|
+
* @param {Mat2d} a the matrix to translate
|
|
238
|
+
* @param {Vec2} v the vec2 to translate the matrix by
|
|
239
|
+
* @returns {mat2d} out
|
|
240
|
+
**/
|
|
241
|
+
export function translate(out, a, v) {
|
|
242
|
+
const a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5];
|
|
243
|
+
const v0 = v[0], v1 = v[1];
|
|
244
|
+
out[0] = a0;
|
|
245
|
+
out[1] = a1;
|
|
246
|
+
out[2] = a2;
|
|
247
|
+
out[3] = a3;
|
|
248
|
+
out[4] = a0 * v0 + a2 * v1 + a4;
|
|
249
|
+
out[5] = a1 * v0 + a3 * v1 + a5;
|
|
250
|
+
return out;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Creates a matrix from a given angle
|
|
254
|
+
* This is equivalent to (but much faster than):
|
|
255
|
+
*
|
|
256
|
+
* mat2d.identity(dest);
|
|
257
|
+
* mat2d.rotate(dest, dest, rad);
|
|
258
|
+
*
|
|
259
|
+
* @param {mat2d} out mat2d receiving operation result
|
|
260
|
+
* @param {Number} rad the angle to rotate the matrix by
|
|
261
|
+
* @returns {mat2d} out
|
|
262
|
+
*/
|
|
263
|
+
export function fromRotation(out, rad) {
|
|
264
|
+
const s = Math.sin(rad), c = Math.cos(rad);
|
|
265
|
+
out[0] = c;
|
|
266
|
+
out[1] = s;
|
|
267
|
+
out[2] = -s;
|
|
268
|
+
out[3] = c;
|
|
269
|
+
out[4] = 0;
|
|
270
|
+
out[5] = 0;
|
|
271
|
+
return out;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Creates a matrix from a vector scaling
|
|
275
|
+
* This is equivalent to (but much faster than):
|
|
276
|
+
*
|
|
277
|
+
* mat2d.identity(dest);
|
|
278
|
+
* mat2d.scale(dest, dest, vec);
|
|
279
|
+
*
|
|
280
|
+
* @param {mat2d} out mat2d receiving operation result
|
|
281
|
+
* @param {Vec2} v Scaling vector
|
|
282
|
+
* @returns {mat2d} out
|
|
283
|
+
*/
|
|
284
|
+
export function fromScaling(out, v) {
|
|
285
|
+
out[0] = v[0];
|
|
286
|
+
out[1] = 0;
|
|
287
|
+
out[2] = 0;
|
|
288
|
+
out[3] = v[1];
|
|
289
|
+
out[4] = 0;
|
|
290
|
+
out[5] = 0;
|
|
291
|
+
return out;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Creates a matrix from a vector translation
|
|
295
|
+
* This is equivalent to (but much faster than):
|
|
296
|
+
*
|
|
297
|
+
* mat2d.identity(dest);
|
|
298
|
+
* mat2d.translate(dest, dest, vec);
|
|
299
|
+
*
|
|
300
|
+
* @param {mat2d} out mat2d receiving operation result
|
|
301
|
+
* @param {Vec2} v Translation vector
|
|
302
|
+
* @returns {mat2d} out
|
|
303
|
+
*/
|
|
304
|
+
export function fromTranslation(out, v) {
|
|
305
|
+
out[0] = 1;
|
|
306
|
+
out[1] = 0;
|
|
307
|
+
out[2] = 0;
|
|
308
|
+
out[3] = 1;
|
|
309
|
+
out[4] = v[0];
|
|
310
|
+
out[5] = v[1];
|
|
311
|
+
return out;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Returns a string representation of a mat2d
|
|
315
|
+
*
|
|
316
|
+
* @param {Mat2d} a matrix to represent as a string
|
|
317
|
+
* @returns {String} string representation of the matrix
|
|
318
|
+
*/
|
|
319
|
+
export function str(a) {
|
|
320
|
+
return `mat2d(${a[0]}, ${a[1]}, ${a[2]}, ${a[3]}, ${a[4]}, ${a[5]})`;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Returns Frobenius norm of a mat2d
|
|
324
|
+
*
|
|
325
|
+
* @param {Mat2d} a the matrix to calculate Frobenius norm of
|
|
326
|
+
* @returns {Number} Frobenius norm
|
|
327
|
+
*/
|
|
328
|
+
export function frob(a) {
|
|
329
|
+
return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], 1);
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Adds two mat2d's
|
|
333
|
+
*
|
|
334
|
+
* @param {mat2d} out the receiving matrix
|
|
335
|
+
* @param {Mat2d} a the first operand
|
|
336
|
+
* @param {Mat2d} b the second operand
|
|
337
|
+
* @returns {mat2d} out
|
|
338
|
+
*/
|
|
339
|
+
export function add(out, a, b) {
|
|
340
|
+
out[0] = a[0] + b[0];
|
|
341
|
+
out[1] = a[1] + b[1];
|
|
342
|
+
out[2] = a[2] + b[2];
|
|
343
|
+
out[3] = a[3] + b[3];
|
|
344
|
+
out[4] = a[4] + b[4];
|
|
345
|
+
out[5] = a[5] + b[5];
|
|
346
|
+
return out;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Subtracts matrix b from matrix a
|
|
350
|
+
*
|
|
351
|
+
* @param {mat2d} out the receiving matrix
|
|
352
|
+
* @param {Mat2d} a the first operand
|
|
353
|
+
* @param {Mat2d} b the second operand
|
|
354
|
+
* @returns {mat2d} out
|
|
355
|
+
*/
|
|
356
|
+
export function subtract(out, a, b) {
|
|
357
|
+
out[0] = a[0] - b[0];
|
|
358
|
+
out[1] = a[1] - b[1];
|
|
359
|
+
out[2] = a[2] - b[2];
|
|
360
|
+
out[3] = a[3] - b[3];
|
|
361
|
+
out[4] = a[4] - b[4];
|
|
362
|
+
out[5] = a[5] - b[5];
|
|
363
|
+
return out;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Multiply each element of the matrix by a scalar.
|
|
367
|
+
*
|
|
368
|
+
* @param {mat2d} out the receiving matrix
|
|
369
|
+
* @param {Mat2d} a the matrix to scale
|
|
370
|
+
* @param {Number} b amount to scale the matrix's elements by
|
|
371
|
+
* @returns {mat2d} out
|
|
372
|
+
*/
|
|
373
|
+
export function multiplyScalar(out, a, b) {
|
|
374
|
+
out[0] = a[0] * b;
|
|
375
|
+
out[1] = a[1] * b;
|
|
376
|
+
out[2] = a[2] * b;
|
|
377
|
+
out[3] = a[3] * b;
|
|
378
|
+
out[4] = a[4] * b;
|
|
379
|
+
out[5] = a[5] * b;
|
|
380
|
+
return out;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Adds two mat2d's after multiplying each element of the second operand by a scalar value.
|
|
384
|
+
*
|
|
385
|
+
* @param {mat2d} out the receiving vector
|
|
386
|
+
* @param {Mat2d} a the first operand
|
|
387
|
+
* @param {Mat2d} b the second operand
|
|
388
|
+
* @param {Number} scale the amount to scale b's elements by before adding
|
|
389
|
+
* @returns {mat2d} out
|
|
390
|
+
*/
|
|
391
|
+
export function multiplyScalarAndAdd(out, a, b, scale) {
|
|
392
|
+
out[0] = a[0] + b[0] * scale;
|
|
393
|
+
out[1] = a[1] + b[1] * scale;
|
|
394
|
+
out[2] = a[2] + b[2] * scale;
|
|
395
|
+
out[3] = a[3] + b[3] * scale;
|
|
396
|
+
out[4] = a[4] + b[4] * scale;
|
|
397
|
+
out[5] = a[5] + b[5] * scale;
|
|
398
|
+
return out;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
|
|
402
|
+
*
|
|
403
|
+
* @param {Mat2d} a The first matrix.
|
|
404
|
+
* @param {Mat2d} b The second matrix.
|
|
405
|
+
* @returns {Boolean} True if the matrices are equal, false otherwise.
|
|
406
|
+
*/
|
|
407
|
+
export function exactEquals(a, b) {
|
|
408
|
+
return (a[0] === b[0] &&
|
|
409
|
+
a[1] === b[1] &&
|
|
410
|
+
a[2] === b[2] &&
|
|
411
|
+
a[3] === b[3] &&
|
|
412
|
+
a[4] === b[4] &&
|
|
413
|
+
a[5] === b[5]);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Returns whether or not the matrices have approximately the same elements in the same position.
|
|
417
|
+
*
|
|
418
|
+
* @param {Mat2d} a The first matrix.
|
|
419
|
+
* @param {Mat2d} b The second matrix.
|
|
420
|
+
* @returns {Boolean} True if the matrices are equal, false otherwise.
|
|
421
|
+
*/
|
|
422
|
+
export function equals(a, b) {
|
|
423
|
+
const a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5];
|
|
424
|
+
const b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5];
|
|
425
|
+
return (Math.abs(a0 - b0) <= EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&
|
|
426
|
+
Math.abs(a1 - b1) <= EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&
|
|
427
|
+
Math.abs(a2 - b2) <= EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&
|
|
428
|
+
Math.abs(a3 - b3) <= EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) &&
|
|
429
|
+
Math.abs(a4 - b4) <= EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) &&
|
|
430
|
+
Math.abs(a5 - b5) <= EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)));
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Alias for {@link multiply}
|
|
434
|
+
* @function
|
|
435
|
+
*/
|
|
436
|
+
export const mul = multiply;
|
|
437
|
+
/**
|
|
438
|
+
* Alias for {@link subtract}
|
|
439
|
+
* @function
|
|
440
|
+
*/
|
|
441
|
+
export const sub = subtract;
|
|
442
|
+
//# sourceMappingURL=mat2d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mat2d.js","sourceRoot":"","sources":["../../../../../src/core/lib/glm/mat2d.ts"],"names":[],"mappings":"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"}
|