@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.
- package/README.md +1 -1
- package/package.json +8 -5
- package/src/index.js +19 -19
- package/src/phaser/core/animation.js +12 -9
- package/src/phaser/core/animation_manager.js +16 -6
- package/src/phaser/core/animation_parser.js +40 -17
- package/src/phaser/core/array_set.js +3 -5
- package/src/phaser/core/cache.js +12 -12
- package/src/phaser/core/const.js +1 -1
- package/src/phaser/core/device.js +2 -4
- package/src/phaser/core/device_util.js +50 -17
- package/src/phaser/core/dom.js +36 -27
- package/src/phaser/core/event_manager.js +47 -19
- package/src/phaser/core/factory.js +34 -12
- package/src/phaser/core/frame.js +3 -5
- package/src/phaser/core/frame_data.js +2 -4
- package/src/phaser/core/frame_util.js +11 -9
- package/src/phaser/core/game.js +22 -19
- package/src/phaser/core/input.js +24 -16
- package/src/phaser/core/input_handler.js +102 -28
- package/src/phaser/core/input_mouse.js +12 -16
- package/src/phaser/core/input_mspointer.js +11 -10
- package/src/phaser/core/input_pointer.js +61 -20
- package/src/phaser/core/input_touch.js +7 -9
- package/src/phaser/core/loader.js +171 -54
- package/src/phaser/core/loader_parser.js +29 -22
- package/src/phaser/core/raf.js +2 -4
- package/src/phaser/core/scale_manager.js +75 -31
- package/src/phaser/core/scene.js +2 -4
- package/src/phaser/core/scene_manager.js +9 -6
- package/src/phaser/core/signal.js +19 -11
- package/src/phaser/core/signal_binding.js +12 -7
- package/src/phaser/core/sound.js +23 -14
- package/src/phaser/core/sound_manager.js +62 -26
- package/src/phaser/core/sound_sprite.js +34 -34
- package/src/phaser/core/stage.js +4 -7
- package/src/phaser/core/time.js +3 -5
- package/src/phaser/core/timer.js +27 -10
- package/src/phaser/core/timer_event.js +1 -3
- package/src/phaser/core/tween.js +36 -12
- package/src/phaser/core/tween_data.js +17 -9
- package/src/phaser/core/tween_easing.js +87 -83
- package/src/phaser/core/tween_manager.js +34 -16
- package/src/phaser/core/world.js +3 -5
- package/src/phaser/display/bitmap_text.js +25 -14
- package/src/phaser/display/button.js +35 -8
- package/src/phaser/display/canvas/buffer.js +1 -3
- package/src/phaser/display/canvas/graphics.js +30 -15
- package/src/phaser/display/canvas/masker.js +7 -5
- package/src/phaser/display/canvas/pool.js +18 -11
- package/src/phaser/display/canvas/renderer.js +40 -20
- package/src/phaser/display/canvas/tinter.js +61 -19
- package/src/phaser/display/canvas/util.js +44 -35
- package/src/phaser/display/display_object.js +42 -24
- package/src/phaser/display/graphics.js +72 -39
- package/src/phaser/display/graphics_data.js +3 -4
- package/src/phaser/display/graphics_data_util.js +15 -5
- package/src/phaser/display/group.js +15 -9
- package/src/phaser/display/image.js +17 -9
- package/src/phaser/display/sprite_batch.js +8 -4
- package/src/phaser/display/sprite_util.js +67 -26
- package/src/phaser/display/text.js +92 -31
- package/src/phaser/display/webgl/abstract_filter.js +1 -3
- package/src/phaser/display/webgl/base_texture.js +8 -5
- package/src/phaser/display/webgl/blend_manager.js +1 -3
- package/src/phaser/display/webgl/earcut.js +170 -129
- package/src/phaser/display/webgl/earcut_node.js +1 -3
- package/src/phaser/display/webgl/fast_sprite_batch.js +48 -47
- package/src/phaser/display/webgl/filter_manager.js +1 -3
- package/src/phaser/display/webgl/filter_texture.js +17 -6
- package/src/phaser/display/webgl/graphics.js +72 -50
- package/src/phaser/display/webgl/graphics_data.js +2 -4
- package/src/phaser/display/webgl/mask_manager.js +17 -7
- package/src/phaser/display/webgl/render_texture.js +19 -10
- package/src/phaser/display/webgl/renderer.js +41 -9
- package/src/phaser/display/webgl/shader/complex.js +1 -3
- package/src/phaser/display/webgl/shader/fast.js +9 -4
- package/src/phaser/display/webgl/shader/normal.js +43 -15
- package/src/phaser/display/webgl/shader/primitive.js +1 -3
- package/src/phaser/display/webgl/shader/strip.js +1 -3
- package/src/phaser/display/webgl/shader_manager.js +1 -3
- package/src/phaser/display/webgl/sprite_batch.js +14 -15
- package/src/phaser/display/webgl/stencil_manager.js +19 -21
- package/src/phaser/display/webgl/texture.js +14 -10
- package/src/phaser/display/webgl/texture_util.js +11 -9
- package/src/phaser/display/webgl/util.js +21 -18
- package/src/phaser/geom/circle.js +27 -11
- package/src/phaser/geom/ellipse.js +26 -10
- package/src/phaser/geom/line.js +31 -13
- package/src/phaser/geom/matrix.js +14 -5
- package/src/phaser/geom/point.js +18 -13
- package/src/phaser/geom/polygon.js +13 -8
- package/src/phaser/geom/rectangle.js +57 -14
- package/src/phaser/geom/rounded_rectangle.js +12 -4
- package/src/phaser/geom/util/circle.js +40 -32
- package/src/phaser/geom/util/ellipse.js +10 -18
- package/src/phaser/geom/util/line.js +46 -37
- package/src/phaser/geom/util/matrix.js +11 -9
- package/src/phaser/geom/util/point.js +101 -79
- package/src/phaser/geom/util/polygon.js +7 -15
- package/src/phaser/geom/util/rectangle.js +95 -69
- package/src/phaser/geom/util/rounded_rectangle.js +7 -15
- package/src/phaser/util/math.js +123 -89
- package/types/global.d.ts +7 -0
- package/types/index.d.ts +22 -0
- package/types/index.d.ts.map +1 -0
- package/types/phaser/core/animation.d.ts +55 -0
- package/types/phaser/core/animation.d.ts.map +1 -0
- package/types/phaser/core/animation_manager.d.ts +35 -0
- package/types/phaser/core/animation_manager.d.ts.map +1 -0
- package/types/phaser/core/animation_parser.d.ts +22 -0
- package/types/phaser/core/animation_parser.d.ts.map +1 -0
- package/types/phaser/core/array_set.d.ts +23 -0
- package/types/phaser/core/array_set.d.ts.map +1 -0
- package/types/phaser/core/cache.d.ts +106 -0
- package/types/phaser/core/cache.d.ts.map +1 -0
- package/types/phaser/core/const.d.ts +81 -0
- package/types/phaser/core/const.d.ts.map +1 -0
- package/types/phaser/core/device.d.ts +36 -0
- package/types/phaser/core/device.d.ts.map +1 -0
- package/types/phaser/core/device_util.d.ts +58 -0
- package/types/phaser/core/device_util.d.ts.map +1 -0
- package/types/phaser/core/dom.d.ts +63 -0
- package/types/phaser/core/dom.d.ts.map +1 -0
- package/types/phaser/core/event_manager.d.ts +53 -0
- package/types/phaser/core/event_manager.d.ts.map +1 -0
- package/types/phaser/core/factory.d.ts +12 -0
- package/types/phaser/core/factory.d.ts.map +1 -0
- package/types/phaser/core/frame.d.ts +30 -0
- package/types/phaser/core/frame.d.ts.map +1 -0
- package/types/phaser/core/frame_data.d.ts +14 -0
- package/types/phaser/core/frame_data.d.ts.map +1 -0
- package/types/phaser/core/frame_util.d.ts +17 -0
- package/types/phaser/core/frame_util.d.ts.map +1 -0
- package/types/phaser/core/game.d.ts +57 -0
- package/types/phaser/core/game.d.ts.map +1 -0
- package/types/phaser/core/input.d.ts +92 -0
- package/types/phaser/core/input.d.ts.map +1 -0
- package/types/phaser/core/input_handler.d.ts +111 -0
- package/types/phaser/core/input_handler.d.ts.map +1 -0
- package/types/phaser/core/input_mouse.d.ts +39 -0
- package/types/phaser/core/input_mouse.d.ts.map +1 -0
- package/types/phaser/core/input_mspointer.d.ts +34 -0
- package/types/phaser/core/input_mspointer.d.ts.map +1 -0
- package/types/phaser/core/input_pointer.d.ts +68 -0
- package/types/phaser/core/input_pointer.d.ts.map +1 -0
- package/types/phaser/core/input_touch.d.ts +37 -0
- package/types/phaser/core/input_touch.d.ts.map +1 -0
- package/types/phaser/core/loader.d.ts +94 -0
- package/types/phaser/core/loader.d.ts.map +1 -0
- package/types/phaser/core/loader_parser.d.ts +39 -0
- package/types/phaser/core/loader_parser.d.ts.map +1 -0
- package/types/phaser/core/raf.d.ts +15 -0
- package/types/phaser/core/raf.d.ts.map +1 -0
- package/types/phaser/core/scale_manager.d.ts +137 -0
- package/types/phaser/core/scale_manager.d.ts.map +1 -0
- package/types/phaser/core/scene.d.ts +17 -0
- package/types/phaser/core/scene.d.ts.map +1 -0
- package/types/phaser/core/scene_manager.d.ts +39 -0
- package/types/phaser/core/scene_manager.d.ts.map +1 -0
- package/types/phaser/core/signal.d.ts +25 -0
- package/types/phaser/core/signal.d.ts.map +1 -0
- package/types/phaser/core/signal_binding.d.ts +26 -0
- package/types/phaser/core/signal_binding.d.ts.map +1 -0
- package/types/phaser/core/sound.d.ts +72 -0
- package/types/phaser/core/sound.d.ts.map +1 -0
- package/types/phaser/core/sound_manager.d.ts +50 -0
- package/types/phaser/core/sound_manager.d.ts.map +1 -0
- package/types/phaser/core/sound_sprite.d.ts +18 -0
- package/types/phaser/core/sound_sprite.d.ts.map +1 -0
- package/types/phaser/core/stage.d.ts +23 -0
- package/types/phaser/core/stage.d.ts.map +1 -0
- package/types/phaser/core/time.d.ts +49 -0
- package/types/phaser/core/time.d.ts.map +1 -0
- package/types/phaser/core/timer.d.ts +49 -0
- package/types/phaser/core/timer.d.ts.map +1 -0
- package/types/phaser/core/timer_event.d.ts +18 -0
- package/types/phaser/core/timer_event.d.ts.map +1 -0
- package/types/phaser/core/tween.d.ts +52 -0
- package/types/phaser/core/tween.d.ts.map +1 -0
- package/types/phaser/core/tween_data.d.ts +37 -0
- package/types/phaser/core/tween_data.d.ts.map +1 -0
- package/types/phaser/core/tween_easing.d.ts +192 -0
- package/types/phaser/core/tween_easing.d.ts.map +1 -0
- package/types/phaser/core/tween_manager.d.ts +94 -0
- package/types/phaser/core/tween_manager.d.ts.map +1 -0
- package/types/phaser/core/world.d.ts +6 -0
- package/types/phaser/core/world.d.ts.map +1 -0
- package/types/phaser/display/bitmap_text.d.ts +59 -0
- package/types/phaser/display/bitmap_text.d.ts.map +1 -0
- package/types/phaser/display/button.d.ts +47 -0
- package/types/phaser/display/button.d.ts.map +1 -0
- package/types/phaser/display/canvas/buffer.d.ts +11 -0
- package/types/phaser/display/canvas/buffer.d.ts.map +1 -0
- package/types/phaser/display/canvas/graphics.d.ts +21 -0
- package/types/phaser/display/canvas/graphics.d.ts.map +1 -0
- package/types/phaser/display/canvas/masker.d.ts +14 -0
- package/types/phaser/display/canvas/masker.d.ts.map +1 -0
- package/types/phaser/display/canvas/pool.d.ts +52 -0
- package/types/phaser/display/canvas/pool.d.ts.map +1 -0
- package/types/phaser/display/canvas/renderer.d.ts +28 -0
- package/types/phaser/display/canvas/renderer.d.ts.map +1 -0
- package/types/phaser/display/canvas/tinter.d.ts +41 -0
- package/types/phaser/display/canvas/tinter.d.ts.map +1 -0
- package/types/phaser/display/canvas/util.d.ts +79 -0
- package/types/phaser/display/canvas/util.d.ts.map +1 -0
- package/types/phaser/display/display_object.d.ts +83 -0
- package/types/phaser/display/display_object.d.ts.map +1 -0
- package/types/phaser/display/graphics.d.ts +60 -0
- package/types/phaser/display/graphics.d.ts.map +1 -0
- package/types/phaser/display/graphics_data.d.ts +15 -0
- package/types/phaser/display/graphics_data.d.ts.map +1 -0
- package/types/phaser/display/graphics_data_util.d.ts +8 -0
- package/types/phaser/display/graphics_data_util.d.ts.map +1 -0
- package/types/phaser/display/group.d.ts +49 -0
- package/types/phaser/display/group.d.ts.map +1 -0
- package/types/phaser/display/image.d.ts +52 -0
- package/types/phaser/display/image.d.ts.map +1 -0
- package/types/phaser/display/sprite_batch.d.ts +11 -0
- package/types/phaser/display/sprite_batch.d.ts.map +1 -0
- package/types/phaser/display/sprite_util.d.ts +40 -0
- package/types/phaser/display/sprite_util.d.ts.map +1 -0
- package/types/phaser/display/text.d.ts +125 -0
- package/types/phaser/display/text.d.ts.map +1 -0
- package/types/phaser/display/webgl/abstract_filter.d.ts +17 -0
- package/types/phaser/display/webgl/abstract_filter.d.ts.map +1 -0
- package/types/phaser/display/webgl/base_texture.d.ts +20 -0
- package/types/phaser/display/webgl/base_texture.d.ts.map +1 -0
- package/types/phaser/display/webgl/blend_manager.d.ts +14 -0
- package/types/phaser/display/webgl/blend_manager.d.ts.map +1 -0
- package/types/phaser/display/webgl/earcut.d.ts +215 -0
- package/types/phaser/display/webgl/earcut.d.ts.map +1 -0
- package/types/phaser/display/webgl/earcut_node.d.ts +19 -0
- package/types/phaser/display/webgl/earcut_node.d.ts.map +1 -0
- package/types/phaser/display/webgl/fast_sprite_batch.d.ts +34 -0
- package/types/phaser/display/webgl/fast_sprite_batch.d.ts.map +1 -0
- package/types/phaser/display/webgl/filter_manager.d.ts +21 -0
- package/types/phaser/display/webgl/filter_manager.d.ts.map +1 -0
- package/types/phaser/display/webgl/filter_texture.d.ts +13 -0
- package/types/phaser/display/webgl/filter_texture.d.ts.map +1 -0
- package/types/phaser/display/webgl/graphics.d.ts +80 -0
- package/types/phaser/display/webgl/graphics.d.ts.map +1 -0
- package/types/phaser/display/webgl/graphics_data.d.ts +23 -0
- package/types/phaser/display/webgl/graphics_data.d.ts.map +1 -0
- package/types/phaser/display/webgl/mask_manager.d.ts +15 -0
- package/types/phaser/display/webgl/mask_manager.d.ts.map +1 -0
- package/types/phaser/display/webgl/render_texture.d.ts +25 -0
- package/types/phaser/display/webgl/render_texture.d.ts.map +1 -0
- package/types/phaser/display/webgl/renderer.d.ts +44 -0
- package/types/phaser/display/webgl/renderer.d.ts.map +1 -0
- package/types/phaser/display/webgl/shader/complex.d.ts +22 -0
- package/types/phaser/display/webgl/shader/complex.d.ts.map +1 -0
- package/types/phaser/display/webgl/shader/fast.d.ts +25 -0
- package/types/phaser/display/webgl/shader/fast.d.ts.map +1 -0
- package/types/phaser/display/webgl/shader/normal.d.ts +25 -0
- package/types/phaser/display/webgl/shader/normal.d.ts.map +1 -0
- package/types/phaser/display/webgl/shader/primitive.d.ts +21 -0
- package/types/phaser/display/webgl/shader/primitive.d.ts.map +1 -0
- package/types/phaser/display/webgl/shader/strip.d.ts +22 -0
- package/types/phaser/display/webgl/shader/strip.d.ts.map +1 -0
- package/types/phaser/display/webgl/shader_manager.d.ts +24 -0
- package/types/phaser/display/webgl/shader_manager.d.ts.map +1 -0
- package/types/phaser/display/webgl/sprite_batch.d.ts +36 -0
- package/types/phaser/display/webgl/sprite_batch.d.ts.map +1 -0
- package/types/phaser/display/webgl/stencil_manager.d.ts +12 -0
- package/types/phaser/display/webgl/stencil_manager.d.ts.map +1 -0
- package/types/phaser/display/webgl/texture.d.ts +30 -0
- package/types/phaser/display/webgl/texture.d.ts.map +1 -0
- package/types/phaser/display/webgl/texture_util.d.ts +17 -0
- package/types/phaser/display/webgl/texture_util.d.ts.map +1 -0
- package/types/phaser/display/webgl/util.d.ts +45 -0
- package/types/phaser/display/webgl/util.d.ts.map +1 -0
- package/types/phaser/geom/circle.d.ts +46 -0
- package/types/phaser/geom/circle.d.ts.map +1 -0
- package/types/phaser/geom/ellipse.d.ts +26 -0
- package/types/phaser/geom/ellipse.d.ts.map +1 -0
- package/types/phaser/geom/line.d.ts +45 -0
- package/types/phaser/geom/line.d.ts.map +1 -0
- package/types/phaser/geom/matrix.d.ts +35 -0
- package/types/phaser/geom/matrix.d.ts.map +1 -0
- package/types/phaser/geom/point.d.ts +43 -0
- package/types/phaser/geom/point.d.ts.map +1 -0
- package/types/phaser/geom/polygon.d.ts +17 -0
- package/types/phaser/geom/polygon.d.ts.map +1 -0
- package/types/phaser/geom/rectangle.d.ts +71 -0
- package/types/phaser/geom/rectangle.d.ts.map +1 -0
- package/types/phaser/geom/rounded_rectangle.d.ts +21 -0
- package/types/phaser/geom/rounded_rectangle.d.ts.map +1 -0
- package/types/phaser/geom/util/circle.d.ts +64 -0
- package/types/phaser/geom/util/circle.d.ts.map +1 -0
- package/types/phaser/geom/util/ellipse.d.ts +16 -0
- package/types/phaser/geom/util/ellipse.d.ts.map +1 -0
- package/types/phaser/geom/util/line.d.ts +49 -0
- package/types/phaser/geom/util/line.d.ts.map +1 -0
- package/types/phaser/geom/util/matrix.d.ts +22 -0
- package/types/phaser/geom/util/matrix.d.ts.map +1 -0
- package/types/phaser/geom/util/point.d.ts +179 -0
- package/types/phaser/geom/util/point.d.ts.map +1 -0
- package/types/phaser/geom/util/polygon.d.ts +10 -0
- package/types/phaser/geom/util/polygon.d.ts.map +1 -0
- package/types/phaser/geom/util/rectangle.d.ts +141 -0
- package/types/phaser/geom/util/rectangle.d.ts.map +1 -0
- package/types/phaser/geom/util/rounded_rectangle.d.ts +10 -0
- package/types/phaser/geom/util/rounded_rectangle.d.ts.map +1 -0
- package/types/phaser/util/math.d.ts +182 -0
- 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)) &
|
|
99
|
-
x = (x | (x << 4)) &
|
|
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)) &
|
|
103
|
-
y = (y | (y << 4)) &
|
|
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 (
|
|
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
|
|
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 (
|
|
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
|
|
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 (
|
|
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
|
|
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)
|
|
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) :
|
|
341
|
-
const minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) :
|
|
342
|
-
const maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) :
|
|
343
|
-
const maxTY = a.y > b.y ? (a.y > c.y ? a.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 (
|
|
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 (
|
|
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 ===
|
|
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 (
|
|
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
|
}
|