melonjs 10.2.3 → 10.3.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/dist/melonjs.js +1741 -1558
- package/dist/melonjs.min.js +4 -4
- package/dist/melonjs.module.d.ts +1256 -1758
- package/dist/melonjs.module.js +1734 -1582
- package/package.json +12 -12
- package/src/audio/audio.js +3 -3
- package/src/camera/camera2d.js +26 -27
- package/src/entity/draggable.js +10 -19
- package/src/entity/droptarget.js +12 -20
- package/src/entity/entity.js +13 -13
- package/src/game.js +6 -6
- package/src/{shapes → geometries}/ellipse.js +19 -20
- package/src/{shapes → geometries}/line.js +6 -7
- package/src/{shapes → geometries}/poly.js +70 -23
- package/src/{shapes → geometries}/rectangle.js +23 -24
- package/src/index.js +8 -9
- package/src/input/gamepad.js +7 -7
- package/src/input/input.js +2 -2
- package/src/input/keyboard.js +108 -108
- package/src/input/pointer.js +61 -28
- package/src/input/pointerevent.js +79 -16
- package/src/lang/deprecated.js +26 -15
- package/src/level/level.js +10 -10
- package/src/level/tiled/TMXGroup.js +6 -7
- package/src/level/tiled/TMXLayer.js +10 -11
- package/src/level/tiled/TMXObject.js +57 -51
- package/src/level/tiled/TMXTile.js +2 -3
- package/src/level/tiled/TMXTileMap.js +3 -4
- package/src/level/tiled/TMXTileset.js +1 -2
- package/src/level/tiled/TMXTilesetGroup.js +1 -2
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXRenderer.js +1 -2
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +2 -3
- package/src/loader/loader.js +17 -15
- package/src/loader/loadingscreen.js +1 -2
- package/src/math/color.js +23 -24
- package/src/math/math.js +16 -16
- package/src/math/matrix2.js +24 -25
- package/src/math/matrix3.js +26 -27
- package/src/math/observable_vector2.js +46 -35
- package/src/math/observable_vector3.js +54 -36
- package/src/math/vector2.js +58 -47
- package/src/math/vector3.js +66 -48
- package/src/particles/emitter.js +64 -72
- package/src/particles/particle.js +3 -4
- package/src/particles/particlecontainer.js +2 -3
- package/src/physics/body.js +38 -39
- package/src/physics/bounds.js +30 -32
- package/src/physics/collision.js +6 -6
- package/src/physics/detector.js +3 -3
- package/src/physics/quadtree.js +8 -9
- package/src/physics/sat.js +4 -4
- package/src/physics/world.js +11 -12
- package/src/plugin/plugin.js +6 -7
- package/src/renderable/GUI.js +7 -8
- package/src/renderable/collectable.js +3 -4
- package/src/renderable/colorlayer.js +7 -8
- package/src/renderable/container.js +36 -37
- package/src/renderable/imagelayer.js +4 -5
- package/src/renderable/nineslicesprite.js +2 -3
- package/src/renderable/renderable.js +45 -46
- package/src/renderable/sprite.js +16 -17
- package/src/renderable/trigger.js +4 -5
- package/src/state/stage.js +8 -9
- package/src/state/state.js +24 -24
- package/src/system/device.js +41 -97
- package/src/system/event.js +45 -33
- package/src/system/pooling.js +1 -1
- package/src/system/save.js +3 -3
- package/src/system/timer.js +13 -13
- package/src/text/bitmaptext.js +12 -13
- package/src/text/bitmaptextdata.js +5 -6
- package/src/text/text.js +16 -17
- package/src/tweens/easing.js +1 -1
- package/src/tweens/interpolation.js +1 -1
- package/src/tweens/tween.js +14 -15
- package/src/utils/agent.js +3 -3
- package/src/utils/array.js +4 -4
- package/src/utils/file.js +3 -3
- package/src/utils/function.js +3 -3
- package/src/utils/string.js +7 -7
- package/src/utils/utils.js +4 -4
- package/src/video/canvas/canvas_renderer.js +39 -40
- package/src/video/renderer.js +29 -30
- package/src/video/texture.js +8 -9
- package/src/video/texture_cache.js +2 -4
- package/src/video/video.js +7 -7
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/glshader.js +11 -12
- package/src/video/webgl/webgl_compositor.js +118 -90
- package/src/video/webgl/webgl_renderer.js +95 -74
|
@@ -6,9 +6,8 @@ import pool from "./../system/pooling.js";
|
|
|
6
6
|
* A Vector3d object that provide notification by executing the given callback when the vector is changed.
|
|
7
7
|
* @classdesc
|
|
8
8
|
* @class ObservableVector3d
|
|
9
|
-
* @
|
|
10
|
-
* @
|
|
11
|
-
* @constructor
|
|
9
|
+
* @augments me.Vector3d
|
|
10
|
+
* @memberof me
|
|
12
11
|
* @param {number} [x=0] x value of the vector
|
|
13
12
|
* @param {number} [y=0] y value of the vector
|
|
14
13
|
* @param {number} [z=0] z value of the vector
|
|
@@ -45,7 +44,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
45
44
|
* @public
|
|
46
45
|
* @type {number}
|
|
47
46
|
* @name x
|
|
48
|
-
* @
|
|
47
|
+
* @memberof me.ObservableVector3d
|
|
49
48
|
*/
|
|
50
49
|
|
|
51
50
|
get x() {
|
|
@@ -66,7 +65,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
66
65
|
* @public
|
|
67
66
|
* @type {number}
|
|
68
67
|
* @name y
|
|
69
|
-
* @
|
|
68
|
+
* @memberof me.ObservableVector3d
|
|
70
69
|
*/
|
|
71
70
|
|
|
72
71
|
get y() {
|
|
@@ -88,7 +87,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
88
87
|
* @public
|
|
89
88
|
* @type {number}
|
|
90
89
|
* @name z
|
|
91
|
-
* @
|
|
90
|
+
* @memberof me.ObservableVector3d
|
|
92
91
|
*/
|
|
93
92
|
|
|
94
93
|
|
|
@@ -125,7 +124,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
125
124
|
/**
|
|
126
125
|
* set the vector value without triggering the callback
|
|
127
126
|
* @name setMuted
|
|
128
|
-
* @
|
|
127
|
+
* @memberof me.ObservableVector3d
|
|
129
128
|
* @function
|
|
130
129
|
* @param {number} x x value of the vector
|
|
131
130
|
* @param {number} y y value of the vector
|
|
@@ -142,7 +141,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
142
141
|
/**
|
|
143
142
|
* set the callback to be executed when the vector is changed
|
|
144
143
|
* @name setCallback
|
|
145
|
-
* @
|
|
144
|
+
* @memberof me.ObservableVector3d
|
|
146
145
|
* @function
|
|
147
146
|
* @param {Function} fn callback
|
|
148
147
|
* @param {Function} [scope=null] scope
|
|
@@ -162,7 +161,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
162
161
|
/**
|
|
163
162
|
* Add the passed vector to this vector
|
|
164
163
|
* @name add
|
|
165
|
-
* @
|
|
164
|
+
* @memberof me.ObservableVector3d
|
|
166
165
|
* @function
|
|
167
166
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
168
167
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
@@ -174,7 +173,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
174
173
|
/**
|
|
175
174
|
* Substract the passed vector to this vector
|
|
176
175
|
* @name sub
|
|
177
|
-
* @
|
|
176
|
+
* @memberof me.ObservableVector3d
|
|
178
177
|
* @function
|
|
179
178
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
180
179
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
@@ -186,7 +185,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
186
185
|
/**
|
|
187
186
|
* Multiply this vector values by the given scalar
|
|
188
187
|
* @name scale
|
|
189
|
-
* @
|
|
188
|
+
* @memberof me.ObservableVector3d
|
|
190
189
|
* @function
|
|
191
190
|
* @param {number} x
|
|
192
191
|
* @param {number} [y=x]
|
|
@@ -201,7 +200,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
201
200
|
/**
|
|
202
201
|
* Multiply this vector values by the passed vector
|
|
203
202
|
* @name scaleV
|
|
204
|
-
* @
|
|
203
|
+
* @memberof me.ObservableVector3d
|
|
205
204
|
* @function
|
|
206
205
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
207
206
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
@@ -213,7 +212,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
213
212
|
/**
|
|
214
213
|
* Divide this vector values by the passed value
|
|
215
214
|
* @name div
|
|
216
|
-
* @
|
|
215
|
+
* @memberof me.ObservableVector3d
|
|
217
216
|
* @function
|
|
218
217
|
* @param {number} n the value to divide the vector by
|
|
219
218
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
@@ -225,7 +224,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
225
224
|
/**
|
|
226
225
|
* Update this vector values to absolute values
|
|
227
226
|
* @name abs
|
|
228
|
-
* @
|
|
227
|
+
* @memberof me.ObservableVector3d
|
|
229
228
|
* @function
|
|
230
229
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
231
230
|
*/
|
|
@@ -240,7 +239,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
240
239
|
/**
|
|
241
240
|
* Clamp the vector value within the specified value range
|
|
242
241
|
* @name clamp
|
|
243
|
-
* @
|
|
242
|
+
* @memberof me.ObservableVector3d
|
|
244
243
|
* @function
|
|
245
244
|
* @param {number} low
|
|
246
245
|
* @param {number} high
|
|
@@ -258,7 +257,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
258
257
|
/**
|
|
259
258
|
* Clamp this vector value within the specified value range
|
|
260
259
|
* @name clampSelf
|
|
261
|
-
* @
|
|
260
|
+
* @memberof me.ObservableVector3d
|
|
262
261
|
* @function
|
|
263
262
|
* @param {number} low
|
|
264
263
|
* @param {number} high
|
|
@@ -275,7 +274,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
275
274
|
/**
|
|
276
275
|
* Update this vector with the minimum value between this and the passed vector
|
|
277
276
|
* @name minV
|
|
278
|
-
* @
|
|
277
|
+
* @memberof me.ObservableVector3d
|
|
279
278
|
* @function
|
|
280
279
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
281
280
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
@@ -292,7 +291,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
292
291
|
/**
|
|
293
292
|
* Update this vector with the maximum value between this and the passed vector
|
|
294
293
|
* @name maxV
|
|
295
|
-
* @
|
|
294
|
+
* @memberof me.ObservableVector3d
|
|
296
295
|
* @function
|
|
297
296
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
298
297
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
@@ -309,7 +308,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
309
308
|
/**
|
|
310
309
|
* Floor the vector values
|
|
311
310
|
* @name floor
|
|
312
|
-
* @
|
|
311
|
+
* @memberof me.ObservableVector3d
|
|
313
312
|
* @function
|
|
314
313
|
* @returns {me.ObservableVector3d} new me.ObservableVector3d
|
|
315
314
|
*/
|
|
@@ -325,7 +324,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
325
324
|
/**
|
|
326
325
|
* Floor this vector values
|
|
327
326
|
* @name floorSelf
|
|
328
|
-
* @
|
|
327
|
+
* @memberof me.ObservableVector3d
|
|
329
328
|
* @function
|
|
330
329
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
331
330
|
*/
|
|
@@ -336,7 +335,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
336
335
|
/**
|
|
337
336
|
* Ceil the vector values
|
|
338
337
|
* @name ceil
|
|
339
|
-
* @
|
|
338
|
+
* @memberof me.ObservableVector3d
|
|
340
339
|
* @function
|
|
341
340
|
* @returns {me.ObservableVector3d} new me.ObservableVector3d
|
|
342
341
|
*/
|
|
@@ -352,7 +351,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
352
351
|
/**
|
|
353
352
|
* Ceil this vector values
|
|
354
353
|
* @name ceilSelf
|
|
355
|
-
* @
|
|
354
|
+
* @memberof me.ObservableVector3d
|
|
356
355
|
* @function
|
|
357
356
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
358
357
|
*/
|
|
@@ -363,7 +362,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
363
362
|
/**
|
|
364
363
|
* Negate the vector values
|
|
365
364
|
* @name negate
|
|
366
|
-
* @
|
|
365
|
+
* @memberof me.ObservableVector3d
|
|
367
366
|
* @function
|
|
368
367
|
* @returns {me.ObservableVector3d} new me.ObservableVector3d
|
|
369
368
|
*/
|
|
@@ -379,7 +378,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
379
378
|
/**
|
|
380
379
|
* Negate this vector values
|
|
381
380
|
* @name negateSelf
|
|
382
|
-
* @
|
|
381
|
+
* @memberof me.ObservableVector3d
|
|
383
382
|
* @function
|
|
384
383
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
385
384
|
*/
|
|
@@ -390,7 +389,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
390
389
|
/**
|
|
391
390
|
* Copy the components of the given vector into this one
|
|
392
391
|
* @name copy
|
|
393
|
-
* @
|
|
392
|
+
* @memberof me.ObservableVector3d
|
|
394
393
|
* @function
|
|
395
394
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
396
395
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
@@ -402,7 +401,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
402
401
|
/**
|
|
403
402
|
* return true if the two vectors are the same
|
|
404
403
|
* @name equals
|
|
405
|
-
* @
|
|
404
|
+
* @memberof me.ObservableVector3d
|
|
406
405
|
* @function
|
|
407
406
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
408
407
|
* @returns {boolean}
|
|
@@ -415,7 +414,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
415
414
|
* change this vector to be perpendicular to what it was before.<br>
|
|
416
415
|
* (Effectively rotates it 90 degrees in a clockwise direction)
|
|
417
416
|
* @name perp
|
|
418
|
-
* @
|
|
417
|
+
* @memberof me.ObservableVector3d
|
|
419
418
|
* @function
|
|
420
419
|
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
421
420
|
*/
|
|
@@ -426,7 +425,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
426
425
|
/**
|
|
427
426
|
* Rotate this vector (counter-clockwise) by the specified angle (in radians).
|
|
428
427
|
* @name rotate
|
|
429
|
-
* @
|
|
428
|
+
* @memberof me.ObservableVector3d
|
|
430
429
|
* @function
|
|
431
430
|
* @param {number} angle The angle to rotate (in radians)
|
|
432
431
|
* @param {me.Vector2d|me.ObservableVector2d} [v] an optional point to rotate around (on the same z axis)
|
|
@@ -453,20 +452,39 @@ class ObservableVector3d extends Vector3d {
|
|
|
453
452
|
|
|
454
453
|
/**
|
|
455
454
|
* return the dot product of this vector and the passed one
|
|
456
|
-
* @name
|
|
457
|
-
* @
|
|
455
|
+
* @name dot
|
|
456
|
+
* @memberof me.ObservableVector3d
|
|
458
457
|
* @function
|
|
459
458
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
460
459
|
* @returns {number} The dot product.
|
|
461
460
|
*/
|
|
462
|
-
|
|
461
|
+
dot(v) {
|
|
463
462
|
return this._x * v.x + this._y * v.y + this._z * (v.z || 1);
|
|
464
463
|
}
|
|
465
464
|
|
|
465
|
+
/**
|
|
466
|
+
* calculate the cross product of this vector and the passed one
|
|
467
|
+
* @name cross
|
|
468
|
+
* @memberof me.ObservableVector3d
|
|
469
|
+
* @function
|
|
470
|
+
* @param {me.Vector3d|me.ObservableVector3d} v
|
|
471
|
+
* @returns {me.ObservableVector3d} Reference to this object for method chaining
|
|
472
|
+
*/
|
|
473
|
+
cross(v) {
|
|
474
|
+
var ax = this._x, ay = this._y, az = this._z;
|
|
475
|
+
var bx = v.x, by = v.y, bz = v.z;
|
|
476
|
+
|
|
477
|
+
return this._set(
|
|
478
|
+
ay * bz - az * by,
|
|
479
|
+
az * bx - ax * bz,
|
|
480
|
+
ax * by - ay * bx
|
|
481
|
+
);
|
|
482
|
+
}
|
|
483
|
+
|
|
466
484
|
/**
|
|
467
485
|
* Linearly interpolate between this vector and the given one.
|
|
468
486
|
* @name lerp
|
|
469
|
-
* @
|
|
487
|
+
* @memberof me.ObservableVector3d
|
|
470
488
|
* @function
|
|
471
489
|
* @param {me.Vector3d|me.ObservableVector3d} v
|
|
472
490
|
* @param {number} alpha distance along the line (alpha = 0 will be this vector, and alpha = 1 will be the given one).
|
|
@@ -482,7 +500,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
482
500
|
/**
|
|
483
501
|
* return the distance between this vector and the passed one
|
|
484
502
|
* @name distance
|
|
485
|
-
* @
|
|
503
|
+
* @memberof me.ObservableVector3d
|
|
486
504
|
* @function
|
|
487
505
|
* @param {me.Vector2d|me.Vector3d|me.ObservableVector2d|me.ObservableVector3d} v
|
|
488
506
|
* @returns {number}
|
|
@@ -497,7 +515,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
497
515
|
/**
|
|
498
516
|
* return a clone copy of this vector
|
|
499
517
|
* @name clone
|
|
500
|
-
* @
|
|
518
|
+
* @memberof me.ObservableVector3d
|
|
501
519
|
* @function
|
|
502
520
|
* @returns {me.ObservableVector3d} new me.ObservableVector3d
|
|
503
521
|
*/
|
|
@@ -513,7 +531,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
513
531
|
/**
|
|
514
532
|
* return a `me.Vector3d` copy of this `me.ObservableVector3d` object
|
|
515
533
|
* @name toVector3d
|
|
516
|
-
* @
|
|
534
|
+
* @memberof me.ObservableVector3d
|
|
517
535
|
* @function
|
|
518
536
|
* @returns {me.Vector3d} new me.Vector3d
|
|
519
537
|
*/
|
|
@@ -524,7 +542,7 @@ class ObservableVector3d extends Vector3d {
|
|
|
524
542
|
/**
|
|
525
543
|
* convert the object to a string representation
|
|
526
544
|
* @name toString
|
|
527
|
-
* @
|
|
545
|
+
* @memberof me.ObservableVector3d
|
|
528
546
|
* @function
|
|
529
547
|
* @returns {string}
|
|
530
548
|
*/
|
package/src/math/vector2.js
CHANGED
|
@@ -5,8 +5,7 @@ import pool from "./../system/pooling.js";
|
|
|
5
5
|
* @classdesc
|
|
6
6
|
* a generic 2D Vector Object
|
|
7
7
|
* @class Vector2d
|
|
8
|
-
* @
|
|
9
|
-
* @constructor
|
|
8
|
+
* @memberof me
|
|
10
9
|
* @param {number} [x=0] x value of the vector
|
|
11
10
|
* @param {number} [y=0] y value of the vector
|
|
12
11
|
*/
|
|
@@ -38,7 +37,7 @@ class Vector2d {
|
|
|
38
37
|
/**
|
|
39
38
|
* set the Vector x and y properties to the given values<br>
|
|
40
39
|
* @name set
|
|
41
|
-
* @
|
|
40
|
+
* @memberof me.Vector2d
|
|
42
41
|
* @function
|
|
43
42
|
* @param {number} x
|
|
44
43
|
* @param {number} y
|
|
@@ -56,7 +55,7 @@ class Vector2d {
|
|
|
56
55
|
* @public
|
|
57
56
|
* @type {number}
|
|
58
57
|
* @name x
|
|
59
|
-
* @
|
|
58
|
+
* @memberof me.Vector2d
|
|
60
59
|
*/
|
|
61
60
|
//this.x = x;
|
|
62
61
|
|
|
@@ -65,7 +64,7 @@ class Vector2d {
|
|
|
65
64
|
* @public
|
|
66
65
|
* @type {number}
|
|
67
66
|
* @name y
|
|
68
|
-
* @
|
|
67
|
+
* @memberof me.Vector2d
|
|
69
68
|
*/
|
|
70
69
|
//this.y = y;
|
|
71
70
|
|
|
@@ -75,7 +74,7 @@ class Vector2d {
|
|
|
75
74
|
/**
|
|
76
75
|
* set the Vector x and y properties to 0
|
|
77
76
|
* @name setZero
|
|
78
|
-
* @
|
|
77
|
+
* @memberof me.Vector2d
|
|
79
78
|
* @function
|
|
80
79
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
81
80
|
*/
|
|
@@ -86,7 +85,7 @@ class Vector2d {
|
|
|
86
85
|
/**
|
|
87
86
|
* set the Vector x and y properties using the passed vector
|
|
88
87
|
* @name setV
|
|
89
|
-
* @
|
|
88
|
+
* @memberof me.Vector2d
|
|
90
89
|
* @function
|
|
91
90
|
* @param {me.Vector2d} v
|
|
92
91
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -98,7 +97,7 @@ class Vector2d {
|
|
|
98
97
|
/**
|
|
99
98
|
* Add the passed vector to this vector
|
|
100
99
|
* @name add
|
|
101
|
-
* @
|
|
100
|
+
* @memberof me.Vector2d
|
|
102
101
|
* @function
|
|
103
102
|
* @param {me.Vector2d} v
|
|
104
103
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -110,7 +109,7 @@ class Vector2d {
|
|
|
110
109
|
/**
|
|
111
110
|
* Substract the passed vector to this vector
|
|
112
111
|
* @name sub
|
|
113
|
-
* @
|
|
112
|
+
* @memberof me.Vector2d
|
|
114
113
|
* @function
|
|
115
114
|
* @param {me.Vector2d} v
|
|
116
115
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -122,7 +121,7 @@ class Vector2d {
|
|
|
122
121
|
/**
|
|
123
122
|
* Multiply this vector values by the given scalar
|
|
124
123
|
* @name scale
|
|
125
|
-
* @
|
|
124
|
+
* @memberof me.Vector2d
|
|
126
125
|
* @function
|
|
127
126
|
* @param {number} x
|
|
128
127
|
* @param {number} [y=x]
|
|
@@ -135,7 +134,7 @@ class Vector2d {
|
|
|
135
134
|
/**
|
|
136
135
|
* Convert this vector into isometric coordinate space
|
|
137
136
|
* @name toIso
|
|
138
|
-
* @
|
|
137
|
+
* @memberof me.Vector2d
|
|
139
138
|
* @function
|
|
140
139
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
141
140
|
*/
|
|
@@ -146,7 +145,7 @@ class Vector2d {
|
|
|
146
145
|
/**
|
|
147
146
|
* Convert this vector into 2d coordinate space
|
|
148
147
|
* @name to2d
|
|
149
|
-
* @
|
|
148
|
+
* @memberof me.Vector2d
|
|
150
149
|
* @function
|
|
151
150
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
152
151
|
*/
|
|
@@ -157,7 +156,7 @@ class Vector2d {
|
|
|
157
156
|
/**
|
|
158
157
|
* Multiply this vector values by the passed vector
|
|
159
158
|
* @name scaleV
|
|
160
|
-
* @
|
|
159
|
+
* @memberof me.Vector2d
|
|
161
160
|
* @function
|
|
162
161
|
* @param {me.Vector2d} v
|
|
163
162
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -169,7 +168,7 @@ class Vector2d {
|
|
|
169
168
|
/**
|
|
170
169
|
* Divide this vector values by the passed value
|
|
171
170
|
* @name div
|
|
172
|
-
* @
|
|
171
|
+
* @memberof me.Vector2d
|
|
173
172
|
* @function
|
|
174
173
|
* @param {number} n the value to divide the vector by
|
|
175
174
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -181,7 +180,7 @@ class Vector2d {
|
|
|
181
180
|
/**
|
|
182
181
|
* Update this vector values to absolute values
|
|
183
182
|
* @name abs
|
|
184
|
-
* @
|
|
183
|
+
* @memberof me.Vector2d
|
|
185
184
|
* @function
|
|
186
185
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
187
186
|
*/
|
|
@@ -192,7 +191,7 @@ class Vector2d {
|
|
|
192
191
|
/**
|
|
193
192
|
* Clamp the vector value within the specified value range
|
|
194
193
|
* @name clamp
|
|
195
|
-
* @
|
|
194
|
+
* @memberof me.Vector2d
|
|
196
195
|
* @function
|
|
197
196
|
* @param {number} low
|
|
198
197
|
* @param {number} high
|
|
@@ -205,7 +204,7 @@ class Vector2d {
|
|
|
205
204
|
/**
|
|
206
205
|
* Clamp this vector value within the specified value range
|
|
207
206
|
* @name clampSelf
|
|
208
|
-
* @
|
|
207
|
+
* @memberof me.Vector2d
|
|
209
208
|
* @function
|
|
210
209
|
* @param {number} low
|
|
211
210
|
* @param {number} high
|
|
@@ -218,7 +217,7 @@ class Vector2d {
|
|
|
218
217
|
/**
|
|
219
218
|
* Update this vector with the minimum value between this and the passed vector
|
|
220
219
|
* @name minV
|
|
221
|
-
* @
|
|
220
|
+
* @memberof me.Vector2d
|
|
222
221
|
* @function
|
|
223
222
|
* @param {me.Vector2d} v
|
|
224
223
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -230,7 +229,7 @@ class Vector2d {
|
|
|
230
229
|
/**
|
|
231
230
|
* Update this vector with the maximum value between this and the passed vector
|
|
232
231
|
* @name maxV
|
|
233
|
-
* @
|
|
232
|
+
* @memberof me.Vector2d
|
|
234
233
|
* @function
|
|
235
234
|
* @param {me.Vector2d} v
|
|
236
235
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -242,7 +241,7 @@ class Vector2d {
|
|
|
242
241
|
/**
|
|
243
242
|
* Floor the vector values
|
|
244
243
|
* @name floor
|
|
245
|
-
* @
|
|
244
|
+
* @memberof me.Vector2d
|
|
246
245
|
* @function
|
|
247
246
|
* @returns {me.Vector2d} new me.Vector2d
|
|
248
247
|
*/
|
|
@@ -253,7 +252,7 @@ class Vector2d {
|
|
|
253
252
|
/**
|
|
254
253
|
* Floor this vector values
|
|
255
254
|
* @name floorSelf
|
|
256
|
-
* @
|
|
255
|
+
* @memberof me.Vector2d
|
|
257
256
|
* @function
|
|
258
257
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
259
258
|
*/
|
|
@@ -264,7 +263,7 @@ class Vector2d {
|
|
|
264
263
|
/**
|
|
265
264
|
* Ceil the vector values
|
|
266
265
|
* @name ceil
|
|
267
|
-
* @
|
|
266
|
+
* @memberof me.Vector2d
|
|
268
267
|
* @function
|
|
269
268
|
* @returns {me.Vector2d} new me.Vector2d
|
|
270
269
|
*/
|
|
@@ -275,7 +274,7 @@ class Vector2d {
|
|
|
275
274
|
/**
|
|
276
275
|
* Ceil this vector values
|
|
277
276
|
* @name ceilSelf
|
|
278
|
-
* @
|
|
277
|
+
* @memberof me.Vector2d
|
|
279
278
|
* @function
|
|
280
279
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
281
280
|
*/
|
|
@@ -286,7 +285,7 @@ class Vector2d {
|
|
|
286
285
|
/**
|
|
287
286
|
* Negate the vector values
|
|
288
287
|
* @name negate
|
|
289
|
-
* @
|
|
288
|
+
* @memberof me.Vector2d
|
|
290
289
|
* @function
|
|
291
290
|
* @returns {me.Vector2d} new me.Vector2d
|
|
292
291
|
*/
|
|
@@ -297,7 +296,7 @@ class Vector2d {
|
|
|
297
296
|
/**
|
|
298
297
|
* Negate this vector values
|
|
299
298
|
* @name negateSelf
|
|
300
|
-
* @
|
|
299
|
+
* @memberof me.Vector2d
|
|
301
300
|
* @function
|
|
302
301
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
303
302
|
*/
|
|
@@ -308,7 +307,7 @@ class Vector2d {
|
|
|
308
307
|
/**
|
|
309
308
|
* Copy the x,y values of the passed vector to this one
|
|
310
309
|
* @name copy
|
|
311
|
-
* @
|
|
310
|
+
* @memberof me.Vector2d
|
|
312
311
|
* @function
|
|
313
312
|
* @param {me.Vector2d} v
|
|
314
313
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
@@ -320,7 +319,7 @@ class Vector2d {
|
|
|
320
319
|
/**
|
|
321
320
|
* return true if the two vectors are the same
|
|
322
321
|
* @name equals
|
|
323
|
-
* @
|
|
322
|
+
* @memberof me.Vector2d
|
|
324
323
|
* @function
|
|
325
324
|
* @param {me.Vector2d} v
|
|
326
325
|
* @returns {boolean}
|
|
@@ -328,7 +327,7 @@ class Vector2d {
|
|
|
328
327
|
/**
|
|
329
328
|
* return true if this vector is equal to the given values
|
|
330
329
|
* @name equals
|
|
331
|
-
* @
|
|
330
|
+
* @memberof me.Vector2d
|
|
332
331
|
* @function
|
|
333
332
|
* @param {number} x
|
|
334
333
|
* @param {number} y
|
|
@@ -351,7 +350,7 @@ class Vector2d {
|
|
|
351
350
|
/**
|
|
352
351
|
* normalize this vector (scale the vector so that its magnitude is 1)
|
|
353
352
|
* @name normalize
|
|
354
|
-
* @
|
|
353
|
+
* @memberof me.Vector2d
|
|
355
354
|
* @function
|
|
356
355
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
357
356
|
*/
|
|
@@ -363,7 +362,7 @@ class Vector2d {
|
|
|
363
362
|
* change this vector to be perpendicular to what it was before.<br>
|
|
364
363
|
* (Effectively rotates it 90 degrees in a clockwise direction)
|
|
365
364
|
* @name perp
|
|
366
|
-
* @
|
|
365
|
+
* @memberof me.Vector2d
|
|
367
366
|
* @function
|
|
368
367
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
369
368
|
*/
|
|
@@ -374,7 +373,7 @@ class Vector2d {
|
|
|
374
373
|
/**
|
|
375
374
|
* Rotate this vector (counter-clockwise) by the specified angle (in radians).
|
|
376
375
|
* @name rotate
|
|
377
|
-
* @
|
|
376
|
+
* @memberof me.Vector2d
|
|
378
377
|
* @function
|
|
379
378
|
* @param {number} angle The angle to rotate (in radians)
|
|
380
379
|
* @param {me.Vector2d|me.ObservableVector2d} [v] an optional point to rotate around
|
|
@@ -400,31 +399,43 @@ class Vector2d {
|
|
|
400
399
|
|
|
401
400
|
/**
|
|
402
401
|
* return the dot product of this vector and the passed one
|
|
403
|
-
* @name
|
|
404
|
-
* @
|
|
402
|
+
* @name dot
|
|
403
|
+
* @memberof me.Vector2d
|
|
405
404
|
* @function
|
|
406
405
|
* @param {me.Vector2d} v
|
|
407
406
|
* @returns {number} The dot product.
|
|
408
407
|
*/
|
|
409
|
-
|
|
408
|
+
dot(v) {
|
|
410
409
|
return this.x * v.x + this.y * v.y;
|
|
411
410
|
}
|
|
412
411
|
|
|
412
|
+
/**
|
|
413
|
+
* return the cross product of this vector and the passed one
|
|
414
|
+
* @name cross
|
|
415
|
+
* @memberof me.Vector2d
|
|
416
|
+
* @function
|
|
417
|
+
* @param {me.Vector2d} v
|
|
418
|
+
* @returns {number} The cross product.
|
|
419
|
+
*/
|
|
420
|
+
cross(v) {
|
|
421
|
+
return this.x * v.y - this.y * v.x;
|
|
422
|
+
}
|
|
423
|
+
|
|
413
424
|
/**
|
|
414
425
|
* return the square length of this vector
|
|
415
426
|
* @name length2
|
|
416
|
-
* @
|
|
427
|
+
* @memberof me.Vector2d
|
|
417
428
|
* @function
|
|
418
429
|
* @returns {number} The length^2 of this vector.
|
|
419
430
|
*/
|
|
420
431
|
length2() {
|
|
421
|
-
return this.
|
|
432
|
+
return this.dot(this);
|
|
422
433
|
}
|
|
423
434
|
|
|
424
435
|
/**
|
|
425
436
|
* return the length (magnitude) of this vector
|
|
426
437
|
* @name length
|
|
427
|
-
* @
|
|
438
|
+
* @memberof me.Vector2d
|
|
428
439
|
* @function
|
|
429
440
|
* @returns {number} the length of this vector
|
|
430
441
|
*/
|
|
@@ -435,7 +446,7 @@ class Vector2d {
|
|
|
435
446
|
/**
|
|
436
447
|
* Linearly interpolate between this vector and the given one.
|
|
437
448
|
* @name lerp
|
|
438
|
-
* @
|
|
449
|
+
* @memberof me.Vector2d
|
|
439
450
|
* @function
|
|
440
451
|
* @param {me.Vector2d} v
|
|
441
452
|
* @param {number} alpha distance along the line (alpha = 0 will be this vector, and alpha = 1 will be the given one).
|
|
@@ -450,7 +461,7 @@ class Vector2d {
|
|
|
450
461
|
/**
|
|
451
462
|
* return the distance between this vector and the passed one
|
|
452
463
|
* @name distance
|
|
453
|
-
* @
|
|
464
|
+
* @memberof me.Vector2d
|
|
454
465
|
* @function
|
|
455
466
|
* @param {me.Vector2d} v
|
|
456
467
|
* @returns {number}
|
|
@@ -463,44 +474,44 @@ class Vector2d {
|
|
|
463
474
|
/**
|
|
464
475
|
* return the angle between this vector and the passed one
|
|
465
476
|
* @name angle
|
|
466
|
-
* @
|
|
477
|
+
* @memberof me.Vector2d
|
|
467
478
|
* @function
|
|
468
479
|
* @param {me.Vector2d} v
|
|
469
480
|
* @returns {number} angle in radians
|
|
470
481
|
*/
|
|
471
482
|
angle(v) {
|
|
472
|
-
return Math.acos(clamp(this.
|
|
483
|
+
return Math.acos(clamp(this.dot(v) / (this.length() * v.length()), -1, 1));
|
|
473
484
|
}
|
|
474
485
|
|
|
475
486
|
/**
|
|
476
487
|
* project this vector on to another vector.
|
|
477
488
|
* @name project
|
|
478
|
-
* @
|
|
489
|
+
* @memberof me.Vector2d
|
|
479
490
|
* @function
|
|
480
491
|
* @param {me.Vector2d} v The vector to project onto.
|
|
481
492
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
482
493
|
*/
|
|
483
494
|
project(v) {
|
|
484
|
-
return this.scale(this.
|
|
495
|
+
return this.scale(this.dot(v) / v.length2());
|
|
485
496
|
}
|
|
486
497
|
|
|
487
498
|
/**
|
|
488
499
|
* Project this vector onto a vector of unit length.<br>
|
|
489
500
|
* This is slightly more efficient than `project` when dealing with unit vectors.
|
|
490
501
|
* @name projectN
|
|
491
|
-
* @
|
|
502
|
+
* @memberof me.Vector2d
|
|
492
503
|
* @function
|
|
493
504
|
* @param {me.Vector2d} v The unit vector to project onto.
|
|
494
505
|
* @returns {me.Vector2d} Reference to this object for method chaining
|
|
495
506
|
*/
|
|
496
507
|
projectN(v) {
|
|
497
|
-
return this.scale(this.
|
|
508
|
+
return this.scale(this.dot(v));
|
|
498
509
|
}
|
|
499
510
|
|
|
500
511
|
/**
|
|
501
512
|
* return a clone copy of this vector
|
|
502
513
|
* @name clone
|
|
503
|
-
* @
|
|
514
|
+
* @memberof me.Vector2d
|
|
504
515
|
* @function
|
|
505
516
|
* @returns {me.Vector2d} new me.Vector2d
|
|
506
517
|
*/
|
|
@@ -511,7 +522,7 @@ class Vector2d {
|
|
|
511
522
|
/**
|
|
512
523
|
* convert the object to a string representation
|
|
513
524
|
* @name toString
|
|
514
|
-
* @
|
|
525
|
+
* @memberof me.Vector2d
|
|
515
526
|
* @function
|
|
516
527
|
* @returns {string}
|
|
517
528
|
*/
|