@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 +34 -68
- package/README.md +15 -6
- package/index.d.ts +1 -1
- package/index.js +13 -7
- package/package.json +35 -30
- package/lib/index.js +0 -237
- package/lib/index.js.map +0 -1
- package/lib/index.umd.js +0 -1
- package/lib/index.umd.js.map +0 -1
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
|
-
## [
|
|
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
|
-
## [
|
|
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
|
-
## [
|
|
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
|
-
|
|
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
|
-
|
|
38
|
+
### BREAKING CHANGES
|
|
87
39
|
|
|
40
|
+
* discontinue CommonJS & UMD versions
|
|
88
41
|
|
|
89
|
-
|
|
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
|
-
|
|
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
|
-
|
|
61
|
+
**Note:** Version bump only for package @thi.ng/geom-voronoi
|
|
101
62
|
|
|
102
|
-
|
|
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
|
-
|
|
67
|
+
- **geom-voronoi:** always computeDual() in ctor ([12e0232](https://github.com/thi-ng/umbrella/commit/12e023265c8d141e6c5f4e539541dfc017fdcfc1))
|
|
106
68
|
|
|
107
|
-
|
|
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
|
-
#
|
|
79
|
+
# 0.1.0 (2019-02-05)
|
|
114
80
|
|
|
115
|
-
###
|
|
81
|
+
### Features
|
|
116
82
|
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
###
|
|
86
|
+
### Performance Improvements
|
|
121
87
|
|
|
122
|
-
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
6
|
-
import {
|
|
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 {
|
|
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] =
|
|
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": "
|
|
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 &&
|
|
28
|
-
"
|
|
29
|
-
"
|
|
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
|
-
"
|
|
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": "^
|
|
42
|
-
"@thi.ng/checks": "^
|
|
43
|
-
"@thi.ng/geom-clip-line": "^
|
|
44
|
-
"@thi.ng/geom-clip-poly": "^
|
|
45
|
-
"@thi.ng/geom-isec": "^
|
|
46
|
-
"@thi.ng/geom-poly-utils": "^
|
|
47
|
-
"@thi.ng/math": "^
|
|
48
|
-
"@thi.ng/quad-edge": "^
|
|
49
|
-
"@thi.ng/vectors": "^
|
|
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
|
-
"
|
|
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": "
|
|
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})}));
|
package/lib/index.umd.js.map
DELETED
|
@@ -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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"}
|