@math.gl/polygon 4.0.0-alpha.1 → 4.0.0-alpha.2
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/cut-by-grid.d.ts +1 -1
- package/dist/cut-by-grid.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lineclip.d.ts +1 -1
- package/dist/lineclip.d.ts.map +1 -1
- package/dist/polygon-utils.d.ts +5 -5
- package/dist/polygon-utils.d.ts.map +1 -1
- package/dist/polygon.d.ts +2 -2
- package/dist/polygon.d.ts.map +1 -1
- package/dist/polygon.js +1 -1
- package/dist/polygon.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +3 -3
- package/src/polygon.ts +1 -1
package/dist/cut-by-grid.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cut-by-grid.d.ts","sourceRoot":"","sources":["../src/cut-by-grid.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"cut-by-grid.d.ts","sourceRoot":"","sources":["../src/cut-by-grid.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,oBAAY,OAAO,GAAG;IACpB,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAkDvB;AAmBD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EACjC,WAAW,GAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAW,EACjD,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACA,OAAO,EAAE,CAmEX"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { Polygon } from './polygon';
|
|
2
2
|
export { getPolygonSignedArea, getPolygonWindingDirection, forEachSegmentInPolygon, modifyPolygonWindingDirection, WINDING } from './polygon-utils';
|
|
3
3
|
export { earcut } from './earcut';
|
|
4
4
|
export { clipPolygon, clipPolyline } from './lineclip';
|
|
5
5
|
export { cutPolygonByGrid, cutPolylineByGrid } from './cut-by-grid';
|
|
6
6
|
export { cutPolylineByMercatorBounds, cutPolygonByMercatorBounds } from './cut-by-mercator-bounds';
|
|
7
|
-
|
|
7
|
+
/** @deprecated */
|
|
8
|
+
export { Polygon as _Polygon } from './polygon';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,OAAO,EACR,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAErD,OAAO,EAAC,gBAAgB,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAElE,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAC,MAAM,0BAA0B,CAAC;AAEjG,kBAAkB;AAClB,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { Polygon } from "./polygon.js";
|
|
2
2
|
export { getPolygonSignedArea, getPolygonWindingDirection, forEachSegmentInPolygon, modifyPolygonWindingDirection, WINDING } from "./polygon-utils.js";
|
|
3
3
|
export { earcut } from "./earcut.js";
|
|
4
4
|
export { clipPolygon, clipPolyline } from "./lineclip.js";
|
|
5
5
|
export { cutPolygonByGrid, cutPolylineByGrid } from "./cut-by-grid.js";
|
|
6
6
|
export { cutPolylineByMercatorBounds, cutPolygonByMercatorBounds } from "./cut-by-mercator-bounds.js";
|
|
7
|
-
export {
|
|
7
|
+
export { Polygon as _Polygon } from "./polygon.js";
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["Polygon","getPolygonSignedArea","getPolygonWindingDirection","forEachSegmentInPolygon","modifyPolygonWindingDirection","WINDING","earcut","clipPolygon","clipPolyline","cutPolygonByGrid","cutPolylineByGrid","cutPolylineByMercatorBounds","cutPolygonByMercatorBounds","_Polygon"],"mappings":"SAAQA,O;SAGNC,oB,EACAC,0B,EACAC,uB,EACAC,6B,EACAC,O;SAGMC,M;SAEAC,W,EAAaC,Y;SAEbC,gB,EAAkBC,iB;SAElBC,2B,EAA6BC,0B;SAG7BZ,OAAO,IAAIa,Q","sourcesContent":["export {Polygon} from './polygon';\n\nexport {\n getPolygonSignedArea,\n getPolygonWindingDirection,\n forEachSegmentInPolygon,\n modifyPolygonWindingDirection,\n WINDING\n} from './polygon-utils';\n\nexport {earcut} from './earcut';\n\nexport {clipPolygon, clipPolyline} from './lineclip';\n\nexport {cutPolygonByGrid, cutPolylineByGrid} from './cut-by-grid';\n\nexport {cutPolylineByMercatorBounds, cutPolygonByMercatorBounds} from './cut-by-mercator-bounds';\n\n/** @deprecated */\nexport {Polygon as _Polygon} from './polygon';\n"],"file":"index.js"}
|
package/dist/lineclip.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NumericArray } from '@math.gl/core';
|
|
2
|
-
export type BoundingBox = [number, number, number, number];
|
|
2
|
+
export declare type BoundingBox = [number, number, number, number];
|
|
3
3
|
/**
|
|
4
4
|
* Cohen-Sutherland line clipping algorithm, adapted to efficiently
|
|
5
5
|
* handle polylines rather than just segments
|
package/dist/lineclip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineclip.d.ts","sourceRoot":"","sources":["../src/lineclip.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"lineclip.d.ts","sourceRoot":"","sources":["../src/lineclip.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,oBAAY,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EACjC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,EAAE,EAAE,CA0DZ;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EACjC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,EAAE,CAsCV;AAED,2EAA2E;AAE3E,wBAAgB,SAAS,CACvB,CAAC,EAAE,MAAM,EAAE,EACX,CAAC,EAAE,MAAM,EAAE,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,GAAG,GAAE,MAAM,EAAO,GACjB,MAAM,EAAE,CA6BV;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAY9D"}
|
package/dist/polygon-utils.d.ts
CHANGED
|
@@ -4,14 +4,14 @@ export declare const WINDING: {
|
|
|
4
4
|
readonly COUNTER_CLOCKWISE: -1;
|
|
5
5
|
};
|
|
6
6
|
/** Polygon representation where each point is represented as a separate array of positions. */
|
|
7
|
-
type PointsArray = NumericArray[];
|
|
7
|
+
declare type PointsArray = NumericArray[];
|
|
8
8
|
/** Segment visitor callback type for polygons defined with flat arrays, */
|
|
9
|
-
type SegmentVisitorFlat = (p1x: number, p1y: number, p2x: number, p2y: number, i1: number, i2: number) => void;
|
|
9
|
+
declare type SegmentVisitorFlat = (p1x: number, p1y: number, p2x: number, p2y: number, i1: number, i2: number) => void;
|
|
10
10
|
/** Segment visitor callback type for polygons defined with array of points. */
|
|
11
|
-
export type SegmentVisitorPoints = (p1: NumericArray, p2: NumericArray, i1: number, i2: number) => void;
|
|
12
|
-
export type Plane2D = 'xy' | 'yz' | 'xz';
|
|
11
|
+
export declare type SegmentVisitorPoints = (p1: NumericArray, p2: NumericArray, i1: number, i2: number) => void;
|
|
12
|
+
export declare type Plane2D = 'xy' | 'yz' | 'xz';
|
|
13
13
|
/** Parameters of a polygon. */
|
|
14
|
-
type PolygonParams = {
|
|
14
|
+
declare type PolygonParams = {
|
|
15
15
|
/**
|
|
16
16
|
* Start index of the polygon in the array of positions.
|
|
17
17
|
* @default `0`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-utils.d.ts","sourceRoot":"","sources":["../src/polygon-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,OAAO;;;CAGV,CAAC;AAEX,+FAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"polygon-utils.d.ts","sourceRoot":"","sources":["../src/polygon-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,OAAO;;;CAGV,CAAC;AAEX,+FAA+F;AAC/F,aAAK,WAAW,GAAG,YAAY,EAAE,CAAC;AAElC,2EAA2E;AAC3E,aAAK,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,oBAAY,oBAAoB,GAAG,CACjC,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,KACP,IAAI,CAAC;AAEV,oBAAY,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,+BAA+B;AAC/B,aAAK,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,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAER;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,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAER;AAED;;;;;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.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { SegmentVisitorPoints } from './polygon-utils';
|
|
2
2
|
import type { NumericArray } from '@math.gl/core';
|
|
3
|
-
export type PolygonOptions = {
|
|
3
|
+
export declare type PolygonOptions = {
|
|
4
4
|
start?: number;
|
|
5
5
|
end?: number;
|
|
6
6
|
size?: number;
|
|
7
7
|
isClosed?: boolean;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
9
|
+
export declare class Polygon {
|
|
10
10
|
points: NumericArray | number[][];
|
|
11
11
|
isFlatArray: boolean;
|
|
12
12
|
options: PolygonOptions;
|
package/dist/polygon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAWhD,
|
|
1
|
+
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAWhD,oBAAY,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,MAAM;IAI7B;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAgBnD;;;;OAIG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAMnD"}
|
package/dist/polygon.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import { isArray } from '@math.gl/core';
|
|
3
3
|
import { getPolygonSignedArea, forEachSegmentInPolygon, modifyPolygonWindingDirection, getPolygonSignedAreaPoints, forEachSegmentInPolygonPoints, modifyPolygonWindingDirectionPoints } from "./polygon-utils.js";
|
|
4
|
-
export
|
|
4
|
+
export class Polygon {
|
|
5
5
|
constructor(points, options = {}) {
|
|
6
6
|
_defineProperty(this, "points", void 0);
|
|
7
7
|
|
package/dist/polygon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/polygon.ts"],"names":["isArray","getPolygonSignedArea","forEachSegmentInPolygon","modifyPolygonWindingDirection","getPolygonSignedAreaPoints","forEachSegmentInPolygonPoints","modifyPolygonWindingDirectionPoints","Polygon","constructor","points","options","isFlatArray","start","end","length","size","isClosed","Object","freeze","getSignedArea","getArea","Math","abs","getWindingDirection","sign","forEachSegment","visitor","x1","y1","x2","y2","i1","i2","modifyWindingDirection","direction"],"mappings":";AACA,SAAQA,OAAR,QAAsB,eAAtB;SAKEC,oB,EACAC,uB,EACAC,6B,EACAC,0B,EACAC,6B,EACAC,mC;AAUF,
|
|
1
|
+
{"version":3,"sources":["../src/polygon.ts"],"names":["isArray","getPolygonSignedArea","forEachSegmentInPolygon","modifyPolygonWindingDirection","getPolygonSignedAreaPoints","forEachSegmentInPolygonPoints","modifyPolygonWindingDirectionPoints","Polygon","constructor","points","options","isFlatArray","start","end","length","size","isClosed","Object","freeze","getSignedArea","getArea","Math","abs","getWindingDirection","sign","forEachSegment","visitor","x1","y1","x2","y2","i1","i2","modifyWindingDirection","direction"],"mappings":";AACA,SAAQA,OAAR,QAAsB,eAAtB;SAKEC,oB,EACAC,uB,EACAC,6B,EACAC,0B,EACAC,6B,EACAC,mC;AAUF,OAAO,MAAMC,OAAN,CAAc;AAKnBC,EAAAA,WAAW,CAACC,MAAD,EAAoCC,OAAuB,GAAG,EAA9D,EAAkE;AAAA;;AAAA;;AAAA;;AAC3E,SAAKD,MAAL,GAAcA,MAAd;AACA,SAAKE,WAAL,GAAmB,CAACX,OAAO,CAACS,MAAM,CAAC,CAAD,CAAP,CAA3B;AAEA,SAAKC,OAAL,GAAe;AACbE,MAAAA,KAAK,EAAEF,OAAO,CAACE,KAAR,IAAiB,CADX;AAEbC,MAAAA,GAAG,EAAEH,OAAO,CAACG,GAAR,IAAeJ,MAAM,CAACK,MAFd;AAGbC,MAAAA,IAAI,EAAEL,OAAO,CAACK,IAAR,IAAgB,CAHT;AAIbC,MAAAA,QAAQ,EAAEN,OAAO,CAACM;AAJL,KAAf;AAOAC,IAAAA,MAAM,CAACC,MAAP,CAAc,IAAd;AACD;;AAMDC,EAAAA,aAAa,GAAW;AACtB,QAAI,KAAKR,WAAT,EAAsB,OAAOV,oBAAoB,CAAC,KAAKQ,MAAN,EAA8B,KAAKC,OAAnC,CAA3B;AAEtB,WAAON,0BAA0B,CAAC,KAAKK,MAAN,EAA4B,KAAKC,OAAjC,CAAjC;AACD;;AAMDU,EAAAA,OAAO,GAAW;AAChB,WAAOC,IAAI,CAACC,GAAL,CAAS,KAAKH,aAAL,EAAT,CAAP;AACD;;AAMDI,EAAAA,mBAAmB,GAAW;AAC5B,WAAOF,IAAI,CAACG,IAAL,CAAU,KAAKL,aAAL,EAAV,CAAP;AACD;;AAMDM,EAAAA,cAAc,CAACC,OAAD,EAAsC;AAClD,QAAI,KAAKf,WAAT,EAAsB;AACpBT,MAAAA,uBAAuB,CACrB,KAAKO,MADgB,EAGrB,CAACkB,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,EAAiBC,EAAjB,EAAqBC,EAArB,KAA4B;AAE1BN,QAAAA,OAAO,CAAC,CAACC,EAAD,EAAKC,EAAL,CAAD,EAAW,CAACC,EAAD,EAAKC,EAAL,CAAX,EAAqBC,EAArB,EAAyBC,EAAzB,CAAP;AACD,OANoB,EAOrB,KAAKtB,OAPgB,CAAvB;AASD,KAVD,MAUO;AACLL,MAAAA,6BAA6B,CAAC,KAAKI,MAAN,EAA4BiB,OAA5B,EAAqC,KAAKhB,OAA1C,CAA7B;AACD;AACF;;AAODuB,EAAAA,sBAAsB,CAACC,SAAD,EAA6B;AACjD,QAAI,KAAKvB,WAAT,EAAsB;AACpB,aAAOR,6BAA6B,CAAC,KAAKM,MAAN,EAA8ByB,SAA9B,EAAyC,KAAKxB,OAA9C,CAApC;AACD;;AACD,WAAOJ,mCAAmC,CAAC,KAAKG,MAAN,EAA4ByB,SAA5B,EAAuC,KAAKxB,OAA5C,CAA1C;AACD;;AA3EkB","sourcesContent":["/* eslint-disable no-undef, no-console */\nimport {isArray} from '@math.gl/core';\nimport type {SegmentVisitorPoints} from './polygon-utils';\nimport type {NumericArray} from '@math.gl/core';\n\nimport {\n getPolygonSignedArea,\n forEachSegmentInPolygon,\n modifyPolygonWindingDirection,\n getPolygonSignedAreaPoints,\n forEachSegmentInPolygonPoints,\n modifyPolygonWindingDirectionPoints\n} from './polygon-utils';\n\nexport type PolygonOptions = {\n start?: number;\n end?: number;\n size?: number;\n isClosed?: boolean;\n};\n\nexport class Polygon {\n points: NumericArray | number[][];\n isFlatArray: boolean;\n options: PolygonOptions;\n\n constructor(points: NumericArray | number[][], options: PolygonOptions = {}) {\n this.points = points;\n this.isFlatArray = !isArray(points[0]);\n\n this.options = {\n start: options.start || 0,\n end: options.end || points.length,\n size: options.size || 2,\n isClosed: options.isClosed\n };\n\n Object.freeze(this);\n }\n\n /**\n * Returns signed area of the polygon.\n * @returns Signed area of the polygon.\n */\n getSignedArea(): number {\n if (this.isFlatArray) return getPolygonSignedArea(this.points as NumericArray, this.options);\n\n return getPolygonSignedAreaPoints(this.points as number[][], this.options);\n }\n\n /**\n * Returns absolute area of the polygon.\n * @returns Absolute area of the polygon.\n */\n getArea(): number {\n return Math.abs(this.getSignedArea());\n }\n\n /**\n * Returns winding direction of the polygon.\n * @returns Winding direction of the polygon. 1 is for clockwise, -1 for counterclockwise winding direction.\n */\n getWindingDirection(): number {\n return Math.sign(this.getSignedArea());\n }\n\n /**\n * Calls the visitor callback for each segment in the polygon.\n * @param visitor A callback to call for each segment.\n */\n forEachSegment(visitor: SegmentVisitorPoints): void {\n if (this.isFlatArray) {\n forEachSegmentInPolygon(\n this.points as NumericArray,\n // eslint-disable-next-line max-params\n (x1, y1, x2, y2, i1, i2) => {\n // TODO @igorDykhta original visitor uses arrays for each point, but with flat arrays performance degrades if we allocate points for each segment\n visitor([x1, y1], [x2, y2], i1, i2);\n },\n this.options\n );\n } else {\n forEachSegmentInPolygonPoints(this.points as number[][], visitor, this.options);\n }\n }\n\n /**\n * Checks winding direction of the polygon and reverses the polygon in case of opposite winding direction.\n * @param direction Requested winding direction. 1 is for clockwise, -1 for counterclockwise winding direction.\n * @return Returns true if the winding direction was changed.\n */\n modifyWindingDirection(direction: number): boolean {\n if (this.isFlatArray) {\n return modifyPolygonWindingDirection(this.points as NumericArray, direction, this.options);\n }\n return modifyPolygonWindingDirectionPoints(this.points as number[][], direction, this.options);\n }\n}\n"],"file":"polygon.js"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
|
-
"version": "4.0.0-alpha.
|
|
9
|
+
"version": "4.0.0-alpha.2",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"webgl",
|
|
12
12
|
"javascript",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"src"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@math.gl/core": "4.0.0-alpha.
|
|
29
|
+
"@math.gl/core": "4.0.0-alpha.2"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "2e693639e3cf898fee8e323c93efdd07be7c2ca7"
|
|
32
32
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {Polygon} from './polygon';
|
|
2
2
|
|
|
3
3
|
export {
|
|
4
4
|
getPolygonSignedArea,
|
|
@@ -16,5 +16,5 @@ export {cutPolygonByGrid, cutPolylineByGrid} from './cut-by-grid';
|
|
|
16
16
|
|
|
17
17
|
export {cutPolylineByMercatorBounds, cutPolygonByMercatorBounds} from './cut-by-mercator-bounds';
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
export {
|
|
19
|
+
/** @deprecated */
|
|
20
|
+
export {Polygon as _Polygon} from './polygon';
|