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.
Files changed (93) hide show
  1. package/dist/melonjs.js +1741 -1558
  2. package/dist/melonjs.min.js +4 -4
  3. package/dist/melonjs.module.d.ts +1256 -1758
  4. package/dist/melonjs.module.js +1734 -1582
  5. package/package.json +12 -12
  6. package/src/audio/audio.js +3 -3
  7. package/src/camera/camera2d.js +26 -27
  8. package/src/entity/draggable.js +10 -19
  9. package/src/entity/droptarget.js +12 -20
  10. package/src/entity/entity.js +13 -13
  11. package/src/game.js +6 -6
  12. package/src/{shapes → geometries}/ellipse.js +19 -20
  13. package/src/{shapes → geometries}/line.js +6 -7
  14. package/src/{shapes → geometries}/poly.js +70 -23
  15. package/src/{shapes → geometries}/rectangle.js +23 -24
  16. package/src/index.js +8 -9
  17. package/src/input/gamepad.js +7 -7
  18. package/src/input/input.js +2 -2
  19. package/src/input/keyboard.js +108 -108
  20. package/src/input/pointer.js +61 -28
  21. package/src/input/pointerevent.js +79 -16
  22. package/src/lang/deprecated.js +26 -15
  23. package/src/level/level.js +10 -10
  24. package/src/level/tiled/TMXGroup.js +6 -7
  25. package/src/level/tiled/TMXLayer.js +10 -11
  26. package/src/level/tiled/TMXObject.js +57 -51
  27. package/src/level/tiled/TMXTile.js +2 -3
  28. package/src/level/tiled/TMXTileMap.js +3 -4
  29. package/src/level/tiled/TMXTileset.js +1 -2
  30. package/src/level/tiled/TMXTilesetGroup.js +1 -2
  31. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -3
  32. package/src/level/tiled/renderer/TMXIsometricRenderer.js +2 -3
  33. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
  34. package/src/level/tiled/renderer/TMXRenderer.js +1 -2
  35. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +2 -3
  36. package/src/loader/loader.js +17 -15
  37. package/src/loader/loadingscreen.js +1 -2
  38. package/src/math/color.js +23 -24
  39. package/src/math/math.js +16 -16
  40. package/src/math/matrix2.js +24 -25
  41. package/src/math/matrix3.js +26 -27
  42. package/src/math/observable_vector2.js +46 -35
  43. package/src/math/observable_vector3.js +54 -36
  44. package/src/math/vector2.js +58 -47
  45. package/src/math/vector3.js +66 -48
  46. package/src/particles/emitter.js +64 -72
  47. package/src/particles/particle.js +3 -4
  48. package/src/particles/particlecontainer.js +2 -3
  49. package/src/physics/body.js +38 -39
  50. package/src/physics/bounds.js +30 -32
  51. package/src/physics/collision.js +6 -6
  52. package/src/physics/detector.js +3 -3
  53. package/src/physics/quadtree.js +8 -9
  54. package/src/physics/sat.js +4 -4
  55. package/src/physics/world.js +11 -12
  56. package/src/plugin/plugin.js +6 -7
  57. package/src/renderable/GUI.js +7 -8
  58. package/src/renderable/collectable.js +3 -4
  59. package/src/renderable/colorlayer.js +7 -8
  60. package/src/renderable/container.js +36 -37
  61. package/src/renderable/imagelayer.js +4 -5
  62. package/src/renderable/nineslicesprite.js +2 -3
  63. package/src/renderable/renderable.js +45 -46
  64. package/src/renderable/sprite.js +16 -17
  65. package/src/renderable/trigger.js +4 -5
  66. package/src/state/stage.js +8 -9
  67. package/src/state/state.js +24 -24
  68. package/src/system/device.js +41 -97
  69. package/src/system/event.js +45 -33
  70. package/src/system/pooling.js +1 -1
  71. package/src/system/save.js +3 -3
  72. package/src/system/timer.js +13 -13
  73. package/src/text/bitmaptext.js +12 -13
  74. package/src/text/bitmaptextdata.js +5 -6
  75. package/src/text/text.js +16 -17
  76. package/src/tweens/easing.js +1 -1
  77. package/src/tweens/interpolation.js +1 -1
  78. package/src/tweens/tween.js +14 -15
  79. package/src/utils/agent.js +3 -3
  80. package/src/utils/array.js +4 -4
  81. package/src/utils/file.js +3 -3
  82. package/src/utils/function.js +3 -3
  83. package/src/utils/string.js +7 -7
  84. package/src/utils/utils.js +4 -4
  85. package/src/video/canvas/canvas_renderer.js +39 -40
  86. package/src/video/renderer.js +29 -30
  87. package/src/video/texture.js +8 -9
  88. package/src/video/texture_cache.js +2 -4
  89. package/src/video/video.js +7 -7
  90. package/src/video/webgl/buffer/vertex.js +2 -2
  91. package/src/video/webgl/glshader.js +11 -12
  92. package/src/video/webgl/webgl_compositor.js +118 -90
  93. 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
- * @extends me.Vector3d
10
- * @memberOf me
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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 dotProduct
457
- * @memberOf me.ObservableVector3d
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
- dotProduct(v) {
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
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
- * @memberOf me.ObservableVector3d
545
+ * @memberof me.ObservableVector3d
528
546
  * @function
529
547
  * @returns {string}
530
548
  */
@@ -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
- * @memberOf me
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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 dotProduct
404
- * @memberOf me.Vector2d
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
- dotProduct(v) {
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
- * @memberOf me.Vector2d
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.dotProduct(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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
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.dotProduct(v) / (this.length() * v.length()), -1, 1));
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
- * @memberOf me.Vector2d
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.dotProduct(v) / v.length2());
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
- * @memberOf me.Vector2d
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.dotProduct(v));
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
- * @memberOf me.Vector2d
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
- * @memberOf me.Vector2d
525
+ * @memberof me.Vector2d
515
526
  * @function
516
527
  * @returns {string}
517
528
  */