melonjs 15.2.1 → 15.4.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 (291) hide show
  1. package/README.md +1 -1
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +75 -23
  7. package/dist/melonjs.mjs/application/header.js +2 -2
  8. package/dist/melonjs.mjs/application/resize.js +13 -11
  9. package/dist/melonjs.mjs/application/settings.js +37 -1
  10. package/dist/melonjs.mjs/audio/audio.js +4 -6
  11. package/dist/melonjs.mjs/camera/camera2d.js +12 -14
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/entity/entity.js +3 -4
  14. package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
  15. package/dist/melonjs.mjs/geometries/line.js +18 -25
  16. package/dist/melonjs.mjs/geometries/path2d.js +16 -13
  17. package/dist/melonjs.mjs/geometries/point.js +8 -16
  18. package/dist/melonjs.mjs/geometries/poly.js +40 -97
  19. package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
  20. package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
  21. package/dist/melonjs.mjs/index.js +6 -6
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +3 -3
  25. package/dist/melonjs.mjs/input/pointer.js +4 -4
  26. package/dist/melonjs.mjs/input/pointerevent.js +6 -7
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +2 -2
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -47
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +1 -1
  46. package/dist/melonjs.mjs/loader/loader.js +1 -1
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parser.js +4 -5
  50. package/dist/melonjs.mjs/loader/settings.js +1 -1
  51. package/dist/melonjs.mjs/math/color.js +5 -5
  52. package/dist/melonjs.mjs/math/math.js +1 -1
  53. package/dist/melonjs.mjs/math/matrix2.js +5 -59
  54. package/dist/melonjs.mjs/math/matrix3.js +82 -141
  55. package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
  56. package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
  57. package/dist/melonjs.mjs/math/vector2.js +7 -91
  58. package/dist/melonjs.mjs/math/vector3.js +6 -90
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  65. package/dist/melonjs.mjs/particles/emitter.js +2 -2
  66. package/dist/melonjs.mjs/particles/particle.js +2 -2
  67. package/dist/melonjs.mjs/particles/settings.js +1 -1
  68. package/dist/melonjs.mjs/physics/body.js +22 -20
  69. package/dist/melonjs.mjs/physics/bounds.js +27 -33
  70. package/dist/melonjs.mjs/physics/collision.js +5 -5
  71. package/dist/melonjs.mjs/physics/detector.js +10 -10
  72. package/dist/melonjs.mjs/physics/quadtree.js +5 -5
  73. package/dist/melonjs.mjs/physics/response.js +1 -1
  74. package/dist/melonjs.mjs/physics/sat.js +3 -4
  75. package/dist/melonjs.mjs/physics/world.js +6 -9
  76. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  77. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  78. package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
  79. package/dist/melonjs.mjs/renderable/container.js +25 -25
  80. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  81. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  82. package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
  83. package/dist/melonjs.mjs/renderable/light2d.js +3 -3
  84. package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
  85. package/dist/melonjs.mjs/renderable/renderable.js +31 -39
  86. package/dist/melonjs.mjs/renderable/sprite.js +3 -3
  87. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
  88. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
  89. package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
  90. package/dist/melonjs.mjs/renderable/text/text.js +422 -0
  91. package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
  92. package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
  93. package/dist/melonjs.mjs/renderable/trigger.js +10 -10
  94. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
  95. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
  96. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
  97. package/dist/melonjs.mjs/state/stage.js +13 -14
  98. package/dist/melonjs.mjs/state/state.js +4 -51
  99. package/dist/melonjs.mjs/system/device.js +51 -10
  100. package/dist/melonjs.mjs/system/dom.js +1 -1
  101. package/dist/melonjs.mjs/system/event.js +46 -2
  102. package/dist/melonjs.mjs/system/platform.js +18 -18
  103. package/dist/melonjs.mjs/system/pooling.js +10 -10
  104. package/dist/melonjs.mjs/system/save.js +1 -1
  105. package/dist/melonjs.mjs/system/timer.js +1 -1
  106. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  107. package/dist/melonjs.mjs/text/bitmaptextdata.js +3 -6
  108. package/dist/melonjs.mjs/text/glyph.js +1 -1
  109. package/dist/melonjs.mjs/text/text.js +1 -1
  110. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  111. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  112. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  113. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  114. package/dist/melonjs.mjs/tweens/tween.js +2 -2
  115. package/dist/melonjs.mjs/utils/agent.js +1 -1
  116. package/dist/melonjs.mjs/utils/array.js +1 -1
  117. package/dist/melonjs.mjs/utils/file.js +1 -1
  118. package/dist/melonjs.mjs/utils/function.js +2 -3
  119. package/dist/melonjs.mjs/utils/string.js +1 -1
  120. package/dist/melonjs.mjs/utils/utils.js +1 -1
  121. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +5 -18
  122. package/dist/melonjs.mjs/video/renderer.js +17 -30
  123. package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
  124. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  125. package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
  126. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  127. package/dist/melonjs.mjs/video/video.js +5 -29
  128. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
  129. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
  130. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
  131. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
  132. package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
  133. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  138. package/dist/melonjs.mjs/video/webgl/utils/precision.js +4 -4
  139. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  141. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  142. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +62 -67
  143. package/dist/melonjs.module.js +1272 -1713
  144. package/dist/types/application/application.d.ts +32 -31
  145. package/dist/types/application/header.d.ts +2 -2
  146. package/dist/types/application/settings.d.ts +80 -16
  147. package/dist/types/audio/audio.d.ts +4 -6
  148. package/dist/types/camera/camera2d.d.ts +13 -16
  149. package/dist/types/entity/entity.d.ts +0 -1
  150. package/dist/types/geometries/ellipse.d.ts +18 -50
  151. package/dist/types/geometries/path2d.d.ts +1 -1
  152. package/dist/types/geometries/point.d.ts +5 -13
  153. package/dist/types/geometries/poly.d.ts +26 -75
  154. package/dist/types/geometries/rectangle.d.ts +12 -58
  155. package/dist/types/geometries/roundrect.d.ts +2 -11
  156. package/dist/types/index.d.ts +3 -3
  157. package/dist/types/input/gamepad.d.ts +31 -31
  158. package/dist/types/input/keyboard.d.ts +105 -105
  159. package/dist/types/input/pointer.d.ts +21 -21
  160. package/dist/types/input/pointerevent.d.ts +6 -6
  161. package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
  162. package/dist/types/level/tiled/TMXUtils.d.ts +4 -6
  163. package/dist/types/math/matrix2.d.ts +9 -63
  164. package/dist/types/math/matrix3.d.ts +9 -68
  165. package/dist/types/math/observable_vector2.d.ts +2 -2
  166. package/dist/types/math/observable_vector3.d.ts +2 -2
  167. package/dist/types/math/vector2.d.ts +8 -92
  168. package/dist/types/math/vector3.d.ts +8 -92
  169. package/dist/types/particles/settings.d.ts +29 -29
  170. package/dist/types/physics/body.d.ts +10 -8
  171. package/dist/types/physics/bounds.d.ts +24 -30
  172. package/dist/types/physics/collision.d.ts +12 -12
  173. package/dist/types/physics/detector.d.ts +1 -1
  174. package/dist/types/physics/world.d.ts +4 -7
  175. package/dist/types/renderable/container.d.ts +19 -19
  176. package/dist/types/renderable/imagelayer.d.ts +6 -6
  177. package/dist/types/renderable/light2d.d.ts +7 -7
  178. package/dist/types/renderable/renderable.d.ts +10 -18
  179. package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
  180. package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
  181. package/dist/types/renderable/text/glyph.d.ts +28 -0
  182. package/dist/types/renderable/text/text.d.ts +159 -0
  183. package/dist/types/renderable/text/textmetrics.d.ts +47 -0
  184. package/dist/types/renderable/text/textstyle.d.ts +5 -0
  185. package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
  186. package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
  187. package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
  188. package/dist/types/state/stage.d.ts +3 -2
  189. package/dist/types/state/state.d.ts +11 -11
  190. package/dist/types/system/device.d.ts +16 -9
  191. package/dist/types/system/event.d.ts +40 -0
  192. package/dist/types/system/platform.d.ts +17 -17
  193. package/dist/types/utils/function.d.ts +1 -2
  194. package/dist/types/video/canvas/canvas_renderer.d.ts +0 -23
  195. package/dist/types/video/renderer.d.ts +16 -43
  196. package/dist/types/video/texture/canvas_texture.d.ts +14 -14
  197. package/dist/types/video/video.d.ts +4 -38
  198. package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
  199. package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
  200. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
  201. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
  202. package/dist/types/video/webgl/utils/precision.d.ts +1 -1
  203. package/dist/types/video/webgl/webgl_renderer.d.ts +48 -84
  204. package/package.json +15 -15
  205. package/src/application/application.js +73 -21
  206. package/src/application/header.js +1 -1
  207. package/src/application/resize.js +11 -9
  208. package/src/application/settings.js +36 -0
  209. package/src/audio/audio.js +3 -5
  210. package/src/camera/camera2d.js +11 -13
  211. package/src/entity/entity.js +2 -3
  212. package/src/geometries/ellipse.js +25 -58
  213. package/src/geometries/line.js +17 -24
  214. package/src/geometries/path2d.js +15 -12
  215. package/src/geometries/point.js +7 -15
  216. package/src/geometries/poly.js +39 -96
  217. package/src/geometries/rectangle.js +36 -90
  218. package/src/geometries/roundrect.js +25 -34
  219. package/src/index.js +4 -4
  220. package/src/input/keyboard.js +2 -2
  221. package/src/input/pointer.js +3 -3
  222. package/src/input/pointerevent.js +5 -6
  223. package/src/lang/deprecated.js +1 -1
  224. package/src/level/tiled/TMXLayer.js +15 -32
  225. package/src/level/tiled/TMXObject.js +2 -3
  226. package/src/level/tiled/TMXTile.js +3 -3
  227. package/src/level/tiled/TMXTileMap.js +2 -2
  228. package/src/level/tiled/TMXTileset.js +3 -6
  229. package/src/level/tiled/TMXTilesetGroup.js +1 -1
  230. package/src/level/tiled/TMXUtils.js +36 -46
  231. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  232. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  233. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  234. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  235. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  236. package/src/loader/parser.js +3 -4
  237. package/src/math/color.js +4 -4
  238. package/src/math/matrix2.js +4 -58
  239. package/src/math/matrix3.js +81 -140
  240. package/src/math/observable_vector2.js +6 -6
  241. package/src/math/observable_vector3.js +4 -4
  242. package/src/math/vector2.js +6 -90
  243. package/src/math/vector3.js +5 -89
  244. package/src/particles/emitter.js +1 -1
  245. package/src/particles/particle.js +1 -1
  246. package/src/physics/body.js +21 -19
  247. package/src/physics/bounds.js +26 -32
  248. package/src/physics/collision.js +4 -4
  249. package/src/physics/detector.js +9 -9
  250. package/src/physics/quadtree.js +4 -4
  251. package/src/physics/sat.js +2 -3
  252. package/src/physics/world.js +5 -8
  253. package/src/polyfill/roundrect.js +163 -163
  254. package/src/renderable/collectable.js +1 -1
  255. package/src/renderable/colorlayer.js +3 -3
  256. package/src/renderable/container.js +24 -24
  257. package/src/renderable/imagelayer.js +3 -3
  258. package/src/renderable/light2d.js +2 -2
  259. package/src/renderable/nineslicesprite.js +1 -1
  260. package/src/renderable/renderable.js +30 -38
  261. package/src/renderable/sprite.js +2 -2
  262. package/src/{text → renderable/text}/bitmaptext.js +8 -8
  263. package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
  264. package/src/{text → renderable/text}/glyph.js +1 -1
  265. package/src/{text → renderable/text}/text.js +16 -17
  266. package/src/{text → renderable/text}/textmetrics.js +2 -2
  267. package/src/renderable/trigger.js +9 -9
  268. package/src/renderable/ui/uibaseelement.js +6 -6
  269. package/src/renderable/ui/uispriteelement.js +6 -6
  270. package/src/renderable/ui/uitextbutton.js +2 -2
  271. package/src/state/stage.js +12 -13
  272. package/src/state/state.js +2 -61
  273. package/src/system/device.js +50 -9
  274. package/src/system/event.js +44 -0
  275. package/src/system/platform.js +18 -18
  276. package/src/system/pooling.js +9 -9
  277. package/src/tweens/tween.js +1 -1
  278. package/src/utils/function.js +1 -2
  279. package/src/video/canvas/canvas_renderer.js +4 -17
  280. package/src/video/renderer.js +16 -29
  281. package/src/video/texture/atlas.js +12 -12
  282. package/src/video/texture/canvas_texture.js +14 -14
  283. package/src/video/video.js +7 -28
  284. package/src/video/webgl/buffer/vertex.js +2 -2
  285. package/src/video/webgl/compositors/compositor.js +12 -13
  286. package/src/video/webgl/compositors/primitive_compositor.js +4 -4
  287. package/src/video/webgl/compositors/quad_compositor.js +1 -2
  288. package/src/video/webgl/glshader.js +1 -1
  289. package/src/video/webgl/utils/precision.js +3 -3
  290. package/src/video/webgl/webgl_renderer.js +61 -66
  291. /package/src/{text → renderable/text}/textstyle.js +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.2.1
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -12,7 +12,7 @@ import { EPSILON } from './math.js';
12
12
  * @classdesc
