@math.gl/polygon 4.2.0-alpha.5 → 5.0.0-alpha.1
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/dist/index.cjs +23 -9
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/polygon-utils.d.ts +18 -10
- package/dist/polygon-utils.d.ts.map +1 -1
- package/dist/polygon-utils.js +20 -8
- package/dist/polygon-utils.js.map +1 -1
- package/dist/polygon.d.ts +5 -5
- package/dist/polygon.d.ts.map +1 -1
- package/dist/polygon.js +8 -3
- package/dist/polygon.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/polygon-utils.ts +28 -12
- package/src/polygon.ts +9 -6
package/dist/index.cjs
CHANGED
|
@@ -41,10 +41,12 @@ var import_core2 = require("@math.gl/core");
|
|
|
41
41
|
|
|
42
42
|
// dist/polygon-utils.js
|
|
43
43
|
var import_core = require("@math.gl/core");
|
|
44
|
-
var WINDING
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
var WINDING;
|
|
45
|
+
(function(WINDING2) {
|
|
46
|
+
WINDING2["CLOCKWISE"] = "clockwise";
|
|
47
|
+
WINDING2["COUNTER_CLOCKWISE"] = "counter-clockwise";
|
|
48
|
+
WINDING2["NONE"] = "none";
|
|
49
|
+
})(WINDING || (WINDING = {}));
|
|
48
50
|
function modifyPolygonWindingDirection(points, direction, options = {}) {
|
|
49
51
|
const windingDirection = getPolygonWindingDirection(points, options);
|
|
50
52
|
if (windingDirection !== direction) {
|
|
@@ -54,7 +56,7 @@ function modifyPolygonWindingDirection(points, direction, options = {}) {
|
|
|
54
56
|
return false;
|
|
55
57
|
}
|
|
56
58
|
function getPolygonWindingDirection(points, options = {}) {
|
|
57
|
-
return
|
|
59
|
+
return getWindingDirection(getPolygonSignedArea(points, options));
|
|
58
60
|
}
|
|
59
61
|
var DimIndex = {
|
|
60
62
|
x: 0,
|
|
@@ -108,7 +110,14 @@ function modifyPolygonWindingDirectionPoints(points, direction, options = {}) {
|
|
|
108
110
|
return false;
|
|
109
111
|
}
|
|
110
112
|
function getPolygonWindingDirectionPoints(points, options = {}) {
|
|
111
|
-
return
|
|
113
|
+
return getWindingDirection(getPolygonSignedAreaPoints(points, options));
|
|
114
|
+
}
|
|
115
|
+
function getWindingDirection(signedArea) {
|
|
116
|
+
if (signedArea > 0)
|
|
117
|
+
return "clockwise";
|
|
118
|
+
if (signedArea < 0)
|
|
119
|
+
return "counter-clockwise";
|
|
120
|
+
return "none";
|
|
112
121
|
}
|
|
113
122
|
function getPolygonSignedAreaPoints(points, options = {}) {
|
|
114
123
|
const { start = 0, end = points.length, plane = "xy" } = options;
|
|
@@ -163,10 +172,15 @@ var Polygon = class {
|
|
|
163
172
|
}
|
|
164
173
|
/**
|
|
165
174
|
* Returns winding direction of the polygon.
|
|
166
|
-
* @returns
|
|
175
|
+
* @returns `'clockwise'`, `'counter-clockwise'`, or `'none'` for a degenerate polygon.
|
|
167
176
|
*/
|
|
168
177
|
getWindingDirection() {
|
|
169
|
-
|
|
178
|
+
const signedArea = this.getSignedArea();
|
|
179
|
+
if (signedArea > 0)
|
|
180
|
+
return "clockwise";
|
|
181
|
+
if (signedArea < 0)
|
|
182
|
+
return "counter-clockwise";
|
|
183
|
+
return "none";
|
|
170
184
|
}
|
|
171
185
|
/**
|
|
172
186
|
* Calls the visitor callback for each segment in the polygon.
|
|
@@ -188,7 +202,7 @@ var Polygon = class {
|
|
|
188
202
|
}
|
|
189
203
|
/**
|
|
190
204
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
191
|
-
* @param direction Requested winding direction.
|
|
205
|
+
* @param direction Requested winding direction.
|
|
192
206
|
* @return Returns true if the winding direction was changed.
|
|
193
207
|
*/
|
|
194
208
|
modifyWindingDirection(direction) {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/polygon.ts", "../src/polygon-utils.ts", "../src/earcut.ts", "../src/utils.ts", "../src/lineclip.ts", "../src/cut-by-grid.ts", "../src/cut-by-mercator-bounds.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["import_core", "area", "area", "equals"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["import_core", "WINDING", "area", "area", "equals"]
|
|
6
6
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { Polygon } from "./polygon.js";
|
|
2
2
|
export { getPolygonSignedArea, getPolygonWindingDirection, forEachSegmentInPolygon, modifyPolygonWindingDirection, WINDING } from "./polygon-utils.js";
|
|
3
|
+
export type { PolygonWinding, WindingDirection } from "./polygon-utils.js";
|
|
3
4
|
export { earcut } from "./earcut.js";
|
|
4
5
|
export { clipPolygon, clipPolyline } from "./lineclip.js";
|
|
5
6
|
export { cutPolygonByGrid, cutPolylineByGrid } from "./cut-by-grid.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAElC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,OAAO,EACR,2BAAwB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAElC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,OAAO,EACR,2BAAwB;AACzB,YAAY,EAAC,cAAc,EAAE,gBAAgB,EAAC,2BAAwB;AAEtE,OAAO,EAAC,MAAM,EAAC,oBAAiB;AAEhC,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,sBAAmB;AAErD,OAAO,EAAC,gBAAgB,EAAE,iBAAiB,EAAC,yBAAsB;AAElE,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAC,oCAAiC;AAEjG,kBAAkB;AAClB,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,qBAAkB"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAElC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,OAAO,EACR,2BAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAElC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,OAAO,EACR,2BAAwB;AAGzB,OAAO,EAAC,MAAM,EAAC,oBAAiB;AAEhC,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,sBAAmB;AAErD,OAAO,EAAC,gBAAgB,EAAE,iBAAiB,EAAC,yBAAsB;AAElE,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAC,oCAAiC;AAEjG,kBAAkB;AAClB,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,qBAAkB"}
|
package/dist/polygon-utils.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { NumericArray } from '@math.gl/core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/** Direction in which a polygon's vertices are ordered. */
|
|
3
|
+
export type WindingDirection = 'clockwise' | 'counter-clockwise' | 'none';
|
|
4
|
+
/** A non-degenerate polygon winding direction. */
|
|
5
|
+
export type PolygonWinding = Exclude<WindingDirection, 'none'>;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated Use the string values of {@link WindingDirection} directly.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum WINDING {
|
|
10
|
+
CLOCKWISE = "clockwise",
|
|
11
|
+
COUNTER_CLOCKWISE = "counter-clockwise",
|
|
12
|
+
NONE = "none"
|
|
13
|
+
}
|
|
6
14
|
/** Polygon representation where each point is represented as a separate array of positions. */
|
|
7
15
|
type PointsArray = NumericArray[];
|
|
8
16
|
/** Segment visitor callback type for polygons defined with flat arrays, */
|
|
@@ -41,18 +49,18 @@ type PolygonParams = {
|
|
|
41
49
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
42
50
|
* Note: points are modified in-place.
|
|
43
51
|
* @param points An array that represents points of the polygon.
|
|
44
|
-
* @param direction Requested winding direction.
|
|
52
|
+
* @param direction Requested winding direction.
|
|
45
53
|
* @param options Parameters of the polygon.
|
|
46
54
|
* @return Returns true if the winding direction was changed.
|
|
47
55
|
*/
|
|
48
|
-
export declare function modifyPolygonWindingDirection(points: NumericArray, direction:
|
|
56
|
+
export declare function modifyPolygonWindingDirection(points: NumericArray, direction: PolygonWinding, options?: PolygonParams): boolean;
|
|
49
57
|
/**
|
|
50
58
|
* Returns winding direction of the polygon.
|
|
51
59
|
* @param points An array that represents points of the polygon.
|
|
52
60
|
* @param options Parameters of the polygon.
|
|
53
61
|
* @returns Winding direction of the polygon.
|
|
54
62
|
*/
|
|
55
|
-
export declare function getPolygonWindingDirection(points: NumericArray, options?: PolygonParams):
|
|
63
|
+
export declare function getPolygonWindingDirection(points: NumericArray, options?: PolygonParams): WindingDirection;
|
|
56
64
|
export declare const DimIndex: Record<string, number>;
|
|
57
65
|
/**
|
|
58
66
|
* Returns signed area of the polygon.
|
|
@@ -73,18 +81,18 @@ export declare function forEachSegmentInPolygon(points: NumericArray, visitor: S
|
|
|
73
81
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
74
82
|
* Note: points are modified in-place.
|
|
75
83
|
* @param points Array of points that represent the polygon.
|
|
76
|
-
* @param direction Requested winding direction.
|
|
84
|
+
* @param direction Requested winding direction.
|
|
77
85
|
* @param options Parameters of the polygon.
|
|
78
86
|
* @return Returns true if the winding direction was changed.
|
|
79
87
|
*/
|
|
80
|
-
export declare function modifyPolygonWindingDirectionPoints(points: PointsArray, direction:
|
|
88
|
+
export declare function modifyPolygonWindingDirectionPoints(points: PointsArray, direction: PolygonWinding, options?: PolygonParams): boolean;
|
|
81
89
|
/**
|
|
82
90
|
* Returns winding direction of the polygon.
|
|
83
91
|
* @param points Array of points that represent the polygon.
|
|
84
92
|
* @param options Parameters of the polygon.
|
|
85
93
|
* @returns Winding direction of the polygon.
|
|
86
94
|
*/
|
|
87
|
-
export declare function getPolygonWindingDirectionPoints(points: PointsArray, options?: PolygonParams):
|
|
95
|
+
export declare function getPolygonWindingDirectionPoints(points: PointsArray, options?: PolygonParams): WindingDirection;
|
|
88
96
|
/**
|
|
89
97
|
* Returns signed area of the polygon.
|
|
90
98
|
* @param points Array of points that represent the polygon.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-utils.d.ts","sourceRoot":"","sources":["../src/polygon-utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"polygon-utils.d.ts","sourceRoot":"","sources":["../src/polygon-utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE1E,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE/D;;GAEG;AACH,oBAAY,OAAO;IACjB,SAAS,cAAc;IACvB,iBAAiB,sBAAsB;IACvC,IAAI,SAAS;CACd;AAED,+FAA+F;AAC/F,KAAK,WAAW,GAAG,YAAY,EAAE,CAAC;AAElC,2EAA2E;AAC3E,KAAK,kBAAkB,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,KACP,IAAI,CAAC;AAEV,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAAG,CACjC,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,KACP,IAAI,CAAC;AAEV,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,+BAA+B;AAC/B,KAAK,aAAa,GAAG;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B,gBAAgB,CAElB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlC,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAY9F;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,aAAkB,GAC1B,IAAI,CA+BN;AAqBD;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,aAAkB,GAC1B,gBAAgB,CAElB;AAQD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAYR;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,aAAkB,GAC1B,IAAI,CAUN"}
|
package/dist/polygon-utils.js
CHANGED
|
@@ -3,15 +3,20 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
/* eslint-disable max-statements, max-depth, complexity, no-unused-expressions */
|
|
5
5
|
import { equals } from '@math.gl/core';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated Use the string values of {@link WindingDirection} directly.
|
|
8
|
+
*/
|
|
9
|
+
export var WINDING;
|
|
10
|
+
(function (WINDING) {
|
|
11
|
+
WINDING["CLOCKWISE"] = "clockwise";
|
|
12
|
+
WINDING["COUNTER_CLOCKWISE"] = "counter-clockwise";
|
|
13
|
+
WINDING["NONE"] = "none";
|
|
14
|
+
})(WINDING || (WINDING = {}));
|
|
10
15
|
/**
|
|
11
16
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
12
17
|
* Note: points are modified in-place.
|
|
13
18
|
* @param points An array that represents points of the polygon.
|
|
14
|
-
* @param direction Requested winding direction.
|
|
19
|
+
* @param direction Requested winding direction.
|
|
15
20
|
* @param options Parameters of the polygon.
|
|
16
21
|
* @return Returns true if the winding direction was changed.
|
|
17
22
|
*/
|
|
@@ -30,7 +35,7 @@ export function modifyPolygonWindingDirection(points, direction, options = {}) {
|
|
|
30
35
|
* @returns Winding direction of the polygon.
|
|
31
36
|
*/
|
|
32
37
|
export function getPolygonWindingDirection(points, options = {}) {
|
|
33
|
-
return
|
|
38
|
+
return getWindingDirection(getPolygonSignedArea(points, options));
|
|
34
39
|
}
|
|
35
40
|
export const DimIndex = {
|
|
36
41
|
x: 0,
|
|
@@ -94,7 +99,7 @@ function reversePolygon(points, options) {
|
|
|
94
99
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
95
100
|
* Note: points are modified in-place.
|
|
96
101
|
* @param points Array of points that represent the polygon.
|
|
97
|
-
* @param direction Requested winding direction.
|
|
102
|
+
* @param direction Requested winding direction.
|
|
98
103
|
* @param options Parameters of the polygon.
|
|
99
104
|
* @return Returns true if the winding direction was changed.
|
|
100
105
|
*/
|
|
@@ -113,7 +118,14 @@ export function modifyPolygonWindingDirectionPoints(points, direction, options =
|
|
|
113
118
|
* @returns Winding direction of the polygon.
|
|
114
119
|
*/
|
|
115
120
|
export function getPolygonWindingDirectionPoints(points, options = {}) {
|
|
116
|
-
return
|
|
121
|
+
return getWindingDirection(getPolygonSignedAreaPoints(points, options));
|
|
122
|
+
}
|
|
123
|
+
function getWindingDirection(signedArea) {
|
|
124
|
+
if (signedArea > 0)
|
|
125
|
+
return 'clockwise';
|
|
126
|
+
if (signedArea < 0)
|
|
127
|
+
return 'counter-clockwise';
|
|
128
|
+
return 'none';
|
|
117
129
|
}
|
|
118
130
|
/**
|
|
119
131
|
* Returns signed area of the polygon.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-utils.js","sourceRoot":"","sources":["../src/polygon-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,uCAAuC;AACvC,oCAAoC;AAEpC,iFAAiF;AAEjF,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"polygon-utils.js","sourceRoot":"","sources":["../src/polygon-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/polygon.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SegmentVisitorPoints } from "./polygon-utils.js";
|
|
1
|
+
import type { PolygonWinding, SegmentVisitorPoints, WindingDirection } from "./polygon-utils.js";
|
|
2
2
|
import type { NumericArray } from '@math.gl/core';
|
|
3
3
|
export type PolygonOptions = {
|
|
4
4
|
start?: number;
|
|
@@ -23,9 +23,9 @@ export declare class Polygon {
|
|
|
23
23
|
getArea(): number;
|
|
24
24
|
/**
|
|
25
25
|
* Returns winding direction of the polygon.
|
|
26
|
-
* @returns
|
|
26
|
+
* @returns `'clockwise'`, `'counter-clockwise'`, or `'none'` for a degenerate polygon.
|
|
27
27
|
*/
|
|
28
|
-
getWindingDirection():
|
|
28
|
+
getWindingDirection(): WindingDirection;
|
|
29
29
|
/**
|
|
30
30
|
* Calls the visitor callback for each segment in the polygon.
|
|
31
31
|
* @param visitor A callback to call for each segment.
|
|
@@ -33,9 +33,9 @@ export declare class Polygon {
|
|
|
33
33
|
forEachSegment(visitor: SegmentVisitorPoints): void;
|
|
34
34
|
/**
|
|
35
35
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
36
|
-
* @param direction Requested winding direction.
|
|
36
|
+
* @param direction Requested winding direction.
|
|
37
37
|
* @return Returns true if the winding direction was changed.
|
|
38
38
|
*/
|
|
39
|
-
modifyWindingDirection(direction:
|
|
39
|
+
modifyWindingDirection(direction: PolygonWinding): boolean;
|
|
40
40
|
}
|
|
41
41
|
//# sourceMappingURL=polygon.d.ts.map
|
package/dist/polygon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,oBAAoB,EAAC,2BAAwB;
|
|
1
|
+
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,EAAC,2BAAwB;AAC5F,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAWhD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAAa,OAAO;IAClB,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;gBAEZ,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,EAAE,OAAO,GAAE,cAAmB;IAc3E;;;OAGG;IACH,aAAa,IAAI,MAAM;IAMvB;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,mBAAmB,IAAI,gBAAgB;IAOvC;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAgBnD;;;;OAIG;IACH,sBAAsB,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO;CAM3D"}
|
package/dist/polygon.js
CHANGED
|
@@ -34,10 +34,15 @@ export class Polygon {
|
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Returns winding direction of the polygon.
|
|
37
|
-
* @returns
|
|
37
|
+
* @returns `'clockwise'`, `'counter-clockwise'`, or `'none'` for a degenerate polygon.
|
|
38
38
|
*/
|
|
39
39
|
getWindingDirection() {
|
|
40
|
-
|
|
40
|
+
const signedArea = this.getSignedArea();
|
|
41
|
+
if (signedArea > 0)
|
|
42
|
+
return 'clockwise';
|
|
43
|
+
if (signedArea < 0)
|
|
44
|
+
return 'counter-clockwise';
|
|
45
|
+
return 'none';
|
|
41
46
|
}
|
|
42
47
|
/**
|
|
43
48
|
* Calls the visitor callback for each segment in the polygon.
|
|
@@ -58,7 +63,7 @@ export class Polygon {
|
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
65
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
61
|
-
* @param direction Requested winding direction.
|
|
66
|
+
* @param direction Requested winding direction.
|
|
62
67
|
* @return Returns true if the winding direction was changed.
|
|
63
68
|
*/
|
|
64
69
|
modifyWindingDirection(direction) {
|
package/dist/polygon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,yCAAyC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAItC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,EAC7B,mCAAmC,EACpC,2BAAwB;AASzB,MAAM,OAAO,OAAO;IAKlB,YAAY,MAAiC,EAAE,UAA0B,EAAE;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;YACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7F,OAAO,0BAA0B,CAAC,IAAI,CAAC,MAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,
|
|
1
|
+
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,yCAAyC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAItC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,EAC7B,mCAAmC,EACpC,2BAAwB;AASzB,MAAM,OAAO,OAAO;IAKlB,YAAY,MAAiC,EAAE,UAA0B,EAAE;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;YACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7F,OAAO,0BAA0B,CAAC,IAAI,CAAC,MAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,UAAU,GAAG,CAAC;YAAE,OAAO,WAAW,CAAC;QACvC,IAAI,UAAU,GAAG,CAAC;YAAE,OAAO,mBAAmB,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,OAA6B;QAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,uBAAuB,CACrB,IAAI,CAAC,MAAsB;YAC3B,sCAAsC;YACtC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBACzB,iJAAiJ;gBACjJ,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC,EACD,IAAI,CAAC,OAAO,CACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,6BAA6B,CAAC,IAAI,CAAC,MAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,SAAyB;QAC9C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,6BAA6B,CAAC,IAAI,CAAC,MAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,mCAAmC,CAAC,IAAI,CAAC,MAAoB,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjG,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "5.0.0-alpha.1",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"webgl",
|
|
12
12
|
"javascript",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"src"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@math.gl/core": "
|
|
36
|
+
"@math.gl/core": "5.0.0-alpha.1"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "0c9bf3e5da10ce0fdafe84f3a8520c5ed9c15211"
|
|
39
39
|
}
|
package/src/index.ts
CHANGED
package/src/polygon-utils.ts
CHANGED
|
@@ -7,10 +7,20 @@
|
|
|
7
7
|
import {equals} from '@math.gl/core';
|
|
8
8
|
import type {NumericArray} from '@math.gl/core';
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/** Direction in which a polygon's vertices are ordered. */
|
|
11
|
+
export type WindingDirection = 'clockwise' | 'counter-clockwise' | 'none';
|
|
12
|
+
|
|
13
|
+
/** A non-degenerate polygon winding direction. */
|
|
14
|
+
export type PolygonWinding = Exclude<WindingDirection, 'none'>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Use the string values of {@link WindingDirection} directly.
|
|
18
|
+
*/
|
|
19
|
+
export enum WINDING {
|
|
20
|
+
CLOCKWISE = 'clockwise',
|
|
21
|
+
COUNTER_CLOCKWISE = 'counter-clockwise',
|
|
22
|
+
NONE = 'none'
|
|
23
|
+
}
|
|
14
24
|
|
|
15
25
|
/** Polygon representation where each point is represented as a separate array of positions. */
|
|
16
26
|
type PointsArray = NumericArray[];
|
|
@@ -67,13 +77,13 @@ type PolygonParams = {
|
|
|
67
77
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
68
78
|
* Note: points are modified in-place.
|
|
69
79
|
* @param points An array that represents points of the polygon.
|
|
70
|
-
* @param direction Requested winding direction.
|
|
80
|
+
* @param direction Requested winding direction.
|
|
71
81
|
* @param options Parameters of the polygon.
|
|
72
82
|
* @return Returns true if the winding direction was changed.
|
|
73
83
|
*/
|
|
74
84
|
export function modifyPolygonWindingDirection(
|
|
75
85
|
points: NumericArray,
|
|
76
|
-
direction:
|
|
86
|
+
direction: PolygonWinding,
|
|
77
87
|
options: PolygonParams = {}
|
|
78
88
|
): boolean {
|
|
79
89
|
const windingDirection = getPolygonWindingDirection(points, options);
|
|
@@ -93,8 +103,8 @@ export function modifyPolygonWindingDirection(
|
|
|
93
103
|
export function getPolygonWindingDirection(
|
|
94
104
|
points: NumericArray,
|
|
95
105
|
options: PolygonParams = {}
|
|
96
|
-
):
|
|
97
|
-
return
|
|
106
|
+
): WindingDirection {
|
|
107
|
+
return getWindingDirection(getPolygonSignedArea(points, options));
|
|
98
108
|
}
|
|
99
109
|
|
|
100
110
|
export const DimIndex: Record<string, number> = {
|
|
@@ -190,13 +200,13 @@ function reversePolygon(
|
|
|
190
200
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
191
201
|
* Note: points are modified in-place.
|
|
192
202
|
* @param points Array of points that represent the polygon.
|
|
193
|
-
* @param direction Requested winding direction.
|
|
203
|
+
* @param direction Requested winding direction.
|
|
194
204
|
* @param options Parameters of the polygon.
|
|
195
205
|
* @return Returns true if the winding direction was changed.
|
|
196
206
|
*/
|
|
197
207
|
export function modifyPolygonWindingDirectionPoints(
|
|
198
208
|
points: PointsArray,
|
|
199
|
-
direction:
|
|
209
|
+
direction: PolygonWinding,
|
|
200
210
|
options: PolygonParams = {}
|
|
201
211
|
): boolean {
|
|
202
212
|
const currentDirection = getPolygonWindingDirectionPoints(points, options);
|
|
@@ -216,8 +226,14 @@ export function modifyPolygonWindingDirectionPoints(
|
|
|
216
226
|
export function getPolygonWindingDirectionPoints(
|
|
217
227
|
points: PointsArray,
|
|
218
228
|
options: PolygonParams = {}
|
|
219
|
-
):
|
|
220
|
-
return
|
|
229
|
+
): WindingDirection {
|
|
230
|
+
return getWindingDirection(getPolygonSignedAreaPoints(points, options));
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function getWindingDirection(signedArea: number): WindingDirection {
|
|
234
|
+
if (signedArea > 0) return 'clockwise';
|
|
235
|
+
if (signedArea < 0) return 'counter-clockwise';
|
|
236
|
+
return 'none';
|
|
221
237
|
}
|
|
222
238
|
|
|
223
239
|
/**
|
package/src/polygon.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
/* eslint-disable no-undef, no-console */
|
|
6
6
|
import {isArray} from '@math.gl/core';
|
|
7
|
-
import type {SegmentVisitorPoints} from './polygon-utils';
|
|
7
|
+
import type {PolygonWinding, SegmentVisitorPoints, WindingDirection} from './polygon-utils';
|
|
8
8
|
import type {NumericArray} from '@math.gl/core';
|
|
9
9
|
|
|
10
10
|
import {
|
|
@@ -62,10 +62,13 @@ export class Polygon {
|
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* Returns winding direction of the polygon.
|
|
65
|
-
* @returns
|
|
65
|
+
* @returns `'clockwise'`, `'counter-clockwise'`, or `'none'` for a degenerate polygon.
|
|
66
66
|
*/
|
|
67
|
-
getWindingDirection():
|
|
68
|
-
|
|
67
|
+
getWindingDirection(): WindingDirection {
|
|
68
|
+
const signedArea = this.getSignedArea();
|
|
69
|
+
if (signedArea > 0) return 'clockwise';
|
|
70
|
+
if (signedArea < 0) return 'counter-clockwise';
|
|
71
|
+
return 'none';
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
/**
|
|
@@ -90,10 +93,10 @@ export class Polygon {
|
|
|
90
93
|
|
|
91
94
|
/**
|
|
92
95
|
* Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.
|
|
93
|
-
* @param direction Requested winding direction.
|
|
96
|
+
* @param direction Requested winding direction.
|
|
94
97
|
* @return Returns true if the winding direction was changed.
|
|
95
98
|
*/
|
|
96
|
-
modifyWindingDirection(direction:
|
|
99
|
+
modifyWindingDirection(direction: PolygonWinding): boolean {
|
|
97
100
|
if (this.isFlatArray) {
|
|
98
101
|
return modifyPolygonWindingDirection(this.points as NumericArray, direction, this.options);
|
|
99
102
|
}
|