@vpmedia/phaser 1.14.0 → 1.16.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 +3 -3
  2. package/package.json +6 -5
  3. package/src/index.js +15 -18
  4. package/src/phaser/core/animation.js +102 -6
  5. package/src/phaser/core/animation_manager.js +88 -10
  6. package/src/phaser/core/animation_parser.js +5 -20
  7. package/src/phaser/core/array_set.js +51 -5
  8. package/src/phaser/core/cache.js +291 -6
  9. package/src/phaser/core/const.js +107 -4
  10. package/src/phaser/core/device.js +5 -6
  11. package/src/phaser/core/device_util.js +3 -25
  12. package/src/phaser/core/dom.js +127 -29
  13. package/src/phaser/core/event_manager.js +128 -6
  14. package/src/phaser/core/factory.js +69 -34
  15. package/src/phaser/core/frame.js +43 -6
  16. package/src/phaser/core/frame_data.js +55 -5
  17. package/src/phaser/core/frame_util.js +7 -14
  18. package/src/phaser/core/game.js +35 -7
  19. package/src/phaser/core/input.js +116 -17
  20. package/src/phaser/core/input_handler.js +242 -42
  21. package/src/phaser/core/input_mouse.js +68 -7
  22. package/src/phaser/core/input_mspointer.js +40 -9
  23. package/src/phaser/core/input_pointer.js +79 -17
  24. package/src/phaser/core/input_touch.js +42 -5
  25. package/src/phaser/core/loader.js +274 -101
  26. package/src/phaser/core/loader_parser.js +2 -14
  27. package/src/phaser/core/raf.js +16 -5
  28. package/src/phaser/core/scale_manager.js +204 -39
  29. package/src/phaser/core/scene.js +24 -5
  30. package/src/phaser/core/scene_manager.js +81 -11
  31. package/src/phaser/core/signal.js +88 -11
  32. package/src/phaser/core/signal_binding.js +35 -15
  33. package/src/phaser/core/sound.js +99 -10
  34. package/src/phaser/core/sound_manager.js +89 -13
  35. package/src/phaser/core/sound_sprite.js +20 -5
  36. package/src/phaser/core/stage.js +43 -7
  37. package/src/phaser/core/time.js +67 -5
  38. package/src/phaser/core/timer.js +107 -30
  39. package/src/phaser/core/timer_event.js +11 -6
  40. package/src/phaser/core/tween.js +124 -30
  41. package/src/phaser/core/tween_data.js +42 -18
  42. package/src/phaser/core/tween_easing.js +1 -39
  43. package/src/phaser/core/tween_manager.js +47 -5
  44. package/src/phaser/core/world.js +9 -6
  45. package/src/phaser/display/bitmap_text.js +92 -11
  46. package/src/phaser/display/button.js +64 -13
  47. package/src/phaser/display/canvas/buffer.js +16 -6
  48. package/src/phaser/display/canvas/graphics.js +1 -16
  49. package/src/phaser/display/canvas/masker.js +0 -8
  50. package/src/phaser/display/canvas/pool.js +0 -14
  51. package/src/phaser/display/canvas/renderer.js +28 -8
  52. package/src/phaser/display/canvas/tinter.js +4 -48
  53. package/src/phaser/display/canvas/util.js +0 -15
  54. package/src/phaser/display/display_object.js +192 -20
  55. package/src/phaser/display/graphics.js +162 -27
  56. package/src/phaser/display/graphics_data.js +14 -6
  57. package/src/phaser/display/graphics_data_util.js +2 -9
  58. package/src/phaser/display/group.js +75 -10
  59. package/src/phaser/display/image.js +86 -10
  60. package/src/phaser/display/sprite_batch.js +3 -9
  61. package/src/phaser/display/sprite_util.js +3 -28
  62. package/src/phaser/display/text.js +332 -32
  63. package/src/phaser/display/webgl/abstract_filter.js +8 -7
  64. package/src/phaser/display/webgl/base_texture.js +20 -12
  65. package/src/phaser/display/webgl/blend_manager.js +14 -7
  66. package/src/phaser/display/webgl/earcut.js +4 -50
  67. package/src/phaser/display/webgl/earcut_node.js +6 -7
  68. package/src/phaser/display/webgl/fast_sprite_batch.js +34 -11
  69. package/src/phaser/display/webgl/filter_manager.js +25 -7
  70. package/src/phaser/display/webgl/filter_texture.js +21 -22
  71. package/src/phaser/display/webgl/graphics.js +5 -40
  72. package/src/phaser/display/webgl/graphics_data.js +10 -7
  73. package/src/phaser/display/webgl/mask_manager.js +0 -8
  74. package/src/phaser/display/webgl/render_texture.js +33 -21
  75. package/src/phaser/display/webgl/renderer.js +38 -11
  76. package/src/phaser/display/webgl/shader/complex.js +10 -6
  77. package/src/phaser/display/webgl/shader/fast.js +10 -6
  78. package/src/phaser/display/webgl/shader/normal.js +23 -32
  79. package/src/phaser/display/webgl/shader/primitive.js +10 -6
  80. package/src/phaser/display/webgl/shader/strip.js +10 -6
  81. package/src/phaser/display/webgl/shader_manager.js +18 -6
  82. package/src/phaser/display/webgl/sprite_batch.js +41 -8
  83. package/src/phaser/display/webgl/stencil_manager.js +28 -6
  84. package/src/phaser/display/webgl/texture.js +28 -15
  85. package/src/phaser/display/webgl/texture_util.js +0 -8
  86. package/src/phaser/display/webgl/util.js +0 -11
  87. package/src/phaser/geom/circle.js +123 -19
  88. package/src/phaser/geom/ellipse.js +39 -19
  89. package/src/phaser/geom/line.js +148 -17
  90. package/src/phaser/geom/matrix.js +73 -7
  91. package/src/phaser/geom/point.js +152 -7
  92. package/src/phaser/geom/polygon.js +42 -14
  93. package/src/phaser/geom/rectangle.js +233 -7
  94. package/src/phaser/geom/rounded_rectangle.js +10 -7
  95. package/src/phaser/geom/util/circle.js +3 -16
  96. package/src/phaser/geom/util/ellipse.js +0 -8
  97. package/src/phaser/geom/util/line.js +5 -19
  98. package/src/phaser/geom/util/matrix.js +1 -10
  99. package/src/phaser/geom/util/point.js +0 -26
  100. package/src/phaser/geom/util/polygon.js +1 -8
  101. package/src/phaser/geom/util/rectangle.js +1 -23
  102. package/src/phaser/geom/util/rounded_rectangle.js +1 -8
  103. package/src/phaser/util/math.js +3 -43
  104. package/{types → typedefs}/global.d.ts +1 -1
  105. package/types/index.d.ts +2 -1
  106. package/types/index.d.ts.map +1 -1
  107. package/types/phaser/core/animation.d.ts +106 -5
  108. package/types/phaser/core/animation.d.ts.map +1 -1
  109. package/types/phaser/core/animation_manager.d.ts +88 -1
  110. package/types/phaser/core/animation_manager.d.ts.map +1 -1
  111. package/types/phaser/core/animation_parser.d.ts +5 -6
  112. package/types/phaser/core/animation_parser.d.ts.map +1 -1
  113. package/types/phaser/core/array_set.d.ts +53 -7
  114. package/types/phaser/core/array_set.d.ts.map +1 -1
  115. package/types/phaser/core/cache.d.ts +348 -58
  116. package/types/phaser/core/cache.d.ts.map +1 -1
  117. package/types/phaser/core/const.d.ts +143 -40
  118. package/types/phaser/core/const.d.ts.map +1 -1
  119. package/types/phaser/core/device.d.ts +2 -5
  120. package/types/phaser/core/device.d.ts.map +1 -1
  121. package/types/phaser/core/device_util.d.ts +1 -10
  122. package/types/phaser/core/device_util.d.ts.map +1 -1
  123. package/types/phaser/core/dom.d.ts +122 -3
  124. package/types/phaser/core/dom.d.ts.map +1 -1
  125. package/types/phaser/core/event_manager.d.ts +142 -15
  126. package/types/phaser/core/event_manager.d.ts.map +1 -1
  127. package/types/phaser/core/factory.d.ts +74 -7
  128. package/types/phaser/core/factory.d.ts.map +1 -1
  129. package/types/phaser/core/frame.d.ts +68 -26
  130. package/types/phaser/core/frame.d.ts.map +1 -1
  131. package/types/phaser/core/frame_data.d.ts +61 -9
  132. package/types/phaser/core/frame_data.d.ts.map +1 -1
  133. package/types/phaser/core/frame_util.d.ts +10 -10
  134. package/types/phaser/core/frame_util.d.ts.map +1 -1
  135. package/types/phaser/core/game.d.ts +54 -20
  136. package/types/phaser/core/game.d.ts.map +1 -1
  137. package/types/phaser/core/input.d.ts +132 -21
  138. package/types/phaser/core/input.d.ts.map +1 -1
  139. package/types/phaser/core/input_handler.d.ts +258 -25
  140. package/types/phaser/core/input_handler.d.ts.map +1 -1
  141. package/types/phaser/core/input_mouse.d.ts +59 -12
  142. package/types/phaser/core/input_mouse.d.ts.map +1 -1
  143. package/types/phaser/core/input_mspointer.d.ts +49 -15
  144. package/types/phaser/core/input_mspointer.d.ts.map +1 -1
  145. package/types/phaser/core/input_pointer.d.ts +80 -4
  146. package/types/phaser/core/input_pointer.d.ts.map +1 -1
  147. package/types/phaser/core/input_touch.d.ts +52 -15
  148. package/types/phaser/core/input_touch.d.ts.map +1 -1
  149. package/types/phaser/core/loader.d.ts +268 -23
  150. package/types/phaser/core/loader.d.ts.map +1 -1
  151. package/types/phaser/core/loader_parser.d.ts +0 -4
  152. package/types/phaser/core/loader_parser.d.ts.map +1 -1
  153. package/types/phaser/core/raf.d.ts +17 -7
  154. package/types/phaser/core/raf.d.ts.map +1 -1
  155. package/types/phaser/core/scale_manager.d.ts +210 -15
  156. package/types/phaser/core/scale_manager.d.ts.map +1 -1
  157. package/types/phaser/core/scene.d.ts +21 -5
  158. package/types/phaser/core/scene.d.ts.map +1 -1
  159. package/types/phaser/core/scene_manager.d.ts +90 -10
  160. package/types/phaser/core/scene_manager.d.ts.map +1 -1
  161. package/types/phaser/core/signal.d.ts +95 -11
  162. package/types/phaser/core/signal.d.ts.map +1 -1
  163. package/types/phaser/core/signal_binding.d.ts +35 -6
  164. package/types/phaser/core/signal_binding.d.ts.map +1 -1
  165. package/types/phaser/core/sound.d.ts +111 -14
  166. package/types/phaser/core/sound.d.ts.map +1 -1
  167. package/types/phaser/core/sound_manager.d.ts +94 -8
  168. package/types/phaser/core/sound_manager.d.ts.map +1 -1
  169. package/types/phaser/core/sound_sprite.d.ts +22 -8
  170. package/types/phaser/core/sound_sprite.d.ts.map +1 -1
  171. package/types/phaser/core/stage.d.ts +32 -3
  172. package/types/phaser/core/stage.d.ts.map +1 -1
  173. package/types/phaser/core/time.d.ts +73 -6
  174. package/types/phaser/core/time.d.ts.map +1 -1
  175. package/types/phaser/core/timer.d.ts +103 -2
  176. package/types/phaser/core/timer.d.ts.map +1 -1
  177. package/types/phaser/core/timer_event.d.ts +11 -5
  178. package/types/phaser/core/timer_event.d.ts.map +1 -1
  179. package/types/phaser/core/tween.d.ts +123 -3
  180. package/types/phaser/core/tween.d.ts.map +1 -1
  181. package/types/phaser/core/tween_data.d.ts +42 -3
  182. package/types/phaser/core/tween_data.d.ts.map +1 -1
  183. package/types/phaser/core/tween_easing.d.ts +0 -36
  184. package/types/phaser/core/tween_easing.d.ts.map +1 -1
  185. package/types/phaser/core/tween_manager.d.ts +49 -2
  186. package/types/phaser/core/tween_manager.d.ts.map +1 -1
  187. package/types/phaser/core/world.d.ts +9 -1
  188. package/types/phaser/core/world.d.ts.map +1 -1
  189. package/types/phaser/display/bitmap_text.d.ts +89 -12
  190. package/types/phaser/display/bitmap_text.d.ts.map +1 -1
  191. package/types/phaser/display/button.d.ts +68 -11
  192. package/types/phaser/display/button.d.ts.map +1 -1
  193. package/types/phaser/display/canvas/buffer.d.ts +21 -5
  194. package/types/phaser/display/canvas/buffer.d.ts.map +1 -1
  195. package/types/phaser/display/canvas/graphics.d.ts +0 -3
  196. package/types/phaser/display/canvas/graphics.d.ts.map +1 -1
  197. package/types/phaser/display/canvas/masker.d.ts +0 -2
  198. package/types/phaser/display/canvas/masker.d.ts.map +1 -1
  199. package/types/phaser/display/canvas/pool.d.ts +0 -13
  200. package/types/phaser/display/canvas/pool.d.ts.map +1 -1
  201. package/types/phaser/display/canvas/renderer.d.ts +30 -3
  202. package/types/phaser/display/canvas/renderer.d.ts.map +1 -1
  203. package/types/phaser/display/canvas/tinter.d.ts +0 -5
  204. package/types/phaser/display/canvas/tinter.d.ts.map +1 -1
  205. package/types/phaser/display/canvas/util.d.ts +0 -9
  206. package/types/phaser/display/canvas/util.d.ts.map +1 -1
  207. package/types/phaser/display/display_object.d.ts +196 -9
  208. package/types/phaser/display/display_object.d.ts.map +1 -1
  209. package/types/phaser/display/graphics.d.ts +142 -16
  210. package/types/phaser/display/graphics.d.ts.map +1 -1
  211. package/types/phaser/display/graphics_data.d.ts +15 -1
  212. package/types/phaser/display/graphics_data.d.ts.map +1 -1
  213. package/types/phaser/display/graphics_data_util.d.ts +3 -3
  214. package/types/phaser/display/graphics_data_util.d.ts.map +1 -1
  215. package/types/phaser/display/group.d.ts +68 -6
  216. package/types/phaser/display/group.d.ts.map +1 -1
  217. package/types/phaser/display/image.d.ts +77 -15
  218. package/types/phaser/display/image.d.ts.map +1 -1
  219. package/types/phaser/display/sprite_batch.d.ts +4 -4
  220. package/types/phaser/display/sprite_batch.d.ts.map +1 -1
  221. package/types/phaser/display/sprite_util.d.ts +0 -5
  222. package/types/phaser/display/sprite_util.d.ts.map +1 -1
  223. package/types/phaser/display/text.d.ts +373 -53
  224. package/types/phaser/display/text.d.ts.map +1 -1
  225. package/types/phaser/display/webgl/abstract_filter.d.ts +8 -6
  226. package/types/phaser/display/webgl/abstract_filter.d.ts.map +1 -1
  227. package/types/phaser/display/webgl/base_texture.d.ts +20 -1
  228. package/types/phaser/display/webgl/base_texture.d.ts.map +1 -1
  229. package/types/phaser/display/webgl/blend_manager.d.ts +11 -6
  230. package/types/phaser/display/webgl/blend_manager.d.ts.map +1 -1
  231. package/types/phaser/display/webgl/earcut.d.ts +0 -27
  232. package/types/phaser/display/webgl/earcut.d.ts.map +1 -1
  233. package/types/phaser/display/webgl/earcut_node.d.ts +9 -9
  234. package/types/phaser/display/webgl/earcut_node.d.ts.map +1 -1
  235. package/types/phaser/display/webgl/fast_sprite_batch.d.ts +33 -6
  236. package/types/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -1
  237. package/types/phaser/display/webgl/filter_manager.d.ts +23 -7
  238. package/types/phaser/display/webgl/filter_manager.d.ts.map +1 -1
  239. package/types/phaser/display/webgl/filter_texture.d.ts +21 -3
  240. package/types/phaser/display/webgl/filter_texture.d.ts.map +1 -1
  241. package/types/phaser/display/webgl/graphics.d.ts +0 -12
  242. package/types/phaser/display/webgl/graphics.d.ts.map +1 -1
  243. package/types/phaser/display/webgl/graphics_data.d.ts +12 -8
  244. package/types/phaser/display/webgl/graphics_data.d.ts.map +1 -1
  245. package/types/phaser/display/webgl/mask_manager.d.ts +0 -2
  246. package/types/phaser/display/webgl/mask_manager.d.ts.map +1 -1
  247. package/types/phaser/display/webgl/render_texture.d.ts +31 -4
  248. package/types/phaser/display/webgl/render_texture.d.ts.map +1 -1
  249. package/types/phaser/display/webgl/renderer.d.ts +42 -5
  250. package/types/phaser/display/webgl/renderer.d.ts.map +1 -1
  251. package/types/phaser/display/webgl/shader/complex.d.ts +12 -2
  252. package/types/phaser/display/webgl/shader/complex.d.ts.map +1 -1
  253. package/types/phaser/display/webgl/shader/fast.d.ts +12 -2
  254. package/types/phaser/display/webgl/shader/fast.d.ts.map +1 -1
  255. package/types/phaser/display/webgl/shader/normal.d.ts +21 -1
  256. package/types/phaser/display/webgl/shader/normal.d.ts.map +1 -1
  257. package/types/phaser/display/webgl/shader/primitive.d.ts +12 -2
  258. package/types/phaser/display/webgl/shader/primitive.d.ts.map +1 -1
  259. package/types/phaser/display/webgl/shader/strip.d.ts +12 -2
  260. package/types/phaser/display/webgl/shader/strip.d.ts.map +1 -1
  261. package/types/phaser/display/webgl/shader_manager.d.ts +20 -5
  262. package/types/phaser/display/webgl/shader_manager.d.ts.map +1 -1
  263. package/types/phaser/display/webgl/sprite_batch.d.ts +38 -1
  264. package/types/phaser/display/webgl/sprite_batch.d.ts.map +1 -1
  265. package/types/phaser/display/webgl/stencil_manager.d.ts +25 -0
  266. package/types/phaser/display/webgl/stencil_manager.d.ts.map +1 -1
  267. package/types/phaser/display/webgl/texture.d.ts +22 -1
  268. package/types/phaser/display/webgl/texture.d.ts.map +1 -1
  269. package/types/phaser/display/webgl/texture_util.d.ts +0 -2
  270. package/types/phaser/display/webgl/texture_util.d.ts.map +1 -1
  271. package/types/phaser/display/webgl/util.d.ts +0 -10
  272. package/types/phaser/display/webgl/util.d.ts.map +1 -1
  273. package/types/phaser/geom/circle.d.ts +130 -10
  274. package/types/phaser/geom/circle.d.ts.map +1 -1
  275. package/types/phaser/geom/ellipse.d.ts +42 -6
  276. package/types/phaser/geom/ellipse.d.ts.map +1 -1
  277. package/types/phaser/geom/line.d.ts +159 -14
  278. package/types/phaser/geom/line.d.ts.map +1 -1
  279. package/types/phaser/geom/matrix.d.ts +84 -12
  280. package/types/phaser/geom/matrix.d.ts.map +1 -1
  281. package/types/phaser/geom/point.d.ts +170 -19
  282. package/types/phaser/geom/point.d.ts.map +1 -1
  283. package/types/phaser/geom/polygon.d.ts +45 -5
  284. package/types/phaser/geom/polygon.d.ts.map +1 -1
  285. package/types/phaser/geom/rectangle.d.ts +253 -21
  286. package/types/phaser/geom/rectangle.d.ts.map +1 -1
  287. package/types/phaser/geom/rounded_rectangle.d.ts +11 -2
  288. package/types/phaser/geom/rounded_rectangle.d.ts.map +1 -1
  289. package/types/phaser/geom/util/circle.d.ts +3 -10
  290. package/types/phaser/geom/util/circle.d.ts.map +1 -1
  291. package/types/phaser/geom/util/ellipse.d.ts +0 -7
  292. package/types/phaser/geom/util/ellipse.d.ts.map +1 -1
  293. package/types/phaser/geom/util/line.d.ts +5 -10
  294. package/types/phaser/geom/util/line.d.ts.map +1 -1
  295. package/types/phaser/geom/util/matrix.d.ts +0 -3
  296. package/types/phaser/geom/util/matrix.d.ts.map +1 -1
  297. package/types/phaser/geom/util/point.d.ts +0 -20
  298. package/types/phaser/geom/util/point.d.ts.map +1 -1
  299. package/types/phaser/geom/util/polygon.d.ts +0 -1
  300. package/types/phaser/geom/util/polygon.d.ts.map +1 -1
  301. package/types/phaser/geom/util/rectangle.d.ts +0 -16
  302. package/types/phaser/geom/util/rectangle.d.ts.map +1 -1
  303. package/types/phaser/geom/util/rounded_rectangle.d.ts +0 -1
  304. package/types/phaser/geom/util/rounded_rectangle.d.ts.map +1 -1
  305. package/types/phaser/util/math.d.ts +0 -27
  306. package/types/phaser/util/math.d.ts.map +1 -1