13
13
  * a 4x4 Matrix3d Object
14
14
  */
15
- class Matrix3d {
15
+ class Matrix3d {
16
16
  /**
17
17
  * @param {(Matrix3d|...number)} args - An instance of me.Matrix3d to copy from, or individual Matrix components (See {@link Matrix3d.setTransform}). If not arguments are given, the matrix will be set to Identity.
18
18
  */
@@ -41,10 +41,7 @@ import { EPSILON } from './math.js';
41
41
 
42
42
  /**
43
43
  * tx component of the matrix
44
- * @public
45
44
  * @type {number}
46
- * @name tx
47
- * @memberof Matrix3d
48
45
  */
49
46
  get tx() {
50
47
  return this.val[12];
@@ -52,10 +49,7 @@ import { EPSILON } from './math.js';
52
49
 
53
50
  /**
54
51
  * ty component of the matrix
55
- * @public
56
52
  * @type {number}
57
- * @name ty
58
- * @memberof Matrix3d
59
53
  */
60
54
  get ty() {
61
55
  return this.val[13];
@@ -63,10 +57,7 @@ import { EPSILON } from './math.js';
63
57
 
64
58
  /**
65
59
  * ty component of the matrix
66
- * @public
67
60
  * @type {number}
68
- * @name tz
69
- * @memberof Matrix3d
70
61
  */
71
62
  get tz() {
72
63
  return this.val[14];
@@ -76,8 +67,6 @@ import { EPSILON } from './math.js';
76
67
  * reset the transformation matrix to the identity matrix (no transformation).<br>
77
68
  * the identity matrix and parameters position : <br>
78
69
  * <img src="images/identity-matrix_2x.png"/>
79
- * @name identity
80
- * @memberof Matrix3d
81
70
  * @returns {Matrix3d} Reference to this object for method chaining
82
71
  */
83
72
  identity() {
@@ -91,8 +80,6 @@ import { EPSILON } from './math.js';
91
80
 
92
81
  /**
93
82
  * set the matrix to the specified value
94
- * @name setTransform
95
- * @memberof Matrix3d
96
83
  * @param {number} m00
97
84
  * @param {number} m01
98
85
  * @param {number} m02
@@ -136,8 +123,6 @@ import { EPSILON } from './math.js';
136
123
 
137
124
  /**
138
125
  * Copies over the values from another me.Matrix3d.
139
- * @name copy
140
- * @memberof Matrix3d
141
126
  * @param {Matrix3d} m - the matrix object to copy from
142
127
  * @returns {Matrix3d} Reference to this object for method chaining
143
128
  */
@@ -148,8 +133,6 @@ import { EPSILON } from './math.js';
148
133
 
149
134
  /**
150
135
  * Copies over the upper-left 2x2 values from the given me.Matrix2d
151
- * @name fromMat2d
152
- * @memberof Matrix3d
153
136
  * @param {Matrix2d} m - the matrix object to copy from
154
137
  * @returns {Matrix2d} Reference to this object for method chaining
155
138
  */
@@ -166,8 +149,6 @@ import { EPSILON } from './math.js';
166
149
 
167
150
  /**
168
151
  * multiply both matrix
169
- * @name multiply
170
- * @memberof Matrix3d
171
152
  * @param {Matrix3d} m - Other matrix
172
153
  * @returns {Matrix3d} Reference to this object for method chaining
173
154
  */
@@ -221,8 +202,6 @@ import { EPSILON } from './math.js';
221
202
 
222
203
  /**
223
204
  * Transpose the value of this matrix.
224
- * @name transpose
225
- * @memberof Matrix3d
226
205
  * @returns {Matrix3d} Reference to this object for method chaining
227
206
  */
228
207
  transpose() {
@@ -234,93 +213,89 @@ import { EPSILON } from './math.js';
234
213
  a13 = a[7],
235
214
  a23 = a[11];
236
215
 
237
- a[1] = a[4];
238
- a[2] = a[8];
239
- a[3] = a[12];
240
- a[4] = a01;
241
- a[6] = a[9];
242
- a[7] = a[13];
243
- a[8] = a02;
244
- a[9] = a12;
245
- a[11] = a[14];
246
- a[12] = a03;
247
- a[13] = a13;
248
- a[14] = a23;
249
-
250
- return this;
216
+ a[1] = a[4];
217
+ a[2] = a[8];
218
+ a[3] = a[12];
219
+ a[4] = a01;
220
+ a[6] = a[9];
221
+ a[7] = a[13];
222
+ a[8] = a02;
223
+ a[9] = a12;
224
+ a[11] = a[14];
225
+ a[12] = a03;
226
+ a[13] = a13;
227
+ a[14] = a23;
228
+
229
+ return this;
251
230
  }
252
231
 
253
232
  /**
254
233
  * invert this matrix, causing it to apply the opposite transformation.
255
- * @name invert
256
- * @memberof Matrix3d
257
234
  * @returns {Matrix3d} Reference to this object for method chaining
258
235
  */
259
236
  invert() {
260
- let a = this.val;
261
-
262
- let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
263
- let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
264
- let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
265
- let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
266
-
267
- let b00 = a00 * a11 - a01 * a10;
268
- let b01 = a00 * a12 - a02 * a10;
269
- let b02 = a00 * a13 - a03 * a10;
270
- let b03 = a01 * a12 - a02 * a11;
271
-
272
- let b04 = a01 * a13 - a03 * a11;
273
- let b05 = a02 * a13 - a03 * a12;
274
- let b06 = a20 * a31 - a21 * a30;
275
- let b07 = a20 * a32 - a22 * a30;
276
-
277
- let b08 = a20 * a33 - a23 * a30;
278
- let b09 = a21 * a32 - a22 * a31;
279
- let b10 = a21 * a33 - a23 * a31;
280
- let b11 = a22 * a33 - a23 * a32;
281
-
282
- // Calculate the determinant
283
- let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
284
-
285
- if (!det)
286
- {
287
- return null;
288
- }
289
-
290
- det = 1 / det;
291
-
292
- a[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
293
- a[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
294
- a[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
295
- a[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;
296
- a[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
297
- a[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
298
- a[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
299
- a[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;
300
- a[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
301
- a[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
302
- a[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
303
- a[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;
304
- a[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;
305
- a[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;
306
- a[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;
307
- a[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;
308
-
309
- return this;
237
+ let a = this.val;
238
+
239
+ let a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];
240
+ let a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];
241
+ let a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];
242
+ let a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];
243
+
244
+ let b00 = a00 * a11 - a01 * a10;
245
+ let b01 = a00 * a12 - a02 * a10;
246
+ let b02 = a00 * a13 - a03 * a10;
247
+ let b03 = a01 * a12 - a02 * a11;
248
+
249
+ let b04 = a01 * a13 - a03 * a11;
250
+ let b05 = a02 * a13 - a03 * a12;
251
+ let b06 = a20 * a31 - a21 * a30;
252
+ let b07 = a20 * a32 - a22 * a30;
253
+
254
+ let b08 = a20 * a33 - a23 * a30;
255
+ let b09 = a21 * a32 - a22 * a31;
256
+ let b10 = a21 * a33 - a23 * a31;
257
+ let b11 = a22 * a33 - a23 * a32;
258
+
259
+ // Calculate the determinant
260
+ let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
261
+
262
+ if (!det)
263
+ {
264
+ return null;
265
+ }
266
+
267
+ det = 1 / det;
268
+
269
+ a[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
270
+ a[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
271
+ a[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
272
+ a[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;
273
+ a[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
274
+ a[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
275
+ a[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
276
+ a[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;
277
+ a[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
278
+ a[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
279
+ a[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
280
+ a[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;
281
+ a[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;
282
+ a[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;
283
+ a[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;
284
+ a[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;
285
+
286
+ return this;
310
287
  }
311
288
 
312
289
  /**
313
290
  * apply the current transform to the given 2d or 3d vector
314
- * @name apply
315
- * @memberof Matrix3d
316
291
  * @param {Vector2d|Vector3d} v - the vector object to be transformed
317
292
  * @returns {Vector2d|Vector3d} result vector object.
318
293
  */
319
- apply(v) {
294
+ apply(v) {
320
295
  let a = this.val,
321
- x = v.x,
322
- y = v.y,
323
- z = (typeof v.z !== "undefined") ? v.z : 1;
296
+ x = v.x,
297
+ y = v.y,
298
+ z = (typeof v.z !== "undefined") ? v.z : 1;
324
299
 
325
300
  let w = (a[3] * x + a[7] * y + a[11] * z + a[15]) || 1.0;
326
301
 
@@ -332,32 +307,28 @@ import { EPSILON } from './math.js';
332
307
  }
333
308
 
334
309
  return v;
335
- }
310
+ }
336
311
 
337
- /**
312
+ /**
338
313
  * apply the inverted current transform to the given 2d or 3d vector
339
- * @name applyInverse
340
- * @memberof Matrix3d
341
314
  * @param {Vector2d|Vector3d} v - the vector object to be transformed
342
315
  * @returns {Vector2d|Vector3d} result vector object.
343
316
  */
344
- applyInverse(v) {
345
- // invert the current matrix
346
- let im = pool.pull("Matrix3d", this).invert();
317
+ applyInverse(v) {
318
+ // invert the current matrix
319
+ let im = pool.pull("Matrix3d", this).invert();
347
320
 
348
- // apply the inverted matrix
349
- im.apply(v);
321
+ // apply the inverted matrix
322
+ im.apply(v);
350
323
 
351
- pool.push(im);
324
+ pool.push(im);
352
325
 
353
- return v;
354
- }
326
+ return v;
327
+ }
355
328
 
356
329
  /**
357
330
  * generate an orthogonal projection matrix, with the result replacing the current matrix
358
331
  * <img src="images/glOrtho.gif"/><br>
359
- * @name ortho
360
- * @memberof Matrix3d
361
332
  * @param {number} left - farthest left on the x-axis
362
333
  * @param {number} right - farthest right on the x-axis
363
334
  * @param {number} bottom - farthest down on the y-axis
@@ -394,8 +365,6 @@ import { EPSILON } from './math.js';
394
365
 
395
366
  /**
396
367
  * scale the matrix
397
- * @name scale
398
- * @memberof Matrix3d
399
368
  * @param {number} x - a number representing the abscissa of the scaling vector.
400
369
  * @param {number} [y=x] - a number representing the ordinate of the scaling vector.
401
370
  * @param {number} [z=0] - a number representing the depth vector
@@ -424,8 +393,6 @@ import { EPSILON } from './math.js';
424
393
 
425
394
  /**
426
395
  * adds a 2D scaling transformation.
427
- * @name scaleV
428
- * @memberof Matrix3d
429
396
  * @param {Vector2d|Vector3d} v - scaling vector
430
397
  * @returns {Matrix3d} Reference to this object for method chaining
431
398
  */
@@ -435,8 +402,6 @@ import { EPSILON } from './math.js';
435
402
 
436
403
  /**
437
404
  * specifies a 2D scale operation using the [sx, 1] scaling vector
438
- * @name scaleX
439
- * @memberof Matrix3d
440
405
  * @param {number} x - x scaling vector
441
406
  * @returns {Matrix3d} Reference to this object for method chaining
442
407
  */
@@ -446,8 +411,6 @@ import { EPSILON } from './math.js';
446
411
 
447
412
  /**
448
413
  * specifies a 2D scale operation using the [1,sy] scaling vector
449
- * @name scaleY
450
- * @memberof Matrix3d
451
414
  * @param {number} y - y scaling vector
452
415
  * @returns {Matrix3d} Reference to this object for method chaining
453
416
  */
@@ -457,8 +420,6 @@ import { EPSILON } from './math.js';
457
420
 
458
421
  /**
459
422
  * rotate this matrix (counter-clockwise) by the specified angle (in radians).
460
- * @name rotate
461
- * @memberof Matrix3d
462
423
  * @param {number} angle - Rotation angle in radians.
463
424
  * @param {Vector3d} v - the axis to rotate around
464
425
  * @returns {Matrix3d} Reference to this object for method chaining
@@ -536,21 +497,11 @@ import { EPSILON } from './math.js';
536
497
 
537
498
  /**
538
499
  * translate the matrix position using the given vector
539
- * @name translate
540
- * @memberof Matrix3d
541
- * @method
542
- * @param {number} x - a number representing the abscissa of the vector.
543
- * @param {number} [y=x] - a number representing the ordinate of the vector.
500
+ * @param {number|Vector2d|Vector3d} x - a number representing the abscissa of the vector, or a vector object
501
+ * @param {number} [y] - a number representing the ordinate of the vector.
544
502
  * @param {number} [z=0] - a number representing the depth of the vector
545
503
  * @returns {Matrix3d} Reference to this object for method chaining
546
504
  */
547
- /**
548
- * translate the matrix by a vector on the horizontal and vertical axis
549
- * @name translateV
550
- * @memberof Matrix3d
551
- * @param {Vector2d|Vector3d} v - the vector to translate the matrix by
552
- * @returns {Matrix3d} Reference to this object for method chaining
553
- */
554
505
  translate() {
555
506
  let a = this.val;
556
507
  let _x, _y, _z;
@@ -577,8 +528,6 @@ import { EPSILON } from './math.js';
577
528
 
578
529
  /**
579
530
  * returns true if the matrix is an identity matrix.
580
- * @name isIdentity
581
- * @memberof Matrix3d
582
531
  * @returns {boolean}
583
532
  */
584
533
  isIdentity() {
@@ -606,8 +555,6 @@ import { EPSILON } from './math.js';
606
555
 
607
556
  /**
608
557
  * return true if the two matrices are identical
609
- * @name equals
610
- * @memberof Matrix3d
611
558
  * @param {Matrix3d} m - the other matrix
612
559
  * @returns {boolean} true if both are equals
613
560
  */
@@ -637,8 +584,6 @@ import { EPSILON } from './math.js';
637
584
 
638
585
  /**
639
586
  * Clone the Matrix
640
- * @name clone
641
- * @memberof Matrix3d
642
587
  * @returns {Matrix3d}
643
588
  */
644
589
  clone() {
@@ -647,8 +592,6 @@ import { EPSILON } from './math.js';
647
592
 
648
593
  /**
649
594
  * return an array representation of this Matrix
650
- * @name toArray
651
- * @memberof Matrix3d
652
595
  * @returns {Float32Array}
653
596
  */
654
597
  toArray() {
@@ -657,8 +600,6 @@ import { EPSILON } from './math.js';
657
600
 
658
601
  /**
659
602
  * convert the object to a string representation
660
- * @name toString
661
- * @memberof Matrix3d
662
603
  * @returns {string}
663
604
  */
664
605
  toString() {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.2.1
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -14,7 +14,7 @@ import { clamp } from './math.js';
14
14
  * A Vector2d object that provide notification by executing the given callback when the vector is changed.
15
15
  * @augments Vector2d
16
16
  */
17
- class ObservableVector2d extends Vector2d {
17
+ class ObservableVector2d extends Vector2d {
18
18
  /**
19
19
  * @param {number} x - x value of the vector
20
20
  * @param {number} y - y value of the vector
@@ -94,10 +94,10 @@ import { clamp } from './math.js';
94
94
  this._x = ret.x;
95
95
  this._y = ret.y;
96
96
  } else {
97
- this._x = x;
98
- this._y = y;
99
- }
100
- return this;
97
+ this._x = x;
98
+ this._y = y;
99
+ }
100
+ return this;
101
101
  }
102
102
 
103
103
  /**
@@ -409,7 +409,7 @@ import { clamp } from './math.js';
409
409
  * @param {number} step - the maximum step per iteration (Negative values will push the vector away from the target)
410
410
  * @returns {ObservableVector2d} Reference to this object for method chaining
411
411
  */
412
- moveTowards(target, step) {
412
+ moveTowards(target, step) {
413
413
  let angle = Math.atan2(target.y - this._y, target.x - this._x);
414
414
 
415
415
  let distance = this.distance(target);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v15.2.1
2
+ * melonJS Game Engine - v15.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -14,7 +14,7 @@ import pool from '../system/pooling.js';
14
14
  * A Vector3d object that provide notification by executing the given callback when the vector is changed.
15
15
  * @augments Vector3d
16
16
  */
17
- class ObservableVector3d extends Vector3d {
17
+ class ObservableVector3d extends Vector3d {
18
18
  /**
19
19
  * @param {number} x - x value of the vector
20
20
  * @param {number} y - y value of the vector
@@ -120,9 +120,9 @@ import pool from '../system/pooling.js';
120
120
  this._y = ret.y;
121
121
  this._z = ret.z;
122
122
  } else {
123
- this._x = x;
124
- this._y = y;
125
- this._z = z || 0;
123
+ this._x = x;
124
+ this._y = y;
125
+ this._z = z || 0;
126
126
  }
127
127
  return this;
128
128
  }