@vpmedia/phaser 1.11.0 → 1.13.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 (306) hide show
  1. package/README.md +1 -1
  2. package/package.json +8 -5
  3. package/src/index.js +19 -19
  4. package/src/phaser/core/animation.js +12 -9
  5. package/src/phaser/core/animation_manager.js +16 -6
  6. package/src/phaser/core/animation_parser.js +40 -17
  7. package/src/phaser/core/array_set.js +3 -5
  8. package/src/phaser/core/cache.js +12 -12
  9. package/src/phaser/core/const.js +1 -1
  10. package/src/phaser/core/device.js +2 -4
  11. package/src/phaser/core/device_util.js +50 -17
  12. package/src/phaser/core/dom.js +36 -27
  13. package/src/phaser/core/event_manager.js +47 -19
  14. package/src/phaser/core/factory.js +34 -12
  15. package/src/phaser/core/frame.js +3 -5
  16. package/src/phaser/core/frame_data.js +2 -4
  17. package/src/phaser/core/frame_util.js +11 -9
  18. package/src/phaser/core/game.js +22 -19
  19. package/src/phaser/core/input.js +24 -16
  20. package/src/phaser/core/input_handler.js +102 -28
  21. package/src/phaser/core/input_mouse.js +12 -16
  22. package/src/phaser/core/input_mspointer.js +11 -10
  23. package/src/phaser/core/input_pointer.js +61 -20
  24. package/src/phaser/core/input_touch.js +7 -9
  25. package/src/phaser/core/loader.js +171 -54
  26. package/src/phaser/core/loader_parser.js +29 -22
  27. package/src/phaser/core/raf.js +2 -4
  28. package/src/phaser/core/scale_manager.js +75 -31
  29. package/src/phaser/core/scene.js +2 -4
  30. package/src/phaser/core/scene_manager.js +9 -6
  31. package/src/phaser/core/signal.js +19 -11
  32. package/src/phaser/core/signal_binding.js +12 -7
  33. package/src/phaser/core/sound.js +23 -14
  34. package/src/phaser/core/sound_manager.js +62 -26
  35. package/src/phaser/core/sound_sprite.js +34 -34
  36. package/src/phaser/core/stage.js +4 -7
  37. package/src/phaser/core/time.js +3 -5
  38. package/src/phaser/core/timer.js +27 -10
  39. package/src/phaser/core/timer_event.js +1 -3
  40. package/src/phaser/core/tween.js +36 -12
  41. package/src/phaser/core/tween_data.js +17 -9
  42. package/src/phaser/core/tween_easing.js +87 -83
  43. package/src/phaser/core/tween_manager.js +34 -16
  44. package/src/phaser/core/world.js +3 -5
  45. package/src/phaser/display/bitmap_text.js +25 -14
  46. package/src/phaser/display/button.js +35 -8
  47. package/src/phaser/display/canvas/buffer.js +1 -3
  48. package/src/phaser/display/canvas/graphics.js +30 -15
  49. package/src/phaser/display/canvas/masker.js +7 -5
  50. package/src/phaser/display/canvas/pool.js +18 -11
  51. package/src/phaser/display/canvas/renderer.js +40 -20
  52. package/src/phaser/display/canvas/tinter.js +61 -19
  53. package/src/phaser/display/canvas/util.js +44 -35
  54. package/src/phaser/display/display_object.js +42 -24
  55. package/src/phaser/display/graphics.js +72 -39
  56. package/src/phaser/display/graphics_data.js +3 -4
  57. package/src/phaser/display/graphics_data_util.js +15 -5
  58. package/src/phaser/display/group.js +15 -9
  59. package/src/phaser/display/image.js +17 -9
  60. package/src/phaser/display/sprite_batch.js +8 -4
  61. package/src/phaser/display/sprite_util.js +67 -26
  62. package/src/phaser/display/text.js +92 -31
  63. package/src/phaser/display/webgl/abstract_filter.js +1 -3
  64. package/src/phaser/display/webgl/base_texture.js +8 -5
  65. package/src/phaser/display/webgl/blend_manager.js +1 -3
  66. package/src/phaser/display/webgl/earcut.js +170 -129
  67. package/src/phaser/display/webgl/earcut_node.js +1 -3
  68. package/src/phaser/display/webgl/fast_sprite_batch.js +48 -47
  69. package/src/phaser/display/webgl/filter_manager.js +1 -3
  70. package/src/phaser/display/webgl/filter_texture.js +17 -6
  71. package/src/phaser/display/webgl/graphics.js +72 -50
  72. package/src/phaser/display/webgl/graphics_data.js +2 -4
  73. package/src/phaser/display/webgl/mask_manager.js +17 -7
  74. package/src/phaser/display/webgl/render_texture.js +19 -10
  75. package/src/phaser/display/webgl/renderer.js +41 -9
  76. package/src/phaser/display/webgl/shader/complex.js +1 -3
  77. package/src/phaser/display/webgl/shader/fast.js +9 -4
  78. package/src/phaser/display/webgl/shader/normal.js +43 -15
  79. package/src/phaser/display/webgl/shader/primitive.js +1 -3
  80. package/src/phaser/display/webgl/shader/strip.js +1 -3
  81. package/src/phaser/display/webgl/shader_manager.js +1 -3
  82. package/src/phaser/display/webgl/sprite_batch.js +14 -15
  83. package/src/phaser/display/webgl/stencil_manager.js +19 -21
  84. package/src/phaser/display/webgl/texture.js +14 -10
  85. package/src/phaser/display/webgl/texture_util.js +11 -9
  86. package/src/phaser/display/webgl/util.js +21 -18
  87. package/src/phaser/geom/circle.js +27 -11
  88. package/src/phaser/geom/ellipse.js +26 -10
  89. package/src/phaser/geom/line.js +31 -13
  90. package/src/phaser/geom/matrix.js +14 -5
  91. package/src/phaser/geom/point.js +18 -13
  92. package/src/phaser/geom/polygon.js +13 -8
  93. package/src/phaser/geom/rectangle.js +57 -14
  94. package/src/phaser/geom/rounded_rectangle.js +12 -4
  95. package/src/phaser/geom/util/circle.js +40 -32
  96. package/src/phaser/geom/util/ellipse.js +10 -18
  97. package/src/phaser/geom/util/line.js +46 -37
  98. package/src/phaser/geom/util/matrix.js +11 -9
  99. package/src/phaser/geom/util/point.js +101 -79
  100. package/src/phaser/geom/util/polygon.js +7 -15
  101. package/src/phaser/geom/util/rectangle.js +95 -69
  102. package/src/phaser/geom/util/rounded_rectangle.js +7 -15
  103. package/src/phaser/util/math.js +123 -89
  104. package/types/global.d.ts +7 -0
  105. package/types/index.d.ts +22 -0
  106. package/types/index.d.ts.map +1 -0
  107. package/types/phaser/core/animation.d.ts +55 -0
  108. package/types/phaser/core/animation.d.ts.map +1 -0
  109. package/types/phaser/core/animation_manager.d.ts +35 -0
  110. package/types/phaser/core/animation_manager.d.ts.map +1 -0
  111. package/types/phaser/core/animation_parser.d.ts +22 -0
  112. package/types/phaser/core/animation_parser.d.ts.map +1 -0
  113. package/types/phaser/core/array_set.d.ts +23 -0
  114. package/types/phaser/core/array_set.d.ts.map +1 -0
  115. package/types/phaser/core/cache.d.ts +106 -0
  116. package/types/phaser/core/cache.d.ts.map +1 -0
  117. package/types/phaser/core/const.d.ts +81 -0
  118. package/types/phaser/core/const.d.ts.map +1 -0
  119. package/types/phaser/core/device.d.ts +36 -0
  120. package/types/phaser/core/device.d.ts.map +1 -0
  121. package/types/phaser/core/device_util.d.ts +58 -0
  122. package/types/phaser/core/device_util.d.ts.map +1 -0
  123. package/types/phaser/core/dom.d.ts +63 -0
  124. package/types/phaser/core/dom.d.ts.map +1 -0
  125. package/types/phaser/core/event_manager.d.ts +53 -0
  126. package/types/phaser/core/event_manager.d.ts.map +1 -0
  127. package/types/phaser/core/factory.d.ts +12 -0
  128. package/types/phaser/core/factory.d.ts.map +1 -0
  129. package/types/phaser/core/frame.d.ts +30 -0
  130. package/types/phaser/core/frame.d.ts.map +1 -0
  131. package/types/phaser/core/frame_data.d.ts +14 -0
  132. package/types/phaser/core/frame_data.d.ts.map +1 -0
  133. package/types/phaser/core/frame_util.d.ts +17 -0
  134. package/types/phaser/core/frame_util.d.ts.map +1 -0
  135. package/types/phaser/core/game.d.ts +57 -0
  136. package/types/phaser/core/game.d.ts.map +1 -0
  137. package/types/phaser/core/input.d.ts +92 -0
  138. package/types/phaser/core/input.d.ts.map +1 -0
  139. package/types/phaser/core/input_handler.d.ts +111 -0
  140. package/types/phaser/core/input_handler.d.ts.map +1 -0
  141. package/types/phaser/core/input_mouse.d.ts +39 -0
  142. package/types/phaser/core/input_mouse.d.ts.map +1 -0
  143. package/types/phaser/core/input_mspointer.d.ts +34 -0
  144. package/types/phaser/core/input_mspointer.d.ts.map +1 -0
  145. package/types/phaser/core/input_pointer.d.ts +68 -0
  146. package/types/phaser/core/input_pointer.d.ts.map +1 -0
  147. package/types/phaser/core/input_touch.d.ts +37 -0
  148. package/types/phaser/core/input_touch.d.ts.map +1 -0
  149. package/types/phaser/core/loader.d.ts +94 -0
  150. package/types/phaser/core/loader.d.ts.map +1 -0
  151. package/types/phaser/core/loader_parser.d.ts +39 -0
  152. package/types/phaser/core/loader_parser.d.ts.map +1 -0
  153. package/types/phaser/core/raf.d.ts +15 -0
  154. package/types/phaser/core/raf.d.ts.map +1 -0
  155. package/types/phaser/core/scale_manager.d.ts +137 -0
  156. package/types/phaser/core/scale_manager.d.ts.map +1 -0
  157. package/types/phaser/core/scene.d.ts +17 -0
  158. package/types/phaser/core/scene.d.ts.map +1 -0
  159. package/types/phaser/core/scene_manager.d.ts +39 -0
  160. package/types/phaser/core/scene_manager.d.ts.map +1 -0
  161. package/types/phaser/core/signal.d.ts +25 -0
  162. package/types/phaser/core/signal.d.ts.map +1 -0
  163. package/types/phaser/core/signal_binding.d.ts +26 -0
  164. package/types/phaser/core/signal_binding.d.ts.map +1 -0
  165. package/types/phaser/core/sound.d.ts +72 -0
  166. package/types/phaser/core/sound.d.ts.map +1 -0
  167. package/types/phaser/core/sound_manager.d.ts +50 -0
  168. package/types/phaser/core/sound_manager.d.ts.map +1 -0
  169. package/types/phaser/core/sound_sprite.d.ts +18 -0
  170. package/types/phaser/core/sound_sprite.d.ts.map +1 -0
  171. package/types/phaser/core/stage.d.ts +23 -0
  172. package/types/phaser/core/stage.d.ts.map +1 -0
  173. package/types/phaser/core/time.d.ts +49 -0
  174. package/types/phaser/core/time.d.ts.map +1 -0
  175. package/types/phaser/core/timer.d.ts +49 -0
  176. package/types/phaser/core/timer.d.ts.map +1 -0
  177. package/types/phaser/core/timer_event.d.ts +18 -0
  178. package/types/phaser/core/timer_event.d.ts.map +1 -0
  179. package/types/phaser/core/tween.d.ts +52 -0
  180. package/types/phaser/core/tween.d.ts.map +1 -0
  181. package/types/phaser/core/tween_data.d.ts +37 -0
  182. package/types/phaser/core/tween_data.d.ts.map +1 -0
  183. package/types/phaser/core/tween_easing.d.ts +192 -0
  184. package/types/phaser/core/tween_easing.d.ts.map +1 -0
  185. package/types/phaser/core/tween_manager.d.ts +94 -0
  186. package/types/phaser/core/tween_manager.d.ts.map +1 -0
  187. package/types/phaser/core/world.d.ts +6 -0
  188. package/types/phaser/core/world.d.ts.map +1 -0
  189. package/types/phaser/display/bitmap_text.d.ts +59 -0
  190. package/types/phaser/display/bitmap_text.d.ts.map +1 -0
  191. package/types/phaser/display/button.d.ts +47 -0
  192. package/types/phaser/display/button.d.ts.map +1 -0
  193. package/types/phaser/display/canvas/buffer.d.ts +11 -0
  194. package/types/phaser/display/canvas/buffer.d.ts.map +1 -0
  195. package/types/phaser/display/canvas/graphics.d.ts +21 -0
  196. package/types/phaser/display/canvas/graphics.d.ts.map +1 -0
  197. package/types/phaser/display/canvas/masker.d.ts +14 -0
  198. package/types/phaser/display/canvas/masker.d.ts.map +1 -0
  199. package/types/phaser/display/canvas/pool.d.ts +52 -0
  200. package/types/phaser/display/canvas/pool.d.ts.map +1 -0
  201. package/types/phaser/display/canvas/renderer.d.ts +28 -0
  202. package/types/phaser/display/canvas/renderer.d.ts.map +1 -0
  203. package/types/phaser/display/canvas/tinter.d.ts +41 -0
  204. package/types/phaser/display/canvas/tinter.d.ts.map +1 -0
  205. package/types/phaser/display/canvas/util.d.ts +79 -0
  206. package/types/phaser/display/canvas/util.d.ts.map +1 -0
  207. package/types/phaser/display/display_object.d.ts +83 -0
  208. package/types/phaser/display/display_object.d.ts.map +1 -0
  209. package/types/phaser/display/graphics.d.ts +60 -0
  210. package/types/phaser/display/graphics.d.ts.map +1 -0
  211. package/types/phaser/display/graphics_data.d.ts +15 -0
  212. package/types/phaser/display/graphics_data.d.ts.map +1 -0
  213. package/types/phaser/display/graphics_data_util.d.ts +8 -0
  214. package/types/phaser/display/graphics_data_util.d.ts.map +1 -0
  215. package/types/phaser/display/group.d.ts +49 -0
  216. package/types/phaser/display/group.d.ts.map +1 -0
  217. package/types/phaser/display/image.d.ts +52 -0
  218. package/types/phaser/display/image.d.ts.map +1 -0
  219. package/types/phaser/display/sprite_batch.d.ts +11 -0
  220. package/types/phaser/display/sprite_batch.d.ts.map +1 -0
  221. package/types/phaser/display/sprite_util.d.ts +40 -0
  222. package/types/phaser/display/sprite_util.d.ts.map +1 -0
  223. package/types/phaser/display/text.d.ts +125 -0
  224. package/types/phaser/display/text.d.ts.map +1 -0
  225. package/types/phaser/display/webgl/abstract_filter.d.ts +17 -0
  226. package/types/phaser/display/webgl/abstract_filter.d.ts.map +1 -0
  227. package/types/phaser/display/webgl/base_texture.d.ts +20 -0
  228. package/types/phaser/display/webgl/base_texture.d.ts.map +1 -0
  229. package/types/phaser/display/webgl/blend_manager.d.ts +14 -0
  230. package/types/phaser/display/webgl/blend_manager.d.ts.map +1 -0
  231. package/types/phaser/display/webgl/earcut.d.ts +215 -0
  232. package/types/phaser/display/webgl/earcut.d.ts.map +1 -0
  233. package/types/phaser/display/webgl/earcut_node.d.ts +19 -0
  234. package/types/phaser/display/webgl/earcut_node.d.ts.map +1 -0
  235. package/types/phaser/display/webgl/fast_sprite_batch.d.ts +34 -0
  236. package/types/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -0
  237. package/types/phaser/display/webgl/filter_manager.d.ts +21 -0
  238. package/types/phaser/display/webgl/filter_manager.d.ts.map +1 -0
  239. package/types/phaser/display/webgl/filter_texture.d.ts +13 -0
  240. package/types/phaser/display/webgl/filter_texture.d.ts.map +1 -0
  241. package/types/phaser/display/webgl/graphics.d.ts +80 -0
  242. package/types/phaser/display/webgl/graphics.d.ts.map +1 -0
  243. package/types/phaser/display/webgl/graphics_data.d.ts +23 -0
  244. package/types/phaser/display/webgl/graphics_data.d.ts.map +1 -0
  245. package/types/phaser/display/webgl/mask_manager.d.ts +15 -0
  246. package/types/phaser/display/webgl/mask_manager.d.ts.map +1 -0
  247. package/types/phaser/display/webgl/render_texture.d.ts +25 -0
  248. package/types/phaser/display/webgl/render_texture.d.ts.map +1 -0
  249. package/types/phaser/display/webgl/renderer.d.ts +44 -0
  250. package/types/phaser/display/webgl/renderer.d.ts.map +1 -0
  251. package/types/phaser/display/webgl/shader/complex.d.ts +22 -0
  252. package/types/phaser/display/webgl/shader/complex.d.ts.map +1 -0
  253. package/types/phaser/display/webgl/shader/fast.d.ts +25 -0
  254. package/types/phaser/display/webgl/shader/fast.d.ts.map +1 -0
  255. package/types/phaser/display/webgl/shader/normal.d.ts +25 -0
  256. package/types/phaser/display/webgl/shader/normal.d.ts.map +1 -0
  257. package/types/phaser/display/webgl/shader/primitive.d.ts +21 -0
  258. package/types/phaser/display/webgl/shader/primitive.d.ts.map +1 -0
  259. package/types/phaser/display/webgl/shader/strip.d.ts +22 -0
  260. package/types/phaser/display/webgl/shader/strip.d.ts.map +1 -0
  261. package/types/phaser/display/webgl/shader_manager.d.ts +24 -0
  262. package/types/phaser/display/webgl/shader_manager.d.ts.map +1 -0
  263. package/types/phaser/display/webgl/sprite_batch.d.ts +36 -0
  264. package/types/phaser/display/webgl/sprite_batch.d.ts.map +1 -0
  265. package/types/phaser/display/webgl/stencil_manager.d.ts +12 -0
  266. package/types/phaser/display/webgl/stencil_manager.d.ts.map +1 -0
  267. package/types/phaser/display/webgl/texture.d.ts +30 -0
  268. package/types/phaser/display/webgl/texture.d.ts.map +1 -0
  269. package/types/phaser/display/webgl/texture_util.d.ts +17 -0
  270. package/types/phaser/display/webgl/texture_util.d.ts.map +1 -0
  271. package/types/phaser/display/webgl/util.d.ts +45 -0
  272. package/types/phaser/display/webgl/util.d.ts.map +1 -0
  273. package/types/phaser/geom/circle.d.ts +46 -0
  274. package/types/phaser/geom/circle.d.ts.map +1 -0
  275. package/types/phaser/geom/ellipse.d.ts +26 -0
  276. package/types/phaser/geom/ellipse.d.ts.map +1 -0
  277. package/types/phaser/geom/line.d.ts +45 -0
  278. package/types/phaser/geom/line.d.ts.map +1 -0
  279. package/types/phaser/geom/matrix.d.ts +35 -0
  280. package/types/phaser/geom/matrix.d.ts.map +1 -0
  281. package/types/phaser/geom/point.d.ts +43 -0
  282. package/types/phaser/geom/point.d.ts.map +1 -0
  283. package/types/phaser/geom/polygon.d.ts +17 -0
  284. package/types/phaser/geom/polygon.d.ts.map +1 -0
  285. package/types/phaser/geom/rectangle.d.ts +71 -0
  286. package/types/phaser/geom/rectangle.d.ts.map +1 -0
  287. package/types/phaser/geom/rounded_rectangle.d.ts +21 -0
  288. package/types/phaser/geom/rounded_rectangle.d.ts.map +1 -0
  289. package/types/phaser/geom/util/circle.d.ts +64 -0
  290. package/types/phaser/geom/util/circle.d.ts.map +1 -0
  291. package/types/phaser/geom/util/ellipse.d.ts +16 -0
  292. package/types/phaser/geom/util/ellipse.d.ts.map +1 -0
  293. package/types/phaser/geom/util/line.d.ts +49 -0
  294. package/types/phaser/geom/util/line.d.ts.map +1 -0
  295. package/types/phaser/geom/util/matrix.d.ts +22 -0
  296. package/types/phaser/geom/util/matrix.d.ts.map +1 -0
  297. package/types/phaser/geom/util/point.d.ts +179 -0
  298. package/types/phaser/geom/util/point.d.ts.map +1 -0
  299. package/types/phaser/geom/util/polygon.d.ts +10 -0
  300. package/types/phaser/geom/util/polygon.d.ts.map +1 -0
  301. package/types/phaser/geom/util/rectangle.d.ts +141 -0
  302. package/types/phaser/geom/util/rectangle.d.ts.map +1 -0
  303. package/types/phaser/geom/util/rounded_rectangle.d.ts +10 -0
  304. package/types/phaser/geom/util/rounded_rectangle.d.ts.map +1 -0
  305. package/types/phaser/util/math.d.ts +182 -0
  306. package/types/phaser/util/math.d.ts.map +1 -0
