melonjs 15.0.0 → 15.1.0
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/README.md +4 -4
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +7 -3
- package/dist/melonjs.mjs/_virtual/index2.js +1 -1
- package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
- package/dist/melonjs.mjs/application/application.js +27 -17
- package/dist/melonjs.mjs/application/header.js +6 -5
- package/dist/melonjs.mjs/application/resize.js +20 -20
- package/dist/melonjs.mjs/application/settings.js +1 -1
- package/dist/melonjs.mjs/audio/audio.js +17 -17
- package/dist/melonjs.mjs/camera/camera2d.js +10 -10
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/entity/entity.js +4 -4
- package/dist/melonjs.mjs/geometries/ellipse.js +6 -6
- package/dist/melonjs.mjs/geometries/line.js +9 -9
- package/dist/melonjs.mjs/geometries/path2d.js +53 -53
- package/dist/melonjs.mjs/geometries/point.js +2 -2
- package/dist/melonjs.mjs/geometries/poly.js +29 -29
- package/dist/melonjs.mjs/geometries/rectangle.js +8 -8
- package/dist/melonjs.mjs/geometries/roundrect.js +6 -6
- package/dist/melonjs.mjs/index.js +5 -5
- package/dist/melonjs.mjs/input/gamepad.js +30 -30
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +15 -15
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +58 -58
- package/dist/melonjs.mjs/lang/console.js +3 -3
- package/dist/melonjs.mjs/lang/deprecated.js +2 -2
- package/dist/melonjs.mjs/level/level.js +9 -9
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +31 -31
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +8 -8
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +8 -8
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +19 -19
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +15 -15
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +46 -41
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +30 -30
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +21 -21
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +10 -10
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +6 -6
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +7 -7
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parser.js +13 -13
- package/dist/melonjs.mjs/loader/settings.js +3 -3
- package/dist/melonjs.mjs/math/color.js +21 -21
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +22 -22
- package/dist/melonjs.mjs/math/matrix3.js +52 -52
- package/dist/melonjs.mjs/math/observable_vector2.js +12 -12
- package/dist/melonjs.mjs/math/observable_vector3.js +22 -22
- package/dist/melonjs.mjs/math/vector2.js +11 -11
- package/dist/melonjs.mjs/math/vector3.js +21 -21
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +45 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +130 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- package/dist/melonjs.mjs/particles/emitter.js +5 -5
- package/dist/melonjs.mjs/particles/particle.js +8 -8
- package/dist/melonjs.mjs/particles/settings.js +3 -3
- package/dist/melonjs.mjs/physics/body.js +17 -17
- package/dist/melonjs.mjs/physics/bounds.js +12 -12
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +14 -14
- package/dist/melonjs.mjs/physics/quadtree.js +19 -19
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +60 -60
- package/dist/melonjs.mjs/physics/world.js +4 -4
- package/dist/melonjs.mjs/plugin/plugin.js +11 -11
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +77 -59
- package/dist/melonjs.mjs/renderable/dragndrop.js +5 -5
- package/dist/melonjs.mjs/renderable/imagelayer.js +7 -6
- package/dist/melonjs.mjs/renderable/light2d.js +6 -6
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +12 -12
- package/dist/melonjs.mjs/renderable/renderable.js +11 -11
- package/dist/melonjs.mjs/renderable/sprite.js +25 -25
- package/dist/melonjs.mjs/renderable/trigger.js +11 -9
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +97 -27
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +25 -25
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +83 -63
- package/dist/melonjs.mjs/state/stage.js +7 -7
- package/dist/melonjs.mjs/state/state.js +15 -15
- package/dist/melonjs.mjs/system/device.js +2 -2
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +1 -1
- package/dist/melonjs.mjs/system/pooling.js +9 -9
- package/dist/melonjs.mjs/system/save.js +6 -6
- package/dist/melonjs.mjs/system/timer.js +16 -12
- package/dist/melonjs.mjs/text/bitmaptext.js +20 -20
- package/dist/melonjs.mjs/text/bitmaptextdata.js +22 -22
- package/dist/melonjs.mjs/text/glyph.js +3 -3
- package/dist/melonjs.mjs/text/text.js +10 -9
- package/dist/melonjs.mjs/text/textmetrics.js +15 -15
- package/dist/melonjs.mjs/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +4 -4
- package/dist/melonjs.mjs/tweens/interpolation.js +8 -8
- package/dist/melonjs.mjs/tweens/tween.js +11 -11
- package/dist/melonjs.mjs/utils/agent.js +6 -6
- package/dist/melonjs.mjs/utils/array.js +4 -4
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +5 -5
- package/dist/melonjs.mjs/utils/string.js +3 -3
- package/dist/melonjs.mjs/utils/utils.js +16 -16
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +35 -109
- package/dist/melonjs.mjs/video/renderer.js +74 -7
- package/dist/melonjs.mjs/video/texture/atlas.js +37 -37
- package/dist/melonjs.mjs/video/texture/cache.js +9 -10
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +63 -3
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +2 -2
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +5 -5
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +18 -15
- package/dist/melonjs.mjs/video/webgl/glshader.js +7 -7
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/program.js +7 -7
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +4 -4
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +55 -38
- package/dist/melonjs.module.js +1747 -1809
- package/dist/types/application/application.d.ts +11 -8
- package/dist/types/audio/audio.d.ts +3 -3
- package/dist/types/index.d.ts +4 -3
- package/dist/types/input/input.d.ts +1 -1
- package/dist/types/input/keyboard.d.ts +1 -1
- package/dist/types/input/pointerevent.d.ts +6 -6
- package/dist/types/level/level.d.ts +2 -2
- package/dist/types/level/tiled/TMXLayer.d.ts +4 -4
- package/dist/types/level/tiled/TMXTileMap.d.ts +2 -2
- package/dist/types/level/tiled/TMXUtils.d.ts +5 -4
- package/dist/types/loader/loader.d.ts +2 -2
- package/dist/types/loader/settings.d.ts +2 -2
- package/dist/types/particles/emitter.d.ts +1 -1
- package/dist/types/physics/collision.d.ts +1 -1
- package/dist/types/physics/detector.d.ts +1 -1
- package/dist/types/plugin/plugin.d.ts +2 -2
- package/dist/types/renderable/container.d.ts +21 -17
- package/dist/types/renderable/sprite.d.ts +11 -11
- package/dist/types/renderable/trigger.d.ts +1 -1
- package/dist/types/renderable/ui/uibaseelement.d.ts +28 -6
- package/dist/types/renderable/ui/uispriteelement.d.ts +12 -14
- package/dist/types/renderable/ui/uitextbutton.d.ts +52 -11
- package/dist/types/state/stage.d.ts +1 -1
- package/dist/types/system/device.d.ts +1 -1
- package/dist/types/system/pooling.d.ts +3 -3
- package/dist/types/system/timer.d.ts +5 -5
- package/dist/types/text/bitmaptext.d.ts +1 -1
- package/dist/types/text/text.d.ts +1 -1
- package/dist/types/utils/array.d.ts +2 -2
- package/dist/types/video/canvas/canvas_renderer.d.ts +8 -76
- package/dist/types/video/renderer.d.ts +48 -0
- package/dist/types/video/texture/atlas.d.ts +3 -3
- package/dist/types/video/texture/canvas_texture.d.ts +40 -0
- package/dist/types/video/webgl/glshader.d.ts +1 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +13 -9
- package/package.json +14 -14
- package/src/application/application.js +26 -16
- package/src/application/header.js +5 -4
- package/src/application/resize.js +19 -19
- package/src/audio/audio.js +16 -16
- package/src/camera/camera2d.js +9 -9
- package/src/entity/entity.js +3 -3
- package/src/geometries/ellipse.js +5 -5
- package/src/geometries/line.js +8 -8
- package/src/geometries/path2d.js +52 -52
- package/src/geometries/point.js +1 -1
- package/src/geometries/poly.js +28 -28
- package/src/geometries/rectangle.js +7 -7
- package/src/geometries/roundrect.js +5 -5
- package/src/index.js +3 -2
- package/src/input/gamepad.js +29 -29
- package/src/input/input.js +1 -1
- package/src/input/keyboard.js +14 -14
- package/src/input/pointer.js +1 -1
- package/src/input/pointerevent.js +52 -52
- package/src/lang/console.js +2 -2
- package/src/lang/deprecated.js +1 -1
- package/src/level/level.js +8 -8
- package/src/level/tiled/TMXGroup.js +2 -2
- package/src/level/tiled/TMXLayer.js +30 -30
- package/src/level/tiled/TMXObject.js +7 -7
- package/src/level/tiled/TMXTile.js +7 -7
- package/src/level/tiled/TMXTileMap.js +18 -18
- package/src/level/tiled/TMXTileset.js +14 -14
- package/src/level/tiled/TMXTilesetGroup.js +2 -2
- package/src/level/tiled/TMXUtils.js +45 -40
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +29 -29
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +20 -20
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +9 -9
- package/src/level/tiled/renderer/TMXRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +5 -5
- package/src/loader/loader.js +6 -6
- package/src/loader/loadingscreen.js +1 -1
- package/src/loader/parser.js +12 -12
- package/src/loader/settings.js +2 -2
- package/src/math/color.js +20 -20
- package/src/math/math.js +1 -1
- package/src/math/matrix2.js +21 -21
- package/src/math/matrix3.js +51 -51
- package/src/math/observable_vector2.js +11 -11
- package/src/math/observable_vector3.js +21 -21
- package/src/math/vector2.js +10 -10
- package/src/math/vector3.js +20 -20
- package/src/particles/emitter.js +4 -4
- package/src/particles/particle.js +7 -7
- package/src/particles/settings.js +2 -2
- package/src/physics/body.js +16 -16
- package/src/physics/bounds.js +11 -11
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +13 -13
- package/src/physics/quadtree.js +18 -18
- package/src/physics/sat.js +59 -59
- package/src/physics/world.js +3 -3
- package/src/plugin/plugin.js +8 -8
- package/src/renderable/collectable.js +1 -1
- package/src/renderable/container.js +76 -58
- package/src/renderable/dragndrop.js +4 -4
- package/src/renderable/imagelayer.js +6 -5
- package/src/renderable/light2d.js +5 -5
- package/src/renderable/nineslicesprite.js +11 -11
- package/src/renderable/renderable.js +10 -10
- package/src/renderable/sprite.js +24 -24
- package/src/renderable/trigger.js +10 -8
- package/src/renderable/ui/uibaseelement.js +96 -26
- package/src/renderable/ui/uispriteelement.js +24 -24
- package/src/renderable/ui/uitextbutton.js +85 -65
- package/src/state/stage.js +6 -6
- package/src/state/state.js +14 -14
- package/src/system/device.js +1 -1
- package/src/system/event.js +1 -1
- package/src/system/pooling.js +8 -8
- package/src/system/save.js +5 -5
- package/src/system/timer.js +15 -11
- package/src/text/bitmaptext.js +19 -19
- package/src/text/bitmaptextdata.js +21 -21
- package/src/text/glyph.js +2 -2
- package/src/text/text.js +9 -8
- package/src/text/textmetrics.js +14 -14
- package/src/tweens/easing.js +3 -3
- package/src/tweens/interpolation.js +7 -7
- package/src/tweens/tween.js +10 -10
- package/src/utils/agent.js +5 -5
- package/src/utils/array.js +3 -3
- package/src/utils/function.js +4 -4
- package/src/utils/string.js +2 -2
- package/src/utils/utils.js +15 -15
- package/src/video/canvas/canvas_renderer.js +34 -108
- package/src/video/renderer.js +72 -5
- package/src/video/texture/atlas.js +36 -36
- package/src/video/texture/cache.js +6 -6
- package/src/video/texture/canvas_texture.js +62 -2
- package/src/video/video.js +1 -1
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/compositors/compositor.js +4 -4
- package/src/video/webgl/compositors/primitive_compositor.js +4 -4
- package/src/video/webgl/compositors/quad_compositor.js +17 -14
- package/src/video/webgl/glshader.js +6 -6
- package/src/video/webgl/utils/attributes.js +1 -1
- package/src/video/webgl/utils/program.js +6 -6
- package/src/video/webgl/utils/uniforms.js +3 -3
- package/src/video/webgl/webgl_renderer.js +54 -37
package/src/math/matrix2.js
CHANGED
|
@@ -95,7 +95,7 @@ import Matrix3d from "./matrix3.js";
|
|
|
95
95
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
96
96
|
*/
|
|
97
97
|
setTransform() {
|
|
98
|
-
|
|
98
|
+
let a = this.val;
|
|
99
99
|
|
|
100
100
|
if (arguments.length === 9) {
|
|
101
101
|
a[0] = arguments[0]; // a - m00
|
|
@@ -142,8 +142,8 @@ import Matrix3d from "./matrix3.js";
|
|
|
142
142
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
143
143
|
*/
|
|
144
144
|
fromMat3d(m) {
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
let b = m.val;
|
|
146
|
+
let a = this.val;
|
|
147
147
|
|
|
148
148
|
a[0] = b[0];
|
|
149
149
|
a[1] = b[1];
|
|
@@ -166,8 +166,8 @@ import Matrix3d from "./matrix3.js";
|
|
|
166
166
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
167
167
|
*/
|
|
168
168
|
multiply(m) {
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
let b = m.val;
|
|
170
|
+
let a = this.val,
|
|
171
171
|
a0 = a[0],
|
|
172
172
|
a1 = a[1],
|
|
173
173
|
a3 = a[3],
|
|
@@ -196,7 +196,7 @@ import Matrix3d from "./matrix3.js";
|
|
|
196
196
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
197
197
|
*/
|
|
198
198
|
transpose() {
|
|
199
|
-
|
|
199
|
+
let a = this.val,
|
|
200
200
|
a1 = a[1],
|
|
201
201
|
a2 = a[2],
|
|
202
202
|
a5 = a[5];
|
|
@@ -218,17 +218,17 @@ import Matrix3d from "./matrix3.js";
|
|
|
218
218
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
219
219
|
*/
|
|
220
220
|
invert() {
|
|
221
|
-
|
|
221
|
+
let val = this.val;
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
let a = val[ 0 ], b = val[ 1 ], c = val[ 2 ],
|
|
224
224
|
d = val[ 3 ], e = val[ 4 ], f = val[ 5 ],
|
|
225
225
|
g = val[ 6 ], h = val[ 7 ], i = val[ 8 ];
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
let ta = i * e - f * h,
|
|
228
228
|
td = f * g - i * d,
|
|
229
229
|
tg = h * d - e * g;
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
let n = a * ta + b * td + c * tg;
|
|
232
232
|
|
|
233
233
|
val[ 0 ] = ta / n;
|
|
234
234
|
val[ 1 ] = ( c * h - i * b ) / n;
|
|
@@ -253,7 +253,7 @@ import Matrix3d from "./matrix3.js";
|
|
|
253
253
|
* @returns {Vector2d|Vector3d} result vector object.
|
|
254
254
|
*/
|
|
255
255
|
apply(v) {
|
|
256
|
-
|
|
256
|
+
let a = this.val,
|
|
257
257
|
x = v.x,
|
|
258
258
|
y = v.y,
|
|
259
259
|
z = (typeof v.z !== "undefined") ? v.z : 1;
|
|
@@ -276,11 +276,11 @@ import Matrix3d from "./matrix3.js";
|
|
|
276
276
|
* @returns {Vector2d} result vector object.
|
|
277
277
|
*/
|
|
278
278
|
applyInverse(v) {
|
|
279
|
-
|
|
279
|
+
let a = this.val,
|
|
280
280
|
x = v.x,
|
|
281
281
|
y = v.y;
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
let invD = 1 / ((a[0] * a[4]) + (a[3] * -a[1]));
|
|
284
284
|
|
|
285
285
|
v.x = (a[4] * invD * x) + (-a[3] * invD * y) + (((a[7] * a[3]) - (a[6] * a[4])) * invD);
|
|
286
286
|
v.y = (a[0] * invD * y) + (-a[1] * invD * x) + (((-a[7] * a[0]) + (a[6] * a[1])) * invD);
|
|
@@ -297,7 +297,7 @@ import Matrix3d from "./matrix3.js";
|
|
|
297
297
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
298
298
|
*/
|
|
299
299
|
scale(x, y = x) {
|
|
300
|
-
|
|
300
|
+
let a = this.val;
|
|
301
301
|
|
|
302
302
|
a[0] *= x;
|
|
303
303
|
a[1] *= x;
|
|
@@ -349,7 +349,7 @@ import Matrix3d from "./matrix3.js";
|
|
|
349
349
|
*/
|
|
350
350
|
rotate(angle) {
|
|
351
351
|
if (angle !== 0) {
|
|
352
|
-
|
|
352
|
+
let a = this.val,
|
|
353
353
|
a00 = a[0],
|
|
354
354
|
a01 = a[1],
|
|
355
355
|
a02 = a[2],
|
|
@@ -387,8 +387,8 @@ import Matrix3d from "./matrix3.js";
|
|
|
387
387
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
388
388
|
*/
|
|
389
389
|
translate() {
|
|
390
|
-
|
|
391
|
-
|
|
390
|
+
let a = this.val;
|
|
391
|
+
let _x, _y;
|
|
392
392
|
|
|
393
393
|
if (arguments.length === 2) {
|
|
394
394
|
// x, y
|
|
@@ -413,7 +413,7 @@ import Matrix3d from "./matrix3.js";
|
|
|
413
413
|
* @returns {boolean}
|
|
414
414
|
*/
|
|
415
415
|
isIdentity() {
|
|
416
|
-
|
|
416
|
+
let a = this.val;
|
|
417
417
|
|
|
418
418
|
return (
|
|
419
419
|
a[0] === 1 &&
|
|
@@ -436,8 +436,8 @@ import Matrix3d from "./matrix3.js";
|
|
|
436
436
|
* @returns {boolean} true if both are equals
|
|
437
437
|
*/
|
|
438
438
|
equals(m) {
|
|
439
|
-
|
|
440
|
-
|
|
439
|
+
let b = m.val;
|
|
440
|
+
let a = this.val;
|
|
441
441
|
|
|
442
442
|
return (
|
|
443
443
|
(a[0] === b[0]) &&
|
|
@@ -479,7 +479,7 @@ import Matrix3d from "./matrix3.js";
|
|
|
479
479
|
* @returns {string}
|
|
480
480
|
*/
|
|
481
481
|
toString() {
|
|
482
|
-
|
|
482
|
+
let a = this.val;
|
|
483
483
|
|
|
484
484
|
return "me.Matrix2d(" +
|
|
485
485
|
a[0] + ", " + a[1] + ", " + a[2] + ", " +
|
package/src/math/matrix3.js
CHANGED
|
@@ -105,7 +105,7 @@ import { EPSILON } from "./math.js";
|
|
|
105
105
|
* @returns {Matrix3d} Reference to this object for method chaining
|
|
106
106
|
*/
|
|
107
107
|
setTransform(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {
|
|
108
|
-
|
|
108
|
+
let a = this.val;
|
|
109
109
|
|
|
110
110
|
a[0] = m00;
|
|
111
111
|
a[1] = m01;
|
|
@@ -147,7 +147,7 @@ import { EPSILON } from "./math.js";
|
|
|
147
147
|
* @returns {Matrix2d} Reference to this object for method chaining
|
|
148
148
|
*/
|
|
149
149
|
fromMat2d(m) {
|
|
150
|
-
|
|
150
|
+
let b = m.val;
|
|
151
151
|
return this.setTransform(
|
|
152
152
|
b[0], b[3], b[6], 0,
|
|
153
153
|
b[1], b[4], b[7], 0,
|
|
@@ -165,14 +165,14 @@ import { EPSILON } from "./math.js";
|
|
|
165
165
|
* @returns {Matrix3d} Reference to this object for method chaining
|
|
166
166
|
*/
|
|
167
167
|
multiply(m) {
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
let a = this.val;
|
|
169
|
+
let b = m.val;
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
171
|
+
let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
|
|
172
|
+
let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
|
|
173
|
+
let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
|
|
174
|
+
let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
|
|
175
|
+
let b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];
|
|
176
176
|
|
|
177
177
|
a[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
178
178
|
a[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
@@ -219,7 +219,7 @@ import { EPSILON } from "./math.js";
|
|
|
219
219
|
* @returns {Matrix3d} Reference to this object for method chaining
|
|
220
220
|
*/
|
|
221
221
|
transpose() {
|
|
222
|
-
|
|
222
|
+
let a = this.val,
|
|
223
223
|
a01 = a[1],
|
|
224
224
|
a02 = a[2],
|
|
225
225
|
a03 = a[3],
|
|
@@ -250,30 +250,30 @@ import { EPSILON } from "./math.js";
|
|
|
250
250
|
* @returns {Matrix3d} Reference to this object for method chaining
|
|
251
251
|
*/
|
|
252
252
|
invert() {
|
|
253
|
-
|
|
253
|
+
let a = this.val;
|
|
254
254
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
255
|
+
let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
|
|
256
|
+
let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
|
|
257
|
+
let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
|
|
258
|
+
let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
|
|
259
259
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
260
|
+
let b00 = a00 * a11 - a01 * a10;
|
|
261
|
+
let b01 = a00 * a12 - a02 * a10;
|
|
262
|
+
let b02 = a00 * a13 - a03 * a10;
|
|
263
|
+
let b03 = a01 * a12 - a02 * a11;
|
|
264
264
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
265
|
+
let b04 = a01 * a13 - a03 * a11;
|
|
266
|
+
let b05 = a02 * a13 - a03 * a12;
|
|
267
|
+
let b06 = a20 * a31 - a21 * a30;
|
|
268
|
+
let b07 = a20 * a32 - a22 * a30;
|
|
269
269
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
270
|
+
let b08 = a20 * a33 - a23 * a30;
|
|
271
|
+
let b09 = a21 * a32 - a22 * a31;
|
|
272
|
+
let b10 = a21 * a33 - a23 * a31;
|
|
273
|
+
let b11 = a22 * a33 - a23 * a32;
|
|
274
274
|
|
|
275
275
|
// Calculate the determinant
|
|
276
|
-
|
|
276
|
+
let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
|
|
277
277
|
|
|
278
278
|
if (!det)
|
|
279
279
|
{
|
|
@@ -310,12 +310,12 @@ import { EPSILON } from "./math.js";
|
|
|
310
310
|
* @returns {Vector2d|Vector3d} result vector object.
|
|
311
311
|
*/
|
|
312
312
|
apply(v) {
|
|
313
|
-
|
|
313
|
+
let a = this.val,
|
|
314
314
|
x = v.x,
|
|
315
315
|
y = v.y,
|
|
316
316
|
z = (typeof v.z !== "undefined") ? v.z : 1;
|
|
317
317
|
|
|
318
|
-
|
|
318
|
+
let w = (a[3] * x + a[7] * y + a[11] * z + a[15]) || 1.0;
|
|
319
319
|
|
|
320
320
|
v.x = (a[0] * x + a[4] * y + a[8] * z + a[12]) / w;
|
|
321
321
|
v.y = (a[1] * x + a[5] * y + a[9] * z + a[13]) / w;
|
|
@@ -336,7 +336,7 @@ import { EPSILON } from "./math.js";
|
|
|
336
336
|
*/
|
|
337
337
|
applyInverse(v) {
|
|
338
338
|
// invert the current matrix
|
|
339
|
-
|
|
339
|
+
let im = pool.pull("Matrix3d", this).invert();
|
|
340
340
|
|
|
341
341
|
// apply the inverted matrix
|
|
342
342
|
im.apply(v);
|
|
@@ -360,10 +360,10 @@ import { EPSILON } from "./math.js";
|
|
|
360
360
|
* @returns {Matrix3d} Reference to this object for method chaining
|
|
361
361
|
*/
|
|
362
362
|
ortho(left, right, bottom, top, near, far) {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
363
|
+
let a = this.val;
|
|
364
|
+
let leftRight = 1.0 / (left - right);
|
|
365
|
+
let bottomTop = 1.0 / (bottom - top);
|
|
366
|
+
let nearFar = 1.0 / (near - far);
|
|
367
367
|
|
|
368
368
|
a[0] = -2.0 * leftRight;
|
|
369
369
|
a[1] = 0.0;
|
|
@@ -395,7 +395,7 @@ import { EPSILON } from "./math.js";
|
|
|
395
395
|
* @returns {Matrix3d} Reference to this object for method chaining
|
|
396
396
|
*/
|
|
397
397
|
scale(x, y = x, z = 0) {
|
|
398
|
-
|
|
398
|
+
let a = this.val;
|
|
399
399
|
|
|
400
400
|
a[0] = a[0] * x;
|
|
401
401
|
a[1] = a[1] * x;
|
|
@@ -458,20 +458,20 @@ import { EPSILON } from "./math.js";
|
|
|
458
458
|
*/
|
|
459
459
|
rotate(angle, v) {
|
|
460
460
|
if (angle !== 0) {
|
|
461
|
-
|
|
461
|
+
let a = this.val,
|
|
462
462
|
x = v.x,
|
|
463
463
|
y = v.y,
|
|
464
464
|
z = v.z;
|
|
465
465
|
|
|
466
|
-
|
|
466
|
+
let len = Math.sqrt(x * x + y * y + z * z);
|
|
467
467
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
468
|
+
let s, c, t;
|
|
469
|
+
let a00, a01, a02, a03;
|
|
470
|
+
let a10, a11, a12, a13;
|
|
471
|
+
let a20, a21, a22, a23;
|
|
472
|
+
let b00, b01, b02;
|
|
473
|
+
let b10, b11, b12;
|
|
474
|
+
let b20, b21, b22;
|
|
475
475
|
|
|
476
476
|
if (len < EPSILON) {
|
|
477
477
|
return null;
|
|
@@ -545,8 +545,8 @@ import { EPSILON } from "./math.js";
|
|
|
545
545
|
* @returns {Matrix3d} Reference to this object for method chaining
|
|
546
546
|
*/
|
|
547
547
|
translate() {
|
|
548
|
-
|
|
549
|
-
|
|
548
|
+
let a = this.val;
|
|
549
|
+
let _x, _y, _z;
|
|
550
550
|
|
|
551
551
|
if (arguments.length > 1 ) {
|
|
552
552
|
// x, y (, z)
|
|
@@ -575,7 +575,7 @@ import { EPSILON } from "./math.js";
|
|
|
575
575
|
* @returns {boolean}
|
|
576
576
|
*/
|
|
577
577
|
isIdentity() {
|
|
578
|
-
|
|
578
|
+
let a = this.val;
|
|
579
579
|
|
|
580
580
|
return (
|
|
581
581
|
(a[0] === 1) &&
|
|
@@ -605,8 +605,8 @@ import { EPSILON } from "./math.js";
|
|
|
605
605
|
* @returns {boolean} true if both are equals
|
|
606
606
|
*/
|
|
607
607
|
equals(m) {
|
|
608
|
-
|
|
609
|
-
|
|
608
|
+
let b = m.val;
|
|
609
|
+
let a = this.val;
|
|
610
610
|
|
|
611
611
|
return (
|
|
612
612
|
(a[0] === b[0]) &&
|
|
@@ -655,7 +655,7 @@ import { EPSILON } from "./math.js";
|
|
|
655
655
|
* @returns {string}
|
|
656
656
|
*/
|
|
657
657
|
toString() {
|
|
658
|
-
|
|
658
|
+
let a = this.val;
|
|
659
659
|
|
|
660
660
|
return "me.Matrix3d(" +
|
|
661
661
|
a[0] + ", " + a[1] + ", " + a[2] + ", " + a[3] + ", " +
|
|
@@ -50,7 +50,7 @@ import {clamp} from "./math.js";
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
set x(value) {
|
|
53
|
-
|
|
53
|
+
let ret = this.onUpdate.call(this.scope, value, this._y, this._x, this._y);
|
|
54
54
|
if (ret && "x" in ret) {
|
|
55
55
|
this._x = ret.x;
|
|
56
56
|
} else {
|
|
@@ -72,7 +72,7 @@ import {clamp} from "./math.js";
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
set y(value) {
|
|
75
|
-
|
|
75
|
+
let ret = this.onUpdate.call(this.scope, this._x, value, this._x, this._y);
|
|
76
76
|
if (ret && "y" in ret) {
|
|
77
77
|
this._y = ret.y;
|
|
78
78
|
} else {
|
|
@@ -82,7 +82,7 @@ import {clamp} from "./math.js";
|
|
|
82
82
|
|
|
83
83
|
/** @ignore */
|
|
84
84
|
_set(x, y) {
|
|
85
|
-
|
|
85
|
+
let ret = this.onUpdate.call(this.scope, x, y, this._x, this._y);
|
|
86
86
|
if (ret && "x" in ret && "y" in ret) {
|
|
87
87
|
this._x = ret.x;
|
|
88
88
|
this._y = ret.y;
|
|
@@ -340,19 +340,19 @@ import {clamp} from "./math.js";
|
|
|
340
340
|
* @returns {ObservableVector2d} Reference to this object for method chaining
|
|
341
341
|
*/
|
|
342
342
|
rotate(angle, v) {
|
|
343
|
-
|
|
344
|
-
|
|
343
|
+
let cx = 0;
|
|
344
|
+
let cy = 0;
|
|
345
345
|
|
|
346
346
|
if (typeof v === "object") {
|
|
347
347
|
cx = v.x;
|
|
348
348
|
cy = v.y;
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
-
|
|
352
|
-
|
|
351
|
+
let x = this._x - cx;
|
|
352
|
+
let y = this._y - cy;
|
|
353
353
|
|
|
354
|
-
|
|
355
|
-
|
|
354
|
+
let c = Math.cos(angle);
|
|
355
|
+
let s = Math.sin(angle);
|
|
356
356
|
|
|
357
357
|
return this._set(x * c - y * s + cx, x * s + y * c + cy);
|
|
358
358
|
}
|
|
@@ -403,9 +403,9 @@ import {clamp} from "./math.js";
|
|
|
403
403
|
* @returns {ObservableVector2d} Reference to this object for method chaining
|
|
404
404
|
*/
|
|
405
405
|
moveTowards(target, step) {
|
|
406
|
-
|
|
406
|
+
let angle = Math.atan2(target.y - this._y, target.x - this._x);
|
|
407
407
|
|
|
408
|
-
|
|
408
|
+
let distance = this.distance(target);
|
|
409
409
|
|
|
410
410
|
if (distance === 0 || (step >= 0 && distance <= step * step)) {
|
|
411
411
|
return target;
|
|
@@ -51,7 +51,7 @@ import pool from "./../system/pooling.js";
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
set x(value) {
|
|
54
|
-
|
|
54
|
+
let ret = this.onUpdate.call(this.scope, value, this._y, this._z, this._x, this._y, this._z);
|
|
55
55
|
if (ret && "x" in ret) {
|
|
56
56
|
this._x = ret.x;
|
|
57
57
|
} else {
|
|
@@ -72,7 +72,7 @@ import pool from "./../system/pooling.js";
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
set y(value) {
|
|
75
|
-
|
|
75
|
+
let ret = this.onUpdate.call(this.scope, this._x, value, this._z, this._x, this._y, this._z);
|
|
76
76
|
if (ret && "y" in ret) {
|
|
77
77
|
this._y = ret.y;
|
|
78
78
|
} else {
|
|
@@ -95,7 +95,7 @@ import pool from "./../system/pooling.js";
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
set z(value) {
|
|
98
|
-
|
|
98
|
+
let ret = this.onUpdate.call(this.scope, this._x, this._y, value, this._x, this._y, this._z);
|
|
99
99
|
if (ret && "z" in ret) {
|
|
100
100
|
this._z = ret.z;
|
|
101
101
|
} else {
|
|
@@ -107,7 +107,7 @@ import pool from "./../system/pooling.js";
|
|
|
107
107
|
* @ignore
|
|
108
108
|
*/
|
|
109
109
|
_set(x, y, z) {
|
|
110
|
-
|
|
110
|
+
let ret = this.onUpdate.call(this.scope, x, y, z, this._x, this._y, this._z);
|
|
111
111
|
if (ret && "x" in ret && "y" in ret && "z" in ret) {
|
|
112
112
|
this._x = ret.x;
|
|
113
113
|
this._y = ret.y;
|
|
@@ -267,7 +267,7 @@ import pool from "./../system/pooling.js";
|
|
|
267
267
|
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
268
268
|
*/
|
|
269
269
|
minV(v) {
|
|
270
|
-
|
|
270
|
+
let _vz = v.z || 0;
|
|
271
271
|
return this._set(
|
|
272
272
|
(this._x < v.x) ? this._x : v.x,
|
|
273
273
|
(this._y < v.y) ? this._y : v.y,
|
|
@@ -283,7 +283,7 @@ import pool from "./../system/pooling.js";
|
|
|
283
283
|
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
284
284
|
*/
|
|
285
285
|
maxV(v) {
|
|
286
|
-
|
|
286
|
+
let _vz = v.z || 0;
|
|
287
287
|
return this._set(
|
|
288
288
|
(this._x > v.x) ? this._x : v.x,
|
|
289
289
|
(this._y > v.y) ? this._y : v.y,
|
|
@@ -408,8 +408,8 @@ import pool from "./../system/pooling.js";
|
|
|
408
408
|
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
409
409
|
*/
|
|
410
410
|
rotate(angle, v) {
|
|
411
|
-
|
|
412
|
-
|
|
411
|
+
let cx = 0;
|
|
412
|
+
let cy = 0;
|
|
413
413
|
|
|
414
414
|
if (typeof v === "object") {
|
|
415
415
|
cx = v.x;
|
|
@@ -417,11 +417,11 @@ import pool from "./../system/pooling.js";
|
|
|
417
417
|
}
|
|
418
418
|
|
|
419
419
|
// TODO also rotate on the z axis if the given vector is a 3d one
|
|
420
|
-
|
|
421
|
-
|
|
420
|
+
let x = this.x - cx;
|
|
421
|
+
let y = this.y - cy;
|
|
422
422
|
|
|
423
|
-
|
|
424
|
-
|
|
423
|
+
let c = Math.cos(angle);
|
|
424
|
+
let s = Math.sin(angle);
|
|
425
425
|
|
|
426
426
|
return this._set(x * c - y * s + cx, x * s + y * c + cy, this.z);
|
|
427
427
|
}
|
|
@@ -445,8 +445,8 @@ import pool from "./../system/pooling.js";
|
|
|
445
445
|
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
446
446
|
*/
|
|
447
447
|
cross(v) {
|
|
448
|
-
|
|
449
|
-
|
|
448
|
+
let ax = this._x, ay = this._y, az = this._z;
|
|
449
|
+
let bx = v.x, by = v.y, bz = v.z;
|
|
450
450
|
|
|
451
451
|
return this._set(
|
|
452
452
|
ay * bz - az * by,
|
|
@@ -480,12 +480,12 @@ import pool from "./../system/pooling.js";
|
|
|
480
480
|
* @returns {ObservableVector3d} Reference to this object for method chaining
|
|
481
481
|
*/
|
|
482
482
|
moveTowards(target, step) {
|
|
483
|
-
|
|
483
|
+
let angle = Math.atan2(target.y - this._y, target.x - this._x);
|
|
484
484
|
|
|
485
|
-
|
|
486
|
-
|
|
485
|
+
let dx = this._x - target.x;
|
|
486
|
+
let dy = this._y - target.y;
|
|
487
487
|
|
|
488
|
-
|
|
488
|
+
let distance = Math.sqrt(dx * dx + dy * dy);
|
|
489
489
|
|
|
490
490
|
if (distance === 0 || (step >= 0 && distance <= step * step)) {
|
|
491
491
|
return target;
|
|
@@ -506,9 +506,9 @@ import pool from "./../system/pooling.js";
|
|
|
506
506
|
* @returns {number}
|
|
507
507
|
*/
|
|
508
508
|
distance(v) {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
509
|
+
let dx = this._x - v.x;
|
|
510
|
+
let dy = this._y - v.y;
|
|
511
|
+
let dz = this._z - (v.z || 0);
|
|
512
512
|
return Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
513
513
|
}
|
|
514
514
|
|
package/src/math/vector2.js
CHANGED
|
@@ -310,7 +310,7 @@ import pool from "./../system/pooling.js";
|
|
|
310
310
|
* @returns {boolean}
|
|
311
311
|
*/
|
|
312
312
|
equals() {
|
|
313
|
-
|
|
313
|
+
let _x, _y;
|
|
314
314
|
if (arguments.length === 2) {
|
|
315
315
|
// x, y
|
|
316
316
|
_x = arguments[0];
|
|
@@ -353,19 +353,19 @@ import pool from "./../system/pooling.js";
|
|
|
353
353
|
* @returns {Vector2d} Reference to this object for method chaining
|
|
354
354
|
*/
|
|
355
355
|
rotate(angle, v) {
|
|
356
|
-
|
|
357
|
-
|
|
356
|
+
let cx = 0;
|
|
357
|
+
let cy = 0;
|
|
358
358
|
|
|
359
359
|
if (typeof v === "object") {
|
|
360
360
|
cx = v.x;
|
|
361
361
|
cy = v.y;
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
|
|
365
|
-
|
|
364
|
+
let x = this.x - cx;
|
|
365
|
+
let y = this.y - cy;
|
|
366
366
|
|
|
367
|
-
|
|
368
|
-
|
|
367
|
+
let c = Math.cos(angle);
|
|
368
|
+
let s = Math.sin(angle);
|
|
369
369
|
|
|
370
370
|
return this._set(x * c - y * s + cx, x * s + y * c + cy);
|
|
371
371
|
}
|
|
@@ -435,9 +435,9 @@ import pool from "./../system/pooling.js";
|
|
|
435
435
|
* @returns {Vector2d} Reference to this object for method chaining
|
|
436
436
|
*/
|
|
437
437
|
moveTowards(target, step) {
|
|
438
|
-
|
|
438
|
+
let angle = Math.atan2(target.y - this.y, target.x - this.x);
|
|
439
439
|
|
|
440
|
-
|
|
440
|
+
let distance = this.distance(target);
|
|
441
441
|
|
|
442
442
|
if (distance === 0 || (step >= 0 && distance <= step * step)) {
|
|
443
443
|
return target;
|
|
@@ -457,7 +457,7 @@ import pool from "./../system/pooling.js";
|
|
|
457
457
|
* @returns {number}
|
|
458
458
|
*/
|
|
459
459
|
distance(v) {
|
|
460
|
-
|
|
460
|
+
let dx = this.x - v.x, dy = this.y - v.y;
|
|
461
461
|
return Math.sqrt(dx * dx + dy * dy);
|
|
462
462
|
}
|
|
463
463
|
|