@@ -1,16 +1,9 @@
1
- /**
2
- * @module geom/point
3
- * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
4
- * @author Andras Csizmadia <andras@vpmedia.hu>
5
- * @author Richard Davey <rich@photonstorm.com>
6
- */
7
1
  import { distance, rotate, clone } from './util/point';
8
2
  import { GEOM_POINT } from '../core/const';
9
3
 
10
4
  export class Point {
11
5
  /**
12
6
  * TBD.
13
- *
14
7
  * @param {number} x - TBD.
15
8
  * @param {number} y - TBD.
16
9
  */
@@ -20,20 +13,41 @@ export class Point {
20
13
  this.type = GEOM_POINT;
21
14
  }
22
15
 
16
+ /**
17
+ * TBD.
18
+ * @param {Point} source - TBD.
19
+ * @returns {Point} TBD.
20
+ */
23
21
  copyFrom(source) {
24
22
  return this.setTo(source.x, source.y);
25
23
  }
26
24
 
25
+ /**
26
+ * TBD.
27
+ * @returns {Point} TBD.
28
+ */
27
29
  invert() {
28
30
  return this.setTo(this.y, this.x);
29
31
  }
30
32
 
33
+ /**
34
+ * TBD.
35
+ * @param {number} x - TBD.
36
+ * @param {number} y - TBD.
37
+ * @returns {Point} TBD.
38
+ */
31
39
  setTo(x, y) {
32
40
  this.x = x || 0;
33
41
  this.y = y || (y !== 0 ? this.x : 0);
34
42
  return this;
35
43
  }
36
44
 
45
+ /**
46
+ * TBD.
47
+ * @param {number} x - TBD.
48
+ * @param {number} y - TBD.
49
+ * @returns {Point} TBD.
50
+ */
37
51
  set(x, y) {
38
52
  // deprecated, use setTo(x, y)
39
53
  this.x = x || 0;
@@ -41,64 +55,131 @@ export class Point {
41
55
  return this;
42
56
  }
43
57
 
58
+ /**
59
+ * TBD.
60
+ * @param {number} x - TBD.
61
+ * @param {number} y - TBD.
62
+ * @returns {Point} TBD.
63
+ */
44
64
  add(x, y) {
45
65
  this.x += x;
46
66
  this.y += y;
47
67
  return this;
48
68
  }
49
69
 
70
+ /**
71
+ * TBD.
72
+ * @param {number} x - TBD.
73
+ * @param {number} y - TBD.
74
+ * @returns {Point} TBD.
75
+ */
50
76
  subtract(x, y) {
51
77
  this.x -= x;
52
78
  this.y -= y;
53
79
  return this;
54
80
  }
55
81
 
82
+ /**
83
+ * TBD.
84
+ * @param {number} x - TBD.
85
+ * @param {number} y - TBD.
86
+ * @returns {Point} TBD.
87
+ */
56
88
  multiply(x, y) {
57
89
  this.x *= x;
58
90
  this.y *= y;
59
91
  return this;
60
92
  }
61
93
 
94
+ /**
95
+ * TBD.
96
+ * @param {number} x - TBD.
97
+ * @param {number} y - TBD.
98
+ * @returns {Point} TBD.
99
+ */
62
100
  divide(x, y) {
63
101
  this.x /= x;
64
102
  this.y /= y;
65
103
  return this;
66
104
  }
67
105
 
106
+ /**
107
+ * TBD.
108
+ * @param {number} min - TBD.
109
+ * @param {number} max - TBD.
110
+ * @returns {Point} TBD.
111
+ */
68
112
  clampX(min, max) {
69
113
  this.x = Math.max(min, Math.min(max, this.x));
70
114
  return this;
71
115
  }
72
116
 
117
+ /**
118
+ * TBD.
119
+ * @param {number} min - TBD.
120
+ * @param {number} max - TBD.
121
+ * @returns {Point} TBD.
122
+ */
73
123
  clampY(min, max) {
74
124
  this.y = Math.max(min, Math.min(max, this.y));
75
125
  return this;
76
126
  }
77
127
 
128
+ /**
129
+ * TBD.
130
+ * @param {number} min - TBD.
131
+ * @param {number} max - TBD.
132
+ * @returns {Point} TBD.
133
+ */
78
134
  clamp(min, max) {
79
135
  this.x = Math.max(min, Math.min(max, this.x));
80
136
  this.y = Math.max(min, Math.min(max, this.y));
81
137
  return this;
82
138
  }
83
139
 
140
+ /**
141
+ * TBD.
142
+ * @returns {Point} TBD.
143
+ */
84
144
  clone() {
85
145
  return clone(this);
86
146
  }
87
147
 
148
+ /**
149
+ * TBD.
150
+ * @param {Point} dest - TBD.
151
+ * @returns {Point} TBD.
152
+ */
88
153
  copyTo(dest) {
89
154
  dest.x = this.x;
90
155
  dest.y = this.y;
91
156
  return dest;
92
157
  }
93
158
 
159
+ /**
160
+ * TBD.
161
+ * @param {Point} b - TBD.
162
+ * @returns {number} TBD.
163
+ */
94
164
  distance(b) {
95
165
  return distance(this, b);
96
166
  }
97
167
 
168
+ /**
169
+ * TBD.
170
+ * @param {Point} a - TBD.
171
+ * @returns {boolean} TBD.
172
+ */
98
173
  equals(a) {
99
174
  return a.x === this.x && a.y === this.y;
100
175
  }
101
176
 
177
+ /**
178
+ * TBD.
179
+ * @param {Point} a - TBD.
180
+ * @param {boolean} asDegrees - TBD.
181
+ * @returns {number} TBD.
182
+ */
102
183
  angle(a, asDegrees = false) {
103
184
  if (asDegrees) {
104
185
  return (180 / Math.PI) * Math.atan2(a.y - this.y, a.x - this.x);
@@ -106,22 +187,48 @@ export class Point {
106
187
  return Math.atan2(a.y - this.y, a.x - this.x);
107
188
  }
108
189
 
190
+ /**
191
+ * TBD.
192
+ * @param {number} x - TBD.
193
+ * @param {number} y - TBD.
194
+ * @param {number} angle - TBD.
195
+ * @param {boolean} asDegrees - TBD.
196
+ * @param {number} dist - TBD.
197
+ * @returns {Point} TBD.
198
+ */
109
199
  rotate(x, y, angle, asDegrees, dist) {
110
200
  return rotate(this, x, y, angle, asDegrees, dist);
111
201
  }
112
202
 
203
+ /**
204
+ * TBD.
205
+ * @returns {number} TBD.
206
+ */
113
207
  getMagnitude() {
114
208
  return Math.sqrt(this.x * this.x + this.y * this.y);
115
209
  }
116
210
 
211
+ /**
212
+ * TBD.
213
+ * @returns {number} TBD.
214
+ */
117
215
  getMagnitudeSq() {
118
216
  return this.x * this.x + this.y * this.y;
119
217
  }
120
218
 
219
+ /**
220
+ * TBD.
221
+ * @param {number} magnitude - TBD.
222
+ * @returns {Point} TBD.
223
+ */
121
224
  setMagnitude(magnitude) {
122
225
  return this.normalize().multiply(magnitude, magnitude);
123
226
  }
124
227
 
228
+ /**
229
+ * TBD.
230
+ * @returns {Point} TBD.
231
+ */
125
232
  normalize() {
126
233
  if (!this.isZero()) {
127
234
  const m = this.getMagnitude();
@@ -131,38 +238,76 @@ export class Point {
131
238
  return this;
132
239
  }
133
240
 
241
+ /**
242
+ * TBD.
243
+ * @returns {boolean} TBD.
244
+ */
134
245
  isZero() {
135
246
  return this.x === 0 && this.y === 0;
136
247
  }
137
248
 
249
+ /**
250
+ * TBD.
251
+ * @param {Point} a - TBD.
252
+ * @returns {number} TBD.
253
+ */
138
254
  dot(a) {
139
255
  return this.x * a.x + this.y * a.y;
140
256
  }
141
257
 
258
+ /**
259
+ * TBD.
260
+ * @param {Point} a - TBD.
261
+ * @returns {number} TBD.
262
+ */
142
263
  cross(a) {
143
264
  return this.x * a.y - this.y * a.x;
144
265
  }
145
266
 
267
+ /**
268
+ * TBD.
269
+ * @returns {Point} TBD.
270
+ */
146
271
  perp() {
147
272
  return this.setTo(-this.y, this.x);
148
273
  }
149
274
 
275
+ /**
276
+ * TBD.
277
+ * @returns {Point} TBD.
278
+ */
150
279
  rperp() {
151
280
  return this.setTo(this.y, -this.x);
152
281
  }
153
282
 
283
+ /**
284
+ * TBD.
285
+ * @returns {Point} TBD.
286
+ */
154
287
  normalRightHand() {
155
288
  return this.setTo(this.y * -1, this.x);
156
289
  }
157
290
 
291
+ /**
292
+ * TBD.
293
+ * @returns {Point} TBD.
294
+ */
158
295
  floor() {
159
296
  return this.setTo(Math.floor(this.x), Math.floor(this.y));
160
297
  }
161
298
 
299
+ /**
300
+ * TBD.
301
+ * @returns {Point} TBD.
302
+ */
162
303
  ceil() {
163
304
  return this.setTo(Math.ceil(this.x), Math.ceil(this.y));
164
305
  }
165
306
 
307
+ /**
308
+ * TBD.
309
+ * @returns {string} TBD.
310
+ */
166
311
  toString() {
167
312
  return '[{Point (x=' + this.x + ' y=' + this.y + ')}]';
168
313
  }
@@ -1,14 +1,12 @@
1
- /**
2
- * @module geom/polygon
3
- * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
4
- * @author Andras Csizmadia <andras@vpmedia.hu>
5
- * @author Richard Davey <rich@photonstorm.com>
6
- */
7
1
  import { Point } from './point';
8
2
  import { clone } from './util/polygon';
9
3
  import { GEOM_POLYGON } from '../core/const';
10
4
 
11
5
  export class Polygon {
6
+ /**
7
+ * TBD.
8
+ * @param {object[]} points - TBD.
9
+ */
12
10
  constructor(points = null) {
13
11
  this.area = 0;
14
12
  this._points = [];
@@ -20,6 +18,11 @@ export class Polygon {
20
18
  }
21
19
  }
22
20
 
21
+ /**
22
+ * TBD.
23
+ * @param {number[]} output - TBD.
24
+ * @returns {number[]} TBD.
25
+ */
23
26
  toNumberArray(output = []) {
24
27
  for (let i = 0; i < this._points.length; i += 1) {
25
28
  if (typeof this._points[i] === 'number') {
@@ -34,16 +37,30 @@ export class Polygon {
34
37
  return output;
35
38
  }
36
39
 
40
+ /**
41
+ * TBD.
42
+ * @returns {Polygon} TBD.
43
+ */
37
44
  flatten() {
38
45
  this._points = this.toNumberArray();
39
46
  this.flattened = true;
40
47
  return this;
41
48
  }
42
49
 
50
+ /**
51
+ * TBD.
52
+ * @returns {Polygon} TBD.
53
+ */
43
54
  clone() {
44
55
  return clone(this);
45
56
  }
46
57
 
58
+ /**
59
+ * TBD.
60
+ * @param {number} x - TBD.
61
+ * @param {number} y - TBD.
62
+ * @returns {boolean} TBD.
63
+ */
47
64
  contains(x, y) {
48
65
  // Adapted from http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html by Jonas Raoni Soares Silva
49
66
  let inside = false;
@@ -53,10 +70,7 @@ export class Polygon {
53
70
  const iy = this._points[i + 1];
54
71
  const jx = this._points[j];
55
72
  const jy = this._points[j + 1];
56
- if (
57
- ((iy <= y && y < jy) || (jy <= y && y < iy)) &&
58
- x < ((jx - ix) * (y - iy)) / (jy - iy) + ix
59
- ) {
73
+ if (((iy <= y && y < jy) || (jy <= y && y < iy)) && x < ((jx - ix) * (y - iy)) / (jy - iy) + ix) {
60
74
  inside = !inside;
61
75
  }
62
76
  }
@@ -66,10 +80,7 @@ export class Polygon {
66
80
  const iy = this._points[i].y;
67
81
  const jx = this._points[j].x;
68
82
  const jy = this._points[j].y;
69
- if (
70
- ((iy <= y && y < jy) || (jy <= y && y < iy)) &&
71
- x < ((jx - ix) * (y - iy)) / (jy - iy) + ix
72
- ) {
83
+ if (((iy <= y && y < jy) || (jy <= y && y < iy)) && x < ((jx - ix) * (y - iy)) / (jy - iy) + ix) {
73
84
  inside = !inside;
74
85
  }
75
86
  }
@@ -77,6 +88,11 @@ export class Polygon {
77
88
  return inside;
78
89
  }
79
90
 
91
+ /**
92
+ * TBD.
93
+ * @param {object[]} points - TBD.
94
+ * @returns {Polygon} TBD.
95
+ */
80
96
  setTo(points) {
81
97
  this.area = 0;
82
98
  this._points = [];
@@ -111,6 +127,11 @@ export class Polygon {
111
127
  return this;
112
128
  }
113
129
 
130
+ /**
131
+ * TBD.
132
+ * @param {number} y0 - TBD.
133
+ * @returns {number} TBD.
134
+ */
114
135
  calculateArea(y0) {
115
136
  let p1;
116
137
  let p2;
@@ -130,10 +151,17 @@ export class Polygon {
130
151
  return this.area;
131
152
  }
132
153
 
154
+ /**
155
+ * TBD.
156
+ * @returns {object[]} TBD.
157
+ */
133
158
  get points() {
134
159
  return this._points;
135
160
  }
136
161
 
162
+ /**
163
+ * TBD.
164
+ */
137
165
  set points(value) {
138
166
  if (value !== null) {
139
167
  this.setTo(value);