@@ -1,15 +1,15 @@
1
1
  /**
2
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
2
3
  * @author Andras Csizmadia <andras@vpmedia.hu>
3
4
  * @author Richard Davey <rich@photonstorm.com>
4
5
  * @author Mat Groves http://matgroves.com/ @Doormat23
5
- * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
6
6
  */
7
7
  import Node from './earcut_node';
8
8
 
9
9
  /**
10
10
  *
11
- * @param {object} list TBD
12
- * @returns {object} TBD
11
+ * @param {object} list - TBD.
12
+ * @returns {object} TBD.
13
13
  */
14
14
  export function sortLinked(list) {
15
15
  let i;
@@ -74,9 +74,9 @@ export function sortLinked(list) {
74
74
 
75
75
  /**
76
76
  *
77
- * @param {object} a TBD
78
- * @param {object} b TBD
79
- * @returns {number} TBD
77
+ * @param {object} a - TBD.
78
+ * @param {object} b - TBD.
79
+ * @returns {number} TBD.
80
80
  */
81
81
  export function compareX(a, b) {
82
82
  return a.x - b.x;
@@ -84,23 +84,23 @@ export function compareX(a, b) {
84
84
 
85
85
  /**
86
86
  *
87
- * @param {number} x TBD
88
- * @param {number} y TBD
89
- * @param {number} minX TBD
90
- * @param {number} minY TBD
91
- * @param {number} size TBD
92
- * @returns {number} TBD
87
+ * @param {number} x - TBD.
88
+ * @param {number} y - TBD.
89
+ * @param {number} minX - TBD.
90
+ * @param {number} minY - TBD.
91
+ * @param {number} size - TBD.
92
+ * @returns {number} TBD.
93
93
  */
94
94
  export function zOrder(x, y, minX, minY, size) {
95
95
  // coords are transformed into non-negative 15-bit integer range
96
- x = 32767 * (x - minX) / size;
97
- y = 32767 * (y - minY) / size;
98
- x = (x | (x << 8)) & 0x00FF00FF;
99
- x = (x | (x << 4)) & 0x0F0F0F0F;
96
+ x = (32767 * (x - minX)) / size;
97
+ y = (32767 * (y - minY)) / size;
98
+ x = (x | (x << 8)) & 0x00ff00ff;
99
+ x = (x | (x << 4)) & 0x0f0f0f0f;
100
100
  x = (x | (x << 2)) & 0x33333333;
101
101
  x = (x | (x << 1)) & 0x55555555;
102
- y = (y | (y << 8)) & 0x00FF00FF;
103
- y = (y | (y << 4)) & 0x0F0F0F0F;
102
+ y = (y | (y << 8)) & 0x00ff00ff;
103
+ y = (y | (y << 4)) & 0x0f0f0f0f;
104
104
  y = (y | (y << 2)) & 0x33333333;
105
105
  y = (y | (y << 1)) & 0x55555555;
106
106
  return x | (y << 1);
@@ -108,10 +108,10 @@ export function zOrder(x, y, minX, minY, size) {
108
108
 
109
109
  /**
110
110
  *
111
- * @param {object} start TBD
112
- * @param {number} minX TBD
113
- * @param {number} minY TBD
114
- * @param {number} size TBD
111
+ * @param {object} start - TBD.
112
+ * @param {number} minX - TBD.
113
+ * @param {number} minY - TBD.
114
+ * @param {number} size - TBD.
115
115
  */
116
116
  export function indexCurve(start, minX, minY, size) {
117
117
  let p = start;
@@ -128,8 +128,8 @@ export function indexCurve(start, minX, minY, size) {
128
128
 
129
129
  /**
130
130
  *
131
- * @param {object} start TBD
132
- * @returns {object} TBD
131
+ * @param {object} start - TBD.
132
+ * @returns {object} TBD.
133
133
  */
134
134
  export function getLeftmost(start) {
135
135
  let p = start;
@@ -143,26 +143,30 @@ export function getLeftmost(start) {
143
143
 
144
144
  /**
145
145
  *
146
- * @param {number} ax TBD
147
- * @param {number} ay TBD
148
- * @param {number} bx TBD
149
- * @param {number} by TBD
150
- * @param {number} cx TBD
151
- * @param {number} cy TBD
152
- * @param {number} px TBD
153
- * @param {number} py TBD
154
- * @returns {object} TBD
146
+ * @param {number} ax - TBD.
147
+ * @param {number} ay - TBD.
148
+ * @param {number} bx - TBD.
149
+ * @param {number} by - TBD.
150
+ * @param {number} cx - TBD.
151
+ * @param {number} cy - TBD.
152
+ * @param {number} px - TBD.
153
+ * @param {number} py - TBD.
154
+ * @returns {object} TBD.
155
155
  */
156
156
  export function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
157
- return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
157
+ return (
158
+ (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&
159
+ (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&
160
+ (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0
161
+ );
158
162
  }
159
163
 
160
164
  /**
161
165
  *
162
- * @param {object} p TBD
163
- * @param {object} q TBD
164
- * @param {object} r TBD
165
- * @returns {number} TBD
166
+ * @param {object} p - TBD.
167
+ * @param {object} q - TBD.
168
+ * @param {object} r - TBD.
169
+ * @returns {number} TBD.
166
170
  */
167
171
  export function area(p, q, r) {
168
172
  return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
@@ -170,9 +174,9 @@ export function area(p, q, r) {
170
174
 
171
175
  /**
172
176
  *
173
- * @param {object} p1 TBD
174
- * @param {object} p2 TBD
175
- * @returns {boolean} TBD
177
+ * @param {object} p1 - TBD.
178
+ * @param {object} p2 - TBD.
179
+ * @returns {boolean} TBD.
176
180
  */
177
181
  export function equals(p1, p2) {
178
182
  return p1.x === p2.x && p1.y === p2.y;
@@ -180,26 +184,35 @@ export function equals(p1, p2) {
180
184
 
181
185
  /**
182
186
  *
183
- * @param {object} p1 TBD
184
- * @param {object} q1 TBD
185
- * @param {object} p2 TBD
186
- * @param {object} q2 TBD
187
- * @returns {boolean} TBD
187
+ * @param {object} p1 - TBD.
188
+ * @param {object} q1 - TBD.
189
+ * @param {object} p2 - TBD.
190
+ * @param {object} q2 - TBD.
191
+ * @returns {boolean} TBD.
188
192
  */
189
193
  export function intersects(p1, q1, p2, q2) {
190
- return area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 && area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0;
194
+ return (
195
+ area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 && area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0
196
+ );
191
197
  }
192
198
 
193
199
  /**
194
200
  *
195
- * @param {object} a TBD
196
- * @param {object} b TBD
197
- * @returns {boolean} TBD
201
+ * @param {object} a - TBD.
202
+ * @param {object} b - TBD.
203
+ * @returns {boolean} TBD.
198
204
  */
199
205
  export function intersectsPolygon(a, b) {
200
206
  let p = a;
201
207
  do {
202
- if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;
208
+ if (
209
+ p.i !== a.i &&
210
+ p.next.i !== a.i &&
211
+ p.i !== b.i &&
212
+ p.next.i !== b.i &&
213
+ intersects(p, p.next, a, b)
214
+ )
215
+ return true;
203
216
  p = p.next;
204
217
  } while (p !== a);
205
218
  return false;
@@ -207,19 +220,21 @@ export function intersectsPolygon(a, b) {
207
220
 
208
221
  /**
209
222
  *
210
- * @param {object} a TBD
211
- * @param {object} b TBD
212
- * @returns {object} TBD
223
+ * @param {object} a - TBD.
224
+ * @param {object} b - TBD.
225
+ * @returns {object} TBD.
213
226
  */
214
227
  export function locallyInside(a, b) {
215
- return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
228
+ return area(a.prev, a, a.next) < 0
229
+ ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0
230
+ : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
216
231
  }
217
232
 
218
233
  /**
219
234
  *
220
- * @param {object} a TBD
221
- * @param {object} b TBD
222
- * @returns {boolean} TBD
235
+ * @param {object} a - TBD.
236
+ * @param {object} b - TBD.
237
+ * @returns {boolean} TBD.
223
238
  */
224
239
  export function middleInside(a, b) {
225
240
  let p = a;
@@ -227,7 +242,10 @@ export function middleInside(a, b) {
227
242
  const px = (a.x + b.x) / 2;
228
243
  const py = (a.y + b.y) / 2;
229
244
  do {
230
- if (((p.y > py) !== (p.next.y > py)) && (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)) {
245
+ if (
246
+ p.y > py !== p.next.y > py &&
247
+ px < ((p.next.x - p.x) * (py - p.y)) / (p.next.y - p.y) + p.x
248
+ ) {
231
249
  inside = !inside;
232
250
  }
233
251
  p = p.next;
@@ -237,19 +255,27 @@ export function middleInside(a, b) {
237
255
 
238
256
  /**
239
257
  *
240
- * @param {object} a TBD
241
- * @param {object} b TBD
242
- * @returns {boolean} TBD
258
+ * @param {object} a - TBD.
259
+ * @param {object} b - TBD.
260
+ * @returns {boolean} TBD.
243
261
  */
244
262
  export function isValidDiagonal(a, b) {
245
- return equals(a, b) || a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b);
263
+ return (
264
+ equals(a, b) ||
265
+ (a.next.i !== b.i &&
266
+ a.prev.i !== b.i &&
267
+ !intersectsPolygon(a, b) &&
268
+ locallyInside(a, b) &&
269
+ locallyInside(b, a) &&
270
+ middleInside(a, b))
271
+ );
246
272
  }
247
273
 
248
274
  /**
249
275
  *
250
- * @param {object} a TBD
251
- * @param {object} b TBD
252
- * @returns {object} TBD
276
+ * @param {object} a - TBD.
277
+ * @param {object} b - TBD.
278
+ * @returns {object} TBD.
253
279
  */
254
280
  export function splitPolygon(a, b) {
255
281
  const a2 = new Node(a.i, a.x, a.y);
@@ -269,11 +295,11 @@ export function splitPolygon(a, b) {
269
295
 
270
296
  /**
271
297
  *
272
- * @param {number} i TBD
273
- * @param {number} x TBD
274
- * @param {number} y TBD
275
- * @param {object} last TBD
276
- * @returns {object} TBD
298
+ * @param {number} i - TBD.
299
+ * @param {number} x - TBD.
300
+ * @param {number} y - TBD.
301
+ * @param {object} last - TBD.
302
+ * @returns {object} TBD.
277
303
  */
278
304
  export function insertNode(i, x, y, last) {
279
305
  const p = new Node(i, x, y);
@@ -291,7 +317,7 @@ export function insertNode(i, x, y, last) {
291
317
 
292
318
  /**
293
319
  *
294
- * @param {object} p TBD
320
+ * @param {object} p - TBD.
295
321
  */
296
322
  export function removeNode(p) {
297
323
  p.next.prev = p.prev;
@@ -306,8 +332,8 @@ export function removeNode(p) {
306
332
 
307
333
  /**
308
334
  *
309
- * @param {object} ear TBD
310
- * @returns {boolean} TBD
335
+ * @param {object} ear - TBD.
336
+ * @returns {boolean} TBD.
311
337
  */
312
338
  export function isEar(ear) {
313
339
  const a = ear.prev;
@@ -317,7 +343,8 @@ export function isEar(ear) {
317
343
  // now make sure we don't have other points inside the potential ear
318
344
  let p = ear.next.next;
319
345
  while (p !== ear.prev) {
320
- if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;
346
+ if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
347
+ return false;
321
348
  p = p.next;
322
349
  }
323
350
  return true;
@@ -325,11 +352,11 @@ export function isEar(ear) {
325
352
 
326
353
  /**
327
354
  *
328
- * @param {object} ear TBD
329
- * @param {number} minX TBD
330
- * @param {number} minY TBD
331
- * @param {number} size TBD
332
- * @returns {boolean} TBD
355
+ * @param {object} ear - TBD.
356
+ * @param {number} minX - TBD.
357
+ * @param {number} minY - TBD.
358
+ * @param {number} size - TBD.
359
+ * @returns {boolean} TBD.
333
360
  */
334
361
  export function isEarHashed(ear, minX, minY, size) {
335
362
  const a = ear.prev;
@@ -337,17 +364,22 @@ export function isEarHashed(ear, minX, minY, size) {
337
364
  const c = ear.next;
338
365
  if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
339
366
  // triangle bbox; min & max are calculated like this for speed
340
- const minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x);
341
- const minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y);
342
- const maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x);
343
- const maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);
367
+ const minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : b.x < c.x ? b.x : c.x;
368
+ const minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : b.y < c.y ? b.y : c.y;
369
+ const maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : b.x > c.x ? b.x : c.x;
370
+ const maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : b.y > c.y ? b.y : c.y;
344
371
  // z-order range for the current triangle bbox;
345
372
  const minZ = zOrder(minTX, minTY, minX, minY, size);
346
373
  const maxZ = zOrder(maxTX, maxTY, minX, minY, size);
347
374
  // first look for points inside the triangle in increasing z-order
348
375
  let p = ear.nextZ;
349
376
  while (p && p.z <= maxZ) {
350
- if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {
377
+ if (
378
+ p !== ear.prev &&
379
+ p !== ear.next &&
380
+ pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
381
+ area(p.prev, p, p.next) >= 0
382
+ ) {
351
383
  return false;
352
384
  }
353
385
  p = p.nextZ;
@@ -355,7 +387,12 @@ export function isEarHashed(ear, minX, minY, size) {
355
387
  // then look for points in decreasing z-order
356
388
  p = ear.prevZ;
357
389
  while (p && p.z >= minZ) {
358
- if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {
390
+ if (
391
+ p !== ear.prev &&
392
+ p !== ear.next &&
393
+ pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&
394
+ area(p.prev, p, p.next) >= 0
395
+ ) {
359
396
  return false;
360
397
  }
361
398
  p = p.prevZ;
@@ -365,12 +402,12 @@ export function isEarHashed(ear, minX, minY, size) {
365
402
 
366
403
  /**
367
404
  *
368
- * @param {object} data TBD
369
- * @param {number} start TBD
370
- * @param {number} end TBD
371
- * @param {number} dim TBD
372
- * @param {boolean} clockwise TBD
373
- * @returns {object} TBD
405
+ * @param {object} data - TBD.
406
+ * @param {number} start - TBD.
407
+ * @param {number} end - TBD.
408
+ * @param {number} dim - TBD.
409
+ * @param {boolean} clockwise - TBD.
410
+ * @returns {object} TBD.
374
411
  */
375
412
  export function linkedList(data, start, end, dim, clockwise) {
376
413
  let sum = 0;
@@ -383,7 +420,7 @@ export function linkedList(data, start, end, dim, clockwise) {
383
420
  j = i;
384
421
  }
385
422
  // link points into circular doubly-linked list in the specified winding order
386
- if (clockwise === (sum > 0)) {
423
+ if (clockwise === sum > 0) {
387
424
  for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);
388
425
  } else {
389
426
  for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);
@@ -393,9 +430,9 @@ export function linkedList(data, start, end, dim, clockwise) {
393
430
 
394
431
  /**
395
432
  *
396
- * @param {object} start TBD
397
- * @param {object} end TBD
398
- * @returns {object} TBD
433
+ * @param {object} start - TBD.
434
+ * @param {object} end - TBD.
435
+ * @returns {object} TBD.
399
436
  */
400
437
  export function filterPoints(start, end) {
401
438
  if (!start) return start;
@@ -419,9 +456,9 @@ export function filterPoints(start, end) {
419
456
 
420
457
  /**
421
458
  *
422
- * @param {object} hole TBD
423
- * @param {object} outerNode TBD
424
- * @returns {object} TBD
459
+ * @param {object} hole - TBD.
460
+ * @param {object} outerNode - TBD.
461
+ * @returns {object} TBD.
425
462
  */
426
463
  export function findHoleBridge(hole, outerNode) {
427
464
  let p = outerNode;
@@ -433,7 +470,7 @@ export function findHoleBridge(hole, outerNode) {
433
470
  // segment's endpoint with lesser x will be potential connection point
434
471
  do {
435
472
  if (hy <= p.y && hy >= p.next.y) {
436
- const x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);
473
+ const x = p.x + ((hy - p.y) * (p.next.x - p.x)) / (p.next.y - p.y);
437
474
  if (x <= hx && x > qx) {
438
475
  qx = x;
439
476
  m = p.x < p.next.x ? p : p.next;
@@ -451,7 +488,11 @@ export function findHoleBridge(hole, outerNode) {
451
488
  let tan;
452
489
  p = m.next;
453
490
  while (p !== stop) {
454
- if (hx >= p.x && p.x >= m.x && pointInTriangle(hy < m.y ? hx : qx, hy, m.x, m.y, hy < m.y ? qx : hx, hy, p.x, p.y)) {
491
+ if (
492
+ hx >= p.x &&
493
+ p.x >= m.x &&
494
+ pointInTriangle(hy < m.y ? hx : qx, hy, m.x, m.y, hy < m.y ? qx : hx, hy, p.x, p.y)
495
+ ) {
455
496
  tan = Math.abs(hy - p.y) / (hx - p.x); // tangential
456
497
  if ((tan < tanMin || (tan === tanMin && p.x > m.x)) && locallyInside(p, hole)) {
457
498
  m = p;
@@ -465,8 +506,8 @@ export function findHoleBridge(hole, outerNode) {
465
506
 
466
507
  /**
467
508
  *
468
- * @param {object} hole TBD
469
- * @param {object} outerNode TBD
509
+ * @param {object} hole - TBD.
510
+ * @param {object} outerNode - TBD.
470
511
  */
471
512
  export function eliminateHole(hole, outerNode) {
472
513
  outerNode = findHoleBridge(hole, outerNode);
@@ -478,11 +519,11 @@ export function eliminateHole(hole, outerNode) {
478
519
 
479
520
  /**
480
521
  *
481
- * @param {object} data TBD
482
- * @param {object} holeIndices TBD
483
- * @param {object} outerNode TBD
484
- * @param {object} dim TBD
485
- * @returns {object} TBD
522
+ * @param {object} data - TBD.
523
+ * @param {object} holeIndices - TBD.
524
+ * @param {object} outerNode - TBD.
525
+ * @param {object} dim - TBD.
526
+ * @returns {object} TBD.
486
527
  */
487
528
  export function eliminateHoles(data, holeIndices, outerNode, dim) {
488
529
  const queue = [];
@@ -509,10 +550,10 @@ export function eliminateHoles(data, holeIndices, outerNode, dim) {
509
550
 
510
551
  /**
511
552
  *
512
- * @param {object} start TBD
513
- * @param {object} triangles TBD
514
- * @param {number} dim TBD
515
- * @returns {object} TBD
553
+ * @param {object} start - TBD.
554
+ * @param {object} triangles - TBD.
555
+ * @param {number} dim - TBD.
556
+ * @returns {object} TBD.
516
557
  */
517
558
  export function cureLocalIntersections(start, triangles, dim) {
518
559
  let p = start;
@@ -537,12 +578,12 @@ export function cureLocalIntersections(start, triangles, dim) {
537
578
 
538
579
  /**
539
580
  *
540
- * @param {object} start TBD
541
- * @param {object} triangles TBD
542
- * @param {number} dim TBD
543
- * @param {number} minX TBD
544
- * @param {number} minY TBD
545
- * @param {number} size TBD
581
+ * @param {object} start - TBD.
582
+ * @param {object} triangles - TBD.
583
+ * @param {number} dim - TBD.
584
+ * @param {number} minX - TBD.
585
+ * @param {number} minY - TBD.
586
+ * @param {number} size - TBD.
546
587
  */
547
588
  export function splitEarcut(start, triangles, dim, minX, minY, size) {
548
589
  // look for a valid diagonal that divides the polygon into two
@@ -569,13 +610,13 @@ export function splitEarcut(start, triangles, dim, minX, minY, size) {
569
610
 
570
611
  /**
571
612
  *
572
- * @param {object} ear TBD
573
- * @param {object} triangles TBD
574
- * @param {number} dim TBD
575
- * @param {number} minX TBD
576
- * @param {number} minY TBD
577
- * @param {number} size TBD
578
- * @param {object} pass TBD
613
+ * @param {object} ear - TBD.
614
+ * @param {object} triangles - TBD.
615
+ * @param {number} dim - TBD.
616
+ * @param {number} minX - TBD.
617
+ * @param {number} minY - TBD.
618
+ * @param {number} size - TBD.
619
+ * @param {object} pass - TBD.
579
620
  */
580
621
  export function earcutLinked(ear, triangles, dim, minX, minY, size, pass) {
581
622
  if (!ear) return;
@@ -620,10 +661,10 @@ export function earcutLinked(ear, triangles, dim, minX, minY, size, pass) {
620
661
 
621
662
  /**
622
663
  *
623
- * @param {object} data TBD
624
- * @param {object} holeIndices TBD
625
- * @param {number} dim TBD
626
- * @returns {object} TBD
664
+ * @param {object} data - TBD.
665
+ * @param {object} holeIndices - TBD.
666
+ * @param {number} dim - TBD.
667
+ * @returns {object} TBD.
627
668
  */
628
669
  export function triangulate(data, holeIndices, dim) {
629
670
  dim = dim || 2;
@@ -1,12 +1,11 @@
1
1
  /**
2
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
2
3
  * @author Andras Csizmadia <andras@vpmedia.hu>
3
4
  * @author Richard Davey <rich@photonstorm.com>
4
5
  * @author Mat Groves http://matgroves.com/ @Doormat23
5
- * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
6
6
  */
7
7
 
8
8
  export default class {
9
-
10
9
  constructor(i, x, y) {
11
10
  // vertice index in coordinates array
12
11
  this.i = i;
@@ -24,5 +23,4 @@ export default class {
24
23
  // indicates whether this is a steiner point
25
24
  this.steiner = false;
26
25
  }
27
-
28
26
  }