@thi.ng/geom-voronoi 1.0.4 → 2.0.3

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/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [1.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@1.0.3...@thi.ng/geom-voronoi@1.0.4) (2021-08-19)
6
+ ## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@2.0.2...@thi.ng/geom-voronoi@2.0.3) (2021-10-15)
7
7
 
8
8
  **Note:** Version bump only for package @thi.ng/geom-voronoi
9
9
 
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- ## [1.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@1.0.2...@thi.ng/geom-voronoi@1.0.3) (2021-08-19)
14
+ ## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@2.0.1...@thi.ng/geom-voronoi@2.0.2) (2021-10-15)
15
15
 
16
16
  **Note:** Version bump only for package @thi.ng/geom-voronoi
17
17
 
@@ -19,7 +19,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
19
19
 
20
20
 
21
21
 
22
- ## [1.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@1.0.1...@thi.ng/geom-voronoi@1.0.2) (2021-08-17)
22
+ ## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@2.0.0...@thi.ng/geom-voronoi@2.0.1) (2021-10-13)
23
23
 
24
24
  **Note:** Version bump only for package @thi.ng/geom-voronoi
25
25
 
@@ -27,96 +27,62 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
27
27
 
28
28
 
29
29
 
30
- ## [1.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.40...@thi.ng/geom-voronoi@1.0.1) (2021-08-08)
31
-
32
- **Note:** Version bump only for package @thi.ng/geom-voronoi
33
-
34
-
35
-
36
-
37
-
38
- ## [0.2.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.39...@thi.ng/geom-voronoi@0.2.40) (2021-08-08)
39
-
40
- **Note:** Version bump only for package @thi.ng/geom-voronoi
41
-
42
-
43
-
44
-
45
-
46
- ## [0.2.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.38...@thi.ng/geom-voronoi@0.2.39) (2021-08-04)
47
-
48
- **Note:** Version bump only for package @thi.ng/geom-voronoi
49
-
50
-
51
-
52
-
53
-
54
- ## [0.2.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.37...@thi.ng/geom-voronoi@0.2.38) (2021-08-04)
55
-
56
- **Note:** Version bump only for package @thi.ng/geom-voronoi
57
-
58
-
59
-
60
-
61
-
62
- ## [0.2.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.36...@thi.ng/geom-voronoi@0.2.37) (2021-07-27)
63
-
64
- **Note:** Version bump only for package @thi.ng/geom-voronoi
65
-
66
-
67
-
68
-
69
-
70
- ## [0.2.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.35...@thi.ng/geom-voronoi@0.2.36) (2021-07-01)
71
-
72
- **Note:** Version bump only for package @thi.ng/geom-voronoi
73
-
74
-
75
-
76
-
77
-
78
- ## [0.2.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.34...@thi.ng/geom-voronoi@0.2.35) (2021-06-08)
79
-
80
- **Note:** Version bump only for package @thi.ng/geom-voronoi
30
+ # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@1.0.5...@thi.ng/geom-voronoi@2.0.0) (2021-10-12)
81
31
 
82
32
 
33
+ ### Build System
83
34
 
35
+ * major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
84
36
 
85
37
 
86
- ## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.1...@thi.ng/geom-voronoi@0.2.2) (2020-07-28)
38
+ ### BREAKING CHANGES
87
39
 
40
+ * discontinue CommonJS & UMD versions
88
41
 
89
- ### Bug Fixes
42
+ - only ESM modules will be published from now on
43
+ - CJS obsolete due to ESM support in recent versions of node:
44
+ - i.e. launch NodeJS via:
45
+ - `node --experimental-specifier-resolution=node --experimental-repl-await`
46
+ - in the node REPL use `await import(...)` instead of `require()`
47
+ - UMD obsolete due to widespread browser support for ESM
90
48
 
91
- * **geom-voronoi:** always computeDual() in ctor ([12e0232](https://github.com/thi-ng/umbrella/commit/12e023265c8d141e6c5f4e539541dfc017fdcfc1))
49
+ Also:
50
+ - normalize/restructure/reorg all package.json files
51
+ - cleanup all build scripts, remove obsolete
52
+ - switch from mocha to @thi.ng/testament for all tests
92
53
 
93
54
 
94
55
 
95
56
 
96
57
 
97
- # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.55...@thi.ng/geom-voronoi@0.2.0) (2020-07-17)
98
58
 
59
+ ## [1.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@1.0.4...@thi.ng/geom-voronoi@1.0.5) (2021-09-03)
99
60
 
100
- ### Features
61
+ **Note:** Version bump only for package @thi.ng/geom-voronoi
101
62
 
102
- * **geom-voronoi:** update DVMesh.add() ([caa341b](https://github.com/thi-ng/umbrella/commit/caa341b8e40630981ca71db1c7cb84e8b30f4cc6))
63
+ ## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.1...@thi.ng/geom-voronoi@0.2.2) (2020-07-28)
103
64
 
65
+ ### Bug Fixes
104
66
 
105
- ### Performance Improvements
67
+ - **geom-voronoi:** always computeDual() in ctor ([12e0232](https://github.com/thi-ng/umbrella/commit/12e023265c8d141e6c5f4e539541dfc017fdcfc1))
106
68
 
107
- * **geom-voronoi:** optimize boundary vertex checks ([e4169bd](https://github.com/thi-ng/umbrella/commit/e4169bd73107b4835c0739676bd296c0e4902b1e))
69
+ # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.55...@thi.ng/geom-voronoi@0.2.0) (2020-07-17)
108
70
 
71
+ ### Features
109
72
 
73
+ - **geom-voronoi:** update DVMesh.add() ([caa341b](https://github.com/thi-ng/umbrella/commit/caa341b8e40630981ca71db1c7cb84e8b30f4cc6))
110
74
 
75
+ ### Performance Improvements
111
76
 
77
+ - **geom-voronoi:** optimize boundary vertex checks ([e4169bd](https://github.com/thi-ng/umbrella/commit/e4169bd73107b4835c0739676bd296c0e4902b1e))
112
78
 
113
- # 0.1.0 (2019-02-05)
79
+ # 0.1.0 (2019-02-05)
114
80
 
115
- ### Features
81
+ ### Features
116
82
 
117
- * **geom-voronoi:** add support for vertex user data, tolerances, refactor QE changes ([2ff68db](https://github.com/thi-ng/umbrella/commit/2ff68db))
118
- * **geom-voronoi:** re-import & update QE delaunay/voronoi pkg (MBP2010) ([c903293](https://github.com/thi-ng/umbrella/commit/c903293))
83
+ - **geom-voronoi:** add support for vertex user data, tolerances, refactor QE changes ([2ff68db](https://github.com/thi-ng/umbrella/commit/2ff68db))
84
+ - **geom-voronoi:** re-import & update QE delaunay/voronoi pkg (MBP2010) ([c903293](https://github.com/thi-ng/umbrella/commit/c903293))
119
85
 
120
- ### Performance Improvements
86
+ ### Performance Improvements
121
87
 
122
- * **geom-voronoi:** update computeDual(), update isBoundary() ([4d19aa2](https://github.com/thi-ng/umbrella/commit/4d19aa2))
88
+ - **geom-voronoi:** update computeDual(), update isBoundary() ([4d19aa2](https://github.com/thi-ng/umbrella/commit/4d19aa2))
package/README.md CHANGED
@@ -52,15 +52,24 @@ in ~850ms (Chrome 72, MBP 2016)
52
52
  yarn add @thi.ng/geom-voronoi
53
53
  ```
54
54
 
55
+ ES module import:
56
+
55
57
  ```html
56
- // ES module
57
- <script type="module" src="https://unpkg.com/@thi.ng/geom-voronoi?module" crossorigin></script>
58
+ <script type="module" src="https://cdn.skypack.dev/@thi.ng/geom-voronoi"></script>
59
+ ```
60
+
61
+ [Skypack documentation](https://docs.skypack.dev/)
62
+
63
+ For Node.js REPL:
64
+
65
+ ```text
66
+ # with flag only for < v16
67
+ node --experimental-repl-await
58
68
 
59
- // UMD
60
- <script src="https://unpkg.com/@thi.ng/geom-voronoi/lib/index.umd.js" crossorigin></script>
69
+ > const geomVoronoi = await import("@thi.ng/geom-voronoi");
61
70
  ```
62
71
 
63
- Package sizes (gzipped, pre-treeshake): ESM: 1.30 KB / CJS: 1.38 KB / UMD: 1.51 KB
72
+ Package sizes (gzipped, pre-treeshake): ESM: 1.35 KB
64
73
 
65
74
  ## Dependencies
66
75
 
@@ -83,7 +92,7 @@ directory are using this package.
83
92
  A selection:
84
93
 
85
94
  | Screenshot | Description | Live demo | Source |
86
- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------- |
95
+ |:------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|:-------------------------------------------------------|:------------------------------------------------------------------------------------|
87
96
  | <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/geom-voronoi-mst.jpg" width="240"/> | Poisson-disk shape-aware sampling, Voronoi & Minimum Spanning Tree visualization | [Demo](https://demo.thi.ng/umbrella/geom-voronoi-mst/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/geom-voronoi-mst) |
88
97
  | <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/rotating-voronoi.jpg" width="240"/> | Animated Voronoi diagram, cubic splines & SVG download | [Demo](https://demo.thi.ng/umbrella/rotating-voronoi/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/rotating-voronoi) |
89
98
 
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { IObjectOf, Pair } from "@thi.ng/api";
2
2
  import { Edge } from "@thi.ng/quad-edge";
3
- import { ReadonlyVec, Vec, VecPair } from "@thi.ng/vectors";
3
+ import { ReadonlyVec, Vec, VecPair } from "@thi.ng/vectors/api";
4
4
  export declare type Visitor<T> = (e: Edge<Vertex<T>>, visted?: IObjectOf<boolean>, processed?: IObjectOf<boolean>) => void;
5
5
  export interface Vertex<T> {
6
6
  pos: ReadonlyVec;
package/index.js CHANGED
@@ -1,11 +1,14 @@
1
- import { isNumber } from "@thi.ng/checks";
2
- import { liangBarsky2 } from "@thi.ng/geom-clip-line";
1
+ import { isNumber } from "@thi.ng/checks/is-number";
2
+ import { liangBarsky2 } from "@thi.ng/geom-clip-line/liang-barsky";
3
3
  import { sutherlandHodgeman } from "@thi.ng/geom-clip-poly";
4
- import { pointInCircumCircle, pointInPolygon2, pointInSegment, } from "@thi.ng/geom-isec";
5
- import { centroid, circumCenter2 } from "@thi.ng/geom-poly-utils";
6
- import { EPS } from "@thi.ng/math";
4
+ import { pointInCircumCircle, pointInPolygon2, pointInSegment, } from "@thi.ng/geom-isec/point";
5
+ import { centroid } from "@thi.ng/geom-poly-utils/centroid";
6
+ import { circumCenter2 } from "@thi.ng/geom-poly-utils/circumcenter";
7
+ import { EPS } from "@thi.ng/math/api";
7
8
  import { Edge } from "@thi.ng/quad-edge";
8
- import { eqDelta2, signedArea2, ZERO2, } from "@thi.ng/vectors";
9
+ import { ZERO2 } from "@thi.ng/vectors/api";
10
+ import { eqDelta2 } from "@thi.ng/vectors/eqdelta";
11
+ import { signedArea2 } from "@thi.ng/vectors/signed-area";
9
12
  const rightOf = (p, e) => signedArea2(p, e.dest.pos, e.origin.pos) > 0;
10
13
  export class DVMesh {
11
14
  constructor(pts, size = 1e5) {
@@ -177,7 +180,10 @@ export class DVMesh {
177
180
  else {
178
181
  cells.push(verts);
179
182
  }
180
- usedEdges[eab.id] = usedEdges[ebc.id] = usedEdges[eca.id] = true;
183
+ usedEdges[eab.id] =
184
+ usedEdges[ebc.id] =
185
+ usedEdges[eca.id] =
186
+ true;
181
187
  }
182
188
  });
183
189
  return cells;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@thi.ng/geom-voronoi",
3
- "version": "1.0.4",
3
+ "version": "2.0.3",
4
4
  "description": "Fast, incremental 2D Delaunay & Voronoi mesh implementation",
5
+ "type": "module",
5
6
  "module": "./index.js",
6
- "main": "./lib/index.js",
7
- "umd:main": "./lib/index.umd.js",
8
7
  "typings": "./index.d.ts",
8
+ "sideEffects": false,
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/thi-ng/umbrella.git"
@@ -24,35 +24,29 @@
24
24
  "author": "Karsten Schmidt <k+npm@thi.ng>",
25
25
  "license": "Apache-2.0",
26
26
  "scripts": {
27
- "build": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module",
28
- "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all",
29
- "build:es6": "tsc --declaration",
30
- "build:test": "rimraf build && tsc -p test/tsconfig.json",
31
- "build:check": "tsc --isolatedModules --noEmit",
32
- "test": "mocha test",
33
- "cover": "nyc mocha test && nyc report --reporter=lcov",
34
- "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib",
35
- "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts",
36
- "doc": "typedoc --excludePrivate --out doc --theme ../../tools/doc/typedoc-theme src/index.ts",
27
+ "build": "yarn clean && tsc --declaration",
28
+ "clean": "rimraf *.js *.d.ts *.map doc",
29
+ "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
37
30
  "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
38
- "pub": "yarn build:release && yarn publish --access public"
31
+ "doc:readme": "yarn doc:stats && ../../scripts/node-esm ../../tools/src/readme.ts",
32
+ "doc:stats": "../../scripts/node-esm ../../tools/src/module-stats.ts",
33
+ "pub": "yarn build && yarn publish --access public",
34
+ "test": "testament test"
39
35
  },
40
36
  "dependencies": {
41
- "@thi.ng/api": "^7.1.9",
42
- "@thi.ng/checks": "^2.9.10",
43
- "@thi.ng/geom-clip-line": "^1.2.44",
44
- "@thi.ng/geom-clip-poly": "^1.0.69",
45
- "@thi.ng/geom-isec": "^1.0.4",
46
- "@thi.ng/geom-poly-utils": "^1.0.4",
47
- "@thi.ng/math": "^4.0.5",
48
- "@thi.ng/quad-edge": "^1.0.1",
49
- "@thi.ng/vectors": "^6.1.2"
37
+ "@thi.ng/api": "^8.0.3",
38
+ "@thi.ng/checks": "^3.0.3",
39
+ "@thi.ng/geom-clip-line": "^2.0.3",
40
+ "@thi.ng/geom-clip-poly": "^2.0.3",
41
+ "@thi.ng/geom-isec": "^2.0.3",
42
+ "@thi.ng/geom-poly-utils": "^2.0.3",
43
+ "@thi.ng/math": "^5.0.3",
44
+ "@thi.ng/quad-edge": "^2.0.3",
45
+ "@thi.ng/vectors": "^7.0.3"
46
+ },
47
+ "devDependencies": {
48
+ "@thi.ng/testament": "^0.1.3"
50
49
  },
51
- "files": [
52
- "*.js",
53
- "*.d.ts",
54
- "lib"
55
- ],
56
50
  "keywords": [
57
51
  "2d",
58
52
  "bbox",
@@ -72,7 +66,18 @@
72
66
  "publishConfig": {
73
67
  "access": "public"
74
68
  },
75
- "sideEffects": false,
69
+ "engines": {
70
+ "node": ">=12.7"
71
+ },
72
+ "files": [
73
+ "*.js",
74
+ "*.d.ts"
75
+ ],
76
+ "exports": {
77
+ ".": {
78
+ "import": "./index.js"
79
+ }
80
+ },
76
81
  "thi.ng": {
77
82
  "parent": "@thi.ng/geom",
78
83
  "related": [
@@ -80,5 +85,5 @@
80
85
  ],
81
86
  "year": 2016
82
87
  },
83
- "gitHead": "84a067278ef79ccd538eeb652046eb8e03f3e34e"
88
+ "gitHead": "1fb38cac74d6c009d96855c28784a267a81badf1"
84
89
  }
package/lib/index.js DELETED
@@ -1,237 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var checks = require('@thi.ng/checks');
6
- var geomClipLine = require('@thi.ng/geom-clip-line');
7
- var geomClipPoly = require('@thi.ng/geom-clip-poly');
8
- var geomIsec = require('@thi.ng/geom-isec');
9
- var geomPolyUtils = require('@thi.ng/geom-poly-utils');
10
- var math = require('@thi.ng/math');
11
- var quadEdge = require('@thi.ng/quad-edge');
12
- var vectors = require('@thi.ng/vectors');
13
-
14
- const rightOf = (p, e) => vectors.signedArea2(p, e.dest.pos, e.origin.pos) > 0;
15
- class DVMesh {
16
- constructor(pts, size = 1e5) {
17
- const a = { pos: [0, -size], id: 0 };
18
- const b = { pos: [size, size], id: 1 };
19
- const c = { pos: [-size, size], id: 2 };
20
- const eab = quadEdge.Edge.create(a, b);
21
- const ebc = quadEdge.Edge.create(b, c);
22
- const eca = quadEdge.Edge.create(c, a);
23
- eab.sym.splice(ebc);
24
- ebc.sym.splice(eca);
25
- eca.sym.splice(eab);
26
- this.first = eab;
27
- this.nextID = 3;
28
- if (pts && pts.length) {
29
- checks.isNumber(pts[0][0])
30
- ? this.addKeys(pts)
31
- : this.addAll(pts);
32
- }
33
- else {
34
- this.computeDual();
35
- }
36
- }
37
- add(p, val, eps = math.EPS, update = true) {
38
- let [e, exists] = this.locate(p, eps);
39
- if (exists)
40
- return false;
41
- if (geomIsec.pointInSegment(p, e.origin.pos, e.dest.pos)) {
42
- e = e.oprev;
43
- e.onext.remove();
44
- }
45
- let base = quadEdge.Edge.create(e.origin, {
46
- pos: p,
47
- id: this.nextID++,
48
- val,
49
- });
50
- base.splice(e);
51
- const first = base;
52
- do {
53
- base = e.connect(base.sym);
54
- e = base.oprev;
55
- } while (e.lnext !== first);
56
- do {
57
- const t = e.oprev;
58
- if (rightOf(t.dest.pos, e) &&
59
- geomIsec.pointInCircumCircle(e.origin.pos, t.dest.pos, e.dest.pos, p)) {
60
- e.swap();
61
- e = e.oprev;
62
- }
63
- else if (e.onext !== first) {
64
- e = e.onext.lprev;
65
- }
66
- else {
67
- break;
68
- }
69
- } while (true);
70
- update && this.computeDual();
71
- return true;
72
- }
73
- addKeys(pts, eps) {
74
- for (let p of pts) {
75
- this.add(p, undefined, eps, false);
76
- }
77
- this.computeDual();
78
- }
79
- addAll(pairs, eps) {
80
- for (let p of pairs) {
81
- this.add(p[0], p[1], eps, false);
82
- }
83
- this.computeDual();
84
- }
85
- locate(p, eps = math.EPS) {
86
- let e = this.first;
87
- while (true) {
88
- if (vectors.eqDelta2(p, e.origin.pos, eps) ||
89
- vectors.eqDelta2(p, e.dest.pos, eps)) {
90
- return [e, true];
91
- }
92
- else if (rightOf(p, e)) {
93
- e = e.sym;
94
- }
95
- else if (!rightOf(p, e.onext)) {
96
- e = e.onext;
97
- }
98
- else if (!rightOf(p, e.dprev)) {
99
- e = e.dprev;
100
- }
101
- else {
102
- return [e, false];
103
- }
104
- }
105
- }
106
- computeDual() {
107
- const work = [this.first.rot];
108
- const visitedEdges = {};
109
- const visitedVerts = {};
110
- while (work.length) {
111
- const e = work.pop();
112
- if (visitedEdges[e.id])
113
- continue;
114
- visitedEdges[e.id] = true;
115
- if (!e.origin || !visitedVerts[e.origin.id]) {
116
- let t = e.rot;
117
- const a = t.origin.pos;
118
- let isBoundary = t.origin.id < 3;
119
- t = t.lnext;
120
- const b = t.origin.pos;
121
- isBoundary = isBoundary && t.origin.id < 3;
122
- t = t.lnext;
123
- const c = t.origin.pos;
124
- isBoundary = isBoundary && t.origin.id < 3;
125
- const id = this.nextID++;
126
- e.origin = {
127
- pos: !isBoundary ? geomPolyUtils.circumCenter2(a, b, c) : vectors.ZERO2,
128
- id,
129
- };
130
- visitedVerts[id] = true;
131
- }
132
- work.push(e.sym, e.onext, e.lnext);
133
- }
134
- }
135
- delaunay(bounds) {
136
- const cells = [];
137
- const usedEdges = {};
138
- const bc = bounds && geomPolyUtils.centroid(bounds);
139
- this.traverse((eab) => {
140
- if (!usedEdges[eab.id]) {
141
- const ebc = eab.lnext;
142
- const eca = ebc.lnext;
143
- const va = eab.origin.pos;
144
- const vb = ebc.origin.pos;
145
- const vc = eca.origin.pos;
146
- let verts = [va, vb, vc];
147
- if (bounds &&
148
- !(geomIsec.pointInPolygon2(va, bounds) &&
149
- geomIsec.pointInPolygon2(vb, bounds) &&
150
- geomIsec.pointInPolygon2(vc, bounds))) {
151
- verts = geomClipPoly.sutherlandHodgeman(verts, bounds, bc);
152
- if (verts.length > 2) {
153
- cells.push(verts);
154
- }
155
- }
156
- else {
157
- cells.push(verts);
158
- }
159
- usedEdges[eab.id] = usedEdges[ebc.id] = usedEdges[eca.id] = true;
160
- }
161
- });
162
- return cells;
163
- }
164
- voronoi(bounds) {
165
- const cells = [];
166
- const bc = bounds && geomPolyUtils.centroid(bounds);
167
- this.traverse(bounds
168
- ? (e) => {
169
- const first = (e = e.rot);
170
- let verts = [];
171
- let needsClip = false;
172
- let p;
173
- do {
174
- p = e.origin.pos;
175
- verts.push(p);
176
- needsClip = needsClip || !geomIsec.pointInPolygon2(p, bounds);
177
- } while ((e = e.lnext) !== first);
178
- if (needsClip) {
179
- verts = geomClipPoly.sutherlandHodgeman(verts, bounds, bc);
180
- if (verts.length < 3)
181
- return;
182
- }
183
- cells.push(verts);
184
- }
185
- : (e) => {
186
- const first = (e = e.rot);
187
- const verts = [];
188
- do {
189
- verts.push(e.origin.pos);
190
- } while ((e = e.lnext) !== first);
191
- cells.push(verts);
192
- }, false);
193
- return cells;
194
- }
195
- edges(voronoi = false, boundsMinMax) {
196
- const edges = [];
197
- const visitedEdges = {};
198
- this.traverse((e) => {
199
- if (visitedEdges[e.id] || visitedEdges[e.sym.id])
200
- return;
201
- if (e.origin.id > 2 && e.dest.id > 2) {
202
- const a = e.origin.pos;
203
- const b = e.dest.pos;
204
- if (boundsMinMax) {
205
- const clip = geomClipLine.liangBarsky2(a, b, boundsMinMax[0], boundsMinMax[1]);
206
- clip && edges.push([clip[0], clip[1]]);
207
- }
208
- else {
209
- edges.push([a, b]);
210
- }
211
- }
212
- visitedEdges[e.id] = true;
213
- }, true, voronoi ? this.first.rot : this.first);
214
- return edges;
215
- }
216
- traverse(proc, edges = true, e = this.first) {
217
- const work = [e];
218
- const visitedEdges = {};
219
- const visitedVerts = {};
220
- while (work.length) {
221
- e = work.pop();
222
- if (visitedEdges[e.id])
223
- continue;
224
- visitedEdges[e.id] = true;
225
- const eoID = e.origin.id;
226
- if (eoID > 2 && e.rot.origin.id > 2) {
227
- if (edges || !visitedVerts[eoID]) {
228
- visitedVerts[eoID] = true;
229
- proc(e, visitedEdges, visitedVerts);
230
- }
231
- }
232
- work.push(e.sym, e.onext, e.lnext);
233
- }
234
- }
235
- }
236
-
237
- exports.DVMesh = DVMesh;
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../index.js"],"sourcesContent":null,"names":["signedArea2","Edge","isNumber","EPS","pointInSegment","pointInCircumCircle","eqDelta2","circumCenter2","ZERO2","centroid","pointInPolygon2","sutherlandHodgeman","liangBarsky2"],"mappings":"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"}
package/lib/index.umd.js DELETED
@@ -1 +0,0 @@
1
- !function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("@thi.ng/checks"),require("@thi.ng/geom-clip-line"),require("@thi.ng/geom-clip-poly"),require("@thi.ng/geom-isec"),require("@thi.ng/geom-poly-utils"),require("@thi.ng/math"),require("@thi.ng/quad-edge"),require("@thi.ng/vectors")):"function"==typeof define&&define.amd?define(["exports","@thi.ng/checks","@thi.ng/geom-clip-line","@thi.ng/geom-clip-poly","@thi.ng/geom-isec","@thi.ng/geom-poly-utils","@thi.ng/math","@thi.ng/quad-edge","@thi.ng/vectors"],i):i(((e="undefined"!=typeof globalThis?globalThis:e||self).thi=e.thi||{},e.thi.ng=e.thi.ng||{},e.thi.ng.geomVoronoi={}),e.thi.ng.checks,e.thi.ng.geomClipLine,e.thi.ng.geomClipPoly,e.thi.ng.geomIsec,e.thi.ng.geomPolyUtils,e.thi.ng.math,e.thi.ng.quadEdge,e.thi.ng.vectors)}(this,(function(e,i,t,o,n,s,r,g,l){"use strict";const d=(e,i)=>l.signedArea2(e,i.dest.pos,i.origin.pos)>0;e.DVMesh=class{constructor(e,t=1e5){const o={pos:[0,-t],id:0},n={pos:[t,t],id:1},s={pos:[-t,t],id:2},r=g.Edge.create(o,n),l=g.Edge.create(n,s),d=g.Edge.create(s,o);r.sym.splice(l),l.sym.splice(d),d.sym.splice(r),this.first=r,this.nextID=3,e&&e.length?i.isNumber(e[0][0])?this.addKeys(e):this.addAll(e):this.computeDual()}add(e,i,t=r.EPS,o=!0){let[s,l]=this.locate(e,t);if(l)return!1;n.pointInSegment(e,s.origin.pos,s.dest.pos)&&(s=s.oprev,s.onext.remove());let h=g.Edge.create(s.origin,{pos:e,id:this.nextID++,val:i});h.splice(s);const p=h;do{h=s.connect(h.sym),s=h.oprev}while(s.lnext!==p);for(;;){const i=s.oprev;if(d(i.dest.pos,s)&&n.pointInCircumCircle(s.origin.pos,i.dest.pos,s.dest.pos,e))s.swap(),s=s.oprev;else{if(s.onext===p)break;s=s.onext.lprev}}return o&&this.computeDual(),!0}addKeys(e,i){for(let t of e)this.add(t,void 0,i,!1);this.computeDual()}addAll(e,i){for(let t of e)this.add(t[0],t[1],i,!1);this.computeDual()}locate(e,i=r.EPS){let t=this.first;for(;;){if(l.eqDelta2(e,t.origin.pos,i)||l.eqDelta2(e,t.dest.pos,i))return[t,!0];if(d(e,t))t=t.sym;else if(d(e,t.onext)){if(d(e,t.dprev))return[t,!1];t=t.dprev}else t=t.onext}}computeDual(){const e=[this.first.rot],i={},t={};for(;e.length;){const o=e.pop();if(!i[o.id]){if(i[o.id]=!0,!o.origin||!t[o.origin.id]){let e=o.rot;const i=e.origin.pos;let n=e.origin.id<3;e=e.lnext;const r=e.origin.pos;n=n&&e.origin.id<3,e=e.lnext;const g=e.origin.pos;n=n&&e.origin.id<3;const d=this.nextID++;o.origin={pos:n?l.ZERO2:s.circumCenter2(i,r,g),id:d},t[d]=!0}e.push(o.sym,o.onext,o.lnext)}}}delaunay(e){const i=[],t={},r=e&&s.centroid(e);return this.traverse((s=>{if(!t[s.id]){const g=s.lnext,l=g.lnext,d=s.origin.pos,h=g.origin.pos,p=l.origin.pos;let c=[d,h,p];!e||n.pointInPolygon2(d,e)&&n.pointInPolygon2(h,e)&&n.pointInPolygon2(p,e)?i.push(c):(c=o.sutherlandHodgeman(c,e,r),c.length>2&&i.push(c)),t[s.id]=t[g.id]=t[l.id]=!0}})),i}voronoi(e){const i=[],t=e&&s.centroid(e);return this.traverse(e?s=>{const r=s=s.rot;let g,l=[],d=!1;do{g=s.origin.pos,l.push(g),d=d||!n.pointInPolygon2(g,e)}while((s=s.lnext)!==r);d&&(l=o.sutherlandHodgeman(l,e,t),l.length<3)||i.push(l)}:e=>{const t=e=e.rot,o=[];do{o.push(e.origin.pos)}while((e=e.lnext)!==t);i.push(o)},!1),i}edges(e=!1,i){const o=[],n={};return this.traverse((e=>{if(!n[e.id]&&!n[e.sym.id]){if(e.origin.id>2&&e.dest.id>2){const n=e.origin.pos,s=e.dest.pos;if(i){const e=t.liangBarsky2(n,s,i[0],i[1]);e&&o.push([e[0],e[1]])}else o.push([n,s])}n[e.id]=!0}}),!0,e?this.first.rot:this.first),o}traverse(e,i=!0,t=this.first){const o=[t],n={},s={};for(;o.length;){if(n[(t=o.pop()).id])continue;n[t.id]=!0;const r=t.origin.id;r>2&&t.rot.origin.id>2&&(!i&&s[r]||(s[r]=!0,e(t,n,s))),o.push(t.sym,t.onext,t.lnext)}}},Object.defineProperty(e,"__esModule",{value:!0})}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../index.js"],"sourcesContent":null,"names":["signedArea2","Edge","isNumber","EPS","pointInSegment","pointInCircumCircle","eqDelta2","circumCenter2","ZERO2","centroid","pointInPolygon2","sutherlandHodgeman","liangBarsky2"],"mappings":"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"}