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