@thi.ng/geom-fuzz 1.0.8 → 2.0.4
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 +54 -6
- package/README.md +14 -5
- package/comp.d.ts +1 -1
- package/comp.js +1 -1
- package/dots.d.ts +1 -1
- package/dots.js +8 -4
- package/hatch.d.ts +1 -1
- package/hatch.js +13 -8
- package/index.d.ts +8 -8
- package/index.js +8 -8
- package/line.d.ts +2 -2
- package/line.js +7 -6
- package/package.json +60 -30
- package/points.d.ts +1 -1
- package/points.js +1 -1
- package/polygon.d.ts +1 -1
- package/polygon.js +12 -3
- package/presets.d.ts +2 -2
- package/presets.js +1 -1
- package/lib/index.js +0 -133
- 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.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@2.0.3...@thi.ng/geom-fuzz@2.0.4) (2021-10-25)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @thi.ng/geom-fuzz
|
|
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.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@2.0.2...@thi.ng/geom-fuzz@2.0.3) (2021-10-15)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @thi.ng/geom-fuzz
|
|
17
17
|
|
|
@@ -19,10 +19,58 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@2.0.1...@thi.ng/geom-fuzz@2.0.2) (2021-10-15)
|
|
23
23
|
|
|
24
|
+
**Note:** Version bump only for package @thi.ng/geom-fuzz
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@2.0.0...@thi.ng/geom-fuzz@2.0.1) (2021-10-13)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @thi.ng/geom-fuzz
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@1.0.8...@thi.ng/geom-fuzz@2.0.0) (2021-10-12)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### Build System
|
|
42
|
+
|
|
43
|
+
* major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### BREAKING CHANGES
|
|
47
|
+
|
|
48
|
+
* discontinue CommonJS & UMD versions
|
|
49
|
+
|
|
50
|
+
- only ESM modules will be published from now on
|
|
51
|
+
- CJS obsolete due to ESM support in recent versions of node:
|
|
52
|
+
- i.e. launch NodeJS via:
|
|
53
|
+
- `node --experimental-specifier-resolution=node --experimental-repl-await`
|
|
54
|
+
- in the node REPL use `await import(...)` instead of `require()`
|
|
55
|
+
- UMD obsolete due to widespread browser support for ESM
|
|
56
|
+
|
|
57
|
+
Also:
|
|
58
|
+
- normalize/restructure/reorg all package.json files
|
|
59
|
+
- cleanup all build scripts, remove obsolete
|
|
60
|
+
- switch from mocha to @thi.ng/testament for all tests
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## [1.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@1.0.6...@thi.ng/geom-fuzz@1.0.7) (2021-08-22)
|
|
68
|
+
|
|
69
|
+
**Note:** Version bump only for package @thi.ng/geom-fuzz
|
|
70
|
+
|
|
71
|
+
# 0.1.0 (2020-06-20)
|
|
24
72
|
|
|
25
|
-
###
|
|
73
|
+
### Features
|
|
26
74
|
|
|
27
|
-
|
|
28
|
-
|
|
75
|
+
- **examples:** add geom-fuzz-basics example ([8b82723](https://github.com/thi-ng/umbrella/commit/8b82723c3708c78d5a67376036b661baec8e4ce0))
|
|
76
|
+
- **geom-fuzz:** import as new pkg ([3ff1484](https://github.com/thi-ng/umbrella/commit/3ff14848f277bd9dc7b2a009aa0a98d6e1d3df6c))
|
package/README.md
CHANGED
|
@@ -42,15 +42,24 @@ Highly configurable, fuzzy line & polygon creation with presets and composable f
|
|
|
42
42
|
yarn add @thi.ng/geom-fuzz
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
ES module import:
|
|
46
|
+
|
|
45
47
|
```html
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
<script type="module" src="https://cdn.skypack.dev/@thi.ng/geom-fuzz"></script>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
[Skypack documentation](https://docs.skypack.dev/)
|
|
52
|
+
|
|
53
|
+
For Node.js REPL:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
# with flag only for < v16
|
|
57
|
+
node --experimental-repl-await
|
|
48
58
|
|
|
49
|
-
|
|
50
|
-
<script src="https://unpkg.com/@thi.ng/geom-fuzz/lib/index.umd.js" crossorigin></script>
|
|
59
|
+
> const geomFuzz = await import("@thi.ng/geom-fuzz");
|
|
51
60
|
```
|
|
52
61
|
|
|
53
|
-
Package sizes (gzipped, pre-treeshake): ESM: 1.
|
|
62
|
+
Package sizes (gzipped, pre-treeshake): ESM: 1.12 KB
|
|
54
63
|
|
|
55
64
|
## Dependencies
|
|
56
65
|
|
package/comp.d.ts
CHANGED
package/comp.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { group } from "@thi.ng/geom";
|
|
1
|
+
import { group } from "@thi.ng/geom/group";
|
|
2
2
|
export const compFill = (a, b) => (poly) => group({}, [a(poly), b(poly)]);
|
package/dots.d.ts
CHANGED
package/dots.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { mergeDeepObj } from "@thi.ng/associative";
|
|
2
|
-
import { bounds
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { mergeDeepObj } from "@thi.ng/associative/merge-deep";
|
|
2
|
+
import { bounds } from "@thi.ng/geom/bounds";
|
|
3
|
+
import { pointInside } from "@thi.ng/geom/point-inside";
|
|
4
|
+
import { points } from "@thi.ng/geom/points";
|
|
5
|
+
import { unmapPoint } from "@thi.ng/geom/unmap-point";
|
|
6
|
+
import { range2d } from "@thi.ng/transducers/range2d";
|
|
7
|
+
import { div2 } from "@thi.ng/vectors/div";
|
|
8
|
+
import { jitter } from "@thi.ng/vectors/jitter";
|
|
5
9
|
export const defDots = (opts = {}) => {
|
|
6
10
|
opts = mergeDeepObj({
|
|
7
11
|
space: 5,
|
package/hatch.d.ts
CHANGED
package/hatch.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import { mergeDeepObj } from "@thi.ng/associative";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { mergeDeepObj } from "@thi.ng/associative/merge-deep";
|
|
2
|
+
import { clipLinePoly } from "@thi.ng/geom-clip-line/clip-poly";
|
|
3
|
+
import { bounds } from "@thi.ng/geom/bounds";
|
|
4
|
+
import { group } from "@thi.ng/geom/group";
|
|
5
|
+
import { offset } from "@thi.ng/geom/offset";
|
|
6
|
+
import { unmapPoint } from "@thi.ng/geom/unmap-point";
|
|
7
|
+
import { columnEnds2d } from "@thi.ng/grid-iterators/column-ends";
|
|
8
|
+
import { diagonalEnds2d } from "@thi.ng/grid-iterators/diagonal-ends";
|
|
9
|
+
import { rowEnds2d } from "@thi.ng/grid-iterators/row-ends";
|
|
10
|
+
import { partition } from "@thi.ng/transducers/partition";
|
|
11
|
+
import { div2 } from "@thi.ng/vectors/div";
|
|
12
|
+
import { DEFAULT_LINE } from "./api.js";
|
|
13
|
+
import { defLine } from "./line.js";
|
|
9
14
|
const HATCH_DIRS = {
|
|
10
15
|
d: diagonalEnds2d,
|
|
11
16
|
h: rowEnds2d,
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from "./api";
|
|
2
|
-
export * from "./comp";
|
|
3
|
-
export * from "./dots";
|
|
4
|
-
export * from "./hatch";
|
|
5
|
-
export * from "./line";
|
|
6
|
-
export * from "./points";
|
|
7
|
-
export * from "./polygon";
|
|
8
|
-
export * from "./presets";
|
|
1
|
+
export * from "./api.js";
|
|
2
|
+
export * from "./comp.js";
|
|
3
|
+
export * from "./dots.js";
|
|
4
|
+
export * from "./hatch.js";
|
|
5
|
+
export * from "./line.js";
|
|
6
|
+
export * from "./points.js";
|
|
7
|
+
export * from "./polygon.js";
|
|
8
|
+
export * from "./presets.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from "./api";
|
|
2
|
-
export * from "./comp";
|
|
3
|
-
export * from "./dots";
|
|
4
|
-
export * from "./hatch";
|
|
5
|
-
export * from "./line";
|
|
6
|
-
export * from "./points";
|
|
7
|
-
export * from "./polygon";
|
|
8
|
-
export * from "./presets";
|
|
1
|
+
export * from "./api.js";
|
|
2
|
+
export * from "./comp.js";
|
|
3
|
+
export * from "./dots.js";
|
|
4
|
+
export * from "./hatch.js";
|
|
5
|
+
export * from "./line.js";
|
|
6
|
+
export * from "./points.js";
|
|
7
|
+
export * from "./polygon.js";
|
|
8
|
+
export * from "./presets.js";
|
package/line.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Fn3 } from "@thi.ng/api";
|
|
2
2
|
import type { IHiccupShape } from "@thi.ng/geom-api";
|
|
3
|
-
import { ReadonlyVec } from "@thi.ng/vectors";
|
|
4
|
-
import { FuzzyLineOpts } from "./api";
|
|
3
|
+
import type { ReadonlyVec } from "@thi.ng/vectors";
|
|
4
|
+
import { FuzzyLineOpts } from "./api.js";
|
|
5
5
|
export declare const defLine: (opts?: Partial<FuzzyLineOpts>) => Fn3<ReadonlyVec, ReadonlyVec, boolean, IHiccupShape>;
|
|
6
6
|
//# sourceMappingURL=line.d.ts.map
|
package/line.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { mergeDeepObj } from "@thi.ng/associative";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { mergeDeepObj } from "@thi.ng/associative/merge-deep";
|
|
2
|
+
import { resample } from "@thi.ng/geom-resample/resample";
|
|
3
|
+
import { line } from "@thi.ng/geom/line";
|
|
4
|
+
import { polyline } from "@thi.ng/geom/polyline";
|
|
5
|
+
import { jitter } from "@thi.ng/vectors/jitter";
|
|
6
|
+
import { DEFAULT_LINE } from "./api.js";
|
|
7
|
+
import { jitterPoints } from "./points.js";
|
|
7
8
|
export const defLine = (opts = {}) => {
|
|
8
9
|
opts = mergeDeepObj(DEFAULT_LINE, opts);
|
|
9
10
|
return opts.resample > 1
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thi.ng/geom-fuzz",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "Highly configurable, fuzzy line & polygon creation with presets and composable fill & stroke styles. Canvas & SVG support",
|
|
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,30 @@
|
|
|
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
|
-
"test": "mocha test",
|
|
32
|
-
"cover": "nyc mocha test && nyc report --reporter=lcov",
|
|
33
|
-
"clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib",
|
|
34
|
-
"doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.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",
|
|
35
30
|
"doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
|
|
36
|
-
"doc": "
|
|
37
|
-
"
|
|
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"
|
|
38
35
|
},
|
|
39
36
|
"dependencies": {
|
|
40
|
-
"@thi.ng/api": "^
|
|
41
|
-
"@thi.ng/associative": "^
|
|
42
|
-
"@thi.ng/color": "^
|
|
43
|
-
"@thi.ng/geom": "^
|
|
44
|
-
"@thi.ng/geom-api": "^
|
|
45
|
-
"@thi.ng/geom-clip-line": "^
|
|
46
|
-
"@thi.ng/geom-resample": "^
|
|
47
|
-
"@thi.ng/grid-iterators": "^
|
|
48
|
-
"@thi.ng/transducers": "^
|
|
49
|
-
"@thi.ng/vectors": "^
|
|
37
|
+
"@thi.ng/api": "^8.0.4",
|
|
38
|
+
"@thi.ng/associative": "^6.0.4",
|
|
39
|
+
"@thi.ng/color": "^4.0.4",
|
|
40
|
+
"@thi.ng/geom": "^3.0.4",
|
|
41
|
+
"@thi.ng/geom-api": "^3.0.4",
|
|
42
|
+
"@thi.ng/geom-clip-line": "^2.0.4",
|
|
43
|
+
"@thi.ng/geom-resample": "^2.0.4",
|
|
44
|
+
"@thi.ng/grid-iterators": "^2.0.4",
|
|
45
|
+
"@thi.ng/transducers": "^8.0.4",
|
|
46
|
+
"@thi.ng/vectors": "^7.0.4"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@thi.ng/testament": "^0.1.4"
|
|
50
50
|
},
|
|
51
|
-
"files": [
|
|
52
|
-
"*.js",
|
|
53
|
-
"*.d.ts",
|
|
54
|
-
"lib"
|
|
55
|
-
],
|
|
56
51
|
"keywords": [
|
|
57
52
|
"2d",
|
|
58
53
|
"animation",
|
|
@@ -76,7 +71,42 @@
|
|
|
76
71
|
"publishConfig": {
|
|
77
72
|
"access": "public"
|
|
78
73
|
},
|
|
79
|
-
"
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": ">=12.7"
|
|
76
|
+
},
|
|
77
|
+
"files": [
|
|
78
|
+
"*.js",
|
|
79
|
+
"*.d.ts"
|
|
80
|
+
],
|
|
81
|
+
"exports": {
|
|
82
|
+
".": {
|
|
83
|
+
"import": "./index.js"
|
|
84
|
+
},
|
|
85
|
+
"./api": {
|
|
86
|
+
"import": "./api.js"
|
|
87
|
+
},
|
|
88
|
+
"./comp": {
|
|
89
|
+
"import": "./comp.js"
|
|
90
|
+
},
|
|
91
|
+
"./dots": {
|
|
92
|
+
"import": "./dots.js"
|
|
93
|
+
},
|
|
94
|
+
"./hatch": {
|
|
95
|
+
"import": "./hatch.js"
|
|
96
|
+
},
|
|
97
|
+
"./line": {
|
|
98
|
+
"import": "./line.js"
|
|
99
|
+
},
|
|
100
|
+
"./points": {
|
|
101
|
+
"import": "./points.js"
|
|
102
|
+
},
|
|
103
|
+
"./polygon": {
|
|
104
|
+
"import": "./polygon.js"
|
|
105
|
+
},
|
|
106
|
+
"./presets": {
|
|
107
|
+
"import": "./presets.js"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
80
110
|
"thi.ng": {
|
|
81
111
|
"parent": "@thi.ng/geom",
|
|
82
112
|
"related": [
|
|
@@ -85,5 +115,5 @@
|
|
|
85
115
|
],
|
|
86
116
|
"year": 2020
|
|
87
117
|
},
|
|
88
|
-
"gitHead": "
|
|
118
|
+
"gitHead": "9ff00a103f76cc4917ef3f244132e218f2300a05"
|
|
89
119
|
}
|
package/points.d.ts
CHANGED
package/points.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { jitter } from "@thi.ng/vectors";
|
|
1
|
+
import { jitter } from "@thi.ng/vectors/jitter";
|
|
2
2
|
export const jitterPoints = (pts, scl = 5) => pts.map((p) => jitter([], p, scl));
|
package/polygon.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ReadonlyVec } from "@thi.ng/vectors";
|
|
2
|
-
import type { FuzzyPolygonOpts } from "./api";
|
|
2
|
+
import type { FuzzyPolygonOpts } from "./api.js";
|
|
3
3
|
export declare const fuzzyPoly: (pts: ReadonlyVec[], attribs?: {}, opts?: Partial<FuzzyPolygonOpts>) => import("@thi.ng/geom").Group;
|
|
4
4
|
//# sourceMappingURL=polygon.d.ts.map
|
package/polygon.js
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import { asCubic
|
|
2
|
-
import {
|
|
1
|
+
import { asCubic } from "@thi.ng/geom/as-cubic";
|
|
2
|
+
import { group } from "@thi.ng/geom/group";
|
|
3
|
+
import { pathFromCubics } from "@thi.ng/geom/path";
|
|
4
|
+
import { polygon } from "@thi.ng/geom/polygon";
|
|
5
|
+
import { jitterPoints } from "./points.js";
|
|
3
6
|
export const fuzzyPoly = (pts, attribs = {}, opts = {}) => {
|
|
4
|
-
opts =
|
|
7
|
+
opts = {
|
|
8
|
+
num: 2,
|
|
9
|
+
jitter: 2,
|
|
10
|
+
curveBreakPoints: true,
|
|
11
|
+
curveScale: 0.1,
|
|
12
|
+
...opts,
|
|
13
|
+
};
|
|
5
14
|
const acc = group(attribs, []);
|
|
6
15
|
for (; --opts.num >= 0;) {
|
|
7
16
|
const poly = polygon(jitterPoints(pts, opts.jitter));
|
package/presets.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Color, HatchDir } from "./api";
|
|
2
|
-
export declare const defHatchPen: (color: Color, dir?: HatchDir, thick?: number, space?: number, steps?: number) => import("./api").FillFn;
|
|
1
|
+
import type { Color, HatchDir } from "./api.js";
|
|
2
|
+
export declare const defHatchPen: (color: Color, dir?: HatchDir, thick?: number, space?: number, steps?: number) => import("./api.js").FillFn;
|
|
3
3
|
//# sourceMappingURL=presets.d.ts.map
|
package/presets.js
CHANGED
package/lib/index.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var geom = require('@thi.ng/geom');
|
|
6
|
-
var associative = require('@thi.ng/associative');
|
|
7
|
-
var transducers = require('@thi.ng/transducers');
|
|
8
|
-
var vectors = require('@thi.ng/vectors');
|
|
9
|
-
var geomClipLine = require('@thi.ng/geom-clip-line');
|
|
10
|
-
var gridIterators = require('@thi.ng/grid-iterators');
|
|
11
|
-
var geomResample = require('@thi.ng/geom-resample');
|
|
12
|
-
|
|
13
|
-
const DEFAULT_LINE = {
|
|
14
|
-
resample: 0,
|
|
15
|
-
jitter: 2,
|
|
16
|
-
attribs: {
|
|
17
|
-
lineCap: "butt",
|
|
18
|
-
lineJoin: "round",
|
|
19
|
-
stroke: "black",
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const compFill = (a, b) => (poly) => geom.group({}, [a(poly), b(poly)]);
|
|
24
|
-
|
|
25
|
-
const defDots = (opts = {}) => {
|
|
26
|
-
opts = associative.mergeDeepObj({
|
|
27
|
-
space: 5,
|
|
28
|
-
jitter: 0.5,
|
|
29
|
-
attribs: {
|
|
30
|
-
shape: "circle",
|
|
31
|
-
stroke: "black",
|
|
32
|
-
fill: "none",
|
|
33
|
-
},
|
|
34
|
-
}, opts);
|
|
35
|
-
return (shape) => {
|
|
36
|
-
const box = geom.bounds(shape);
|
|
37
|
-
const [w, h] = box.size;
|
|
38
|
-
const cols = ~~(w / opts.space);
|
|
39
|
-
const rows = ~~(h / opts.space);
|
|
40
|
-
const maxg = [cols - 1, rows - 1];
|
|
41
|
-
const acc = [];
|
|
42
|
-
for (let p of transducers.range2d(cols, rows)) {
|
|
43
|
-
if (p[1] & 1)
|
|
44
|
-
p[0] += 0.5;
|
|
45
|
-
geom.unmapPoint(box, vectors.div2(null, p, maxg), p);
|
|
46
|
-
vectors.jitter(p, p, opts.jitter);
|
|
47
|
-
if (geom.pointInside(shape, p)) {
|
|
48
|
-
acc.push(p);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return geom.points(acc, opts.attribs);
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
const jitterPoints = (pts, scl = 5) => pts.map((p) => vectors.jitter([], p, scl));
|
|
56
|
-
|
|
57
|
-
const defLine = (opts = {}) => {
|
|
58
|
-
opts = associative.mergeDeepObj(DEFAULT_LINE, opts);
|
|
59
|
-
return opts.resample > 1
|
|
60
|
-
? (a, b, useAttr = true) => geom.polyline(jitterPoints(geomResample.resample([a, b], { num: opts.resample, last: true }), opts.jitter), useAttr ? opts.attribs : undefined)
|
|
61
|
-
: (a, b, useAttr = true) => geom.line(vectors.jitter(null, a, opts.jitter), vectors.jitter(null, b, opts.jitter), useAttr ? opts.attribs : undefined);
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
const HATCH_DIRS = {
|
|
65
|
-
d: gridIterators.diagonalEnds2d,
|
|
66
|
-
h: gridIterators.rowEnds2d,
|
|
67
|
-
v: gridIterators.columnEnds2d,
|
|
68
|
-
};
|
|
69
|
-
const defHatch = (opts = {}) => {
|
|
70
|
-
opts = associative.mergeDeepObj({
|
|
71
|
-
dir: "d",
|
|
72
|
-
space: 5,
|
|
73
|
-
line: DEFAULT_LINE,
|
|
74
|
-
}, opts);
|
|
75
|
-
const line = defLine(opts.line);
|
|
76
|
-
return (shape) => {
|
|
77
|
-
const box = geom.offset(geom.bounds(shape), 1);
|
|
78
|
-
const [w, h] = box.size;
|
|
79
|
-
const cols = ~~(w / opts.space);
|
|
80
|
-
const rows = ~~(h / opts.space);
|
|
81
|
-
const maxg = [cols - 1, rows - 1];
|
|
82
|
-
const acc = geom.group(opts.line ? opts.line.attribs : null);
|
|
83
|
-
for (let [a, b] of transducers.partition(2, HATCH_DIRS[opts.dir](cols, rows))) {
|
|
84
|
-
geom.unmapPoint(box, vectors.div2(null, a, maxg), a);
|
|
85
|
-
geom.unmapPoint(box, vectors.div2(null, b, maxg), b);
|
|
86
|
-
const segments = geomClipLine.clipLinePoly(a, b, shape.points);
|
|
87
|
-
if (segments) {
|
|
88
|
-
for (let s of segments) {
|
|
89
|
-
acc.children.push(line(s[0], s[1], false));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return acc;
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
const fuzzyPoly = (pts, attribs = {}, opts = {}) => {
|
|
98
|
-
opts = Object.assign({ num: 2, jitter: 2, curveBreakPoints: true, curveScale: 0.1 }, opts);
|
|
99
|
-
const acc = geom.group(attribs, []);
|
|
100
|
-
for (; --opts.num >= 0;) {
|
|
101
|
-
const poly = geom.polygon(jitterPoints(pts, opts.jitter));
|
|
102
|
-
acc.children.push(geom.pathFromCubics(geom.asCubic(poly, {
|
|
103
|
-
breakPoints: opts.curveBreakPoints,
|
|
104
|
-
scale: opts.curveScale,
|
|
105
|
-
})));
|
|
106
|
-
if (!opts.num && opts.fill) {
|
|
107
|
-
acc.children.push(opts.fill(poly));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return acc;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const defHatchPen = (color, dir = "d", thick = 8, space = 1, steps = 4) => defHatch({
|
|
114
|
-
dir,
|
|
115
|
-
space: thick * space,
|
|
116
|
-
line: {
|
|
117
|
-
attribs: {
|
|
118
|
-
stroke: color,
|
|
119
|
-
weight: thick,
|
|
120
|
-
},
|
|
121
|
-
jitter: thick * space * 0.25,
|
|
122
|
-
resample: steps,
|
|
123
|
-
},
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
exports.DEFAULT_LINE = DEFAULT_LINE;
|
|
127
|
-
exports.compFill = compFill;
|
|
128
|
-
exports.defDots = defDots;
|
|
129
|
-
exports.defHatch = defHatch;
|
|
130
|
-
exports.defHatchPen = defHatchPen;
|
|
131
|
-
exports.defLine = defLine;
|
|
132
|
-
exports.fuzzyPoly = fuzzyPoly;
|
|
133
|
-
exports.jitterPoints = jitterPoints;
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../api.js","../comp.js","../dots.js","../points.js","../line.js","../hatch.js","../polygon.js","../presets.js"],"sourcesContent":null,"names":["group","mergeDeepObj","bounds","range2d","unmapPoint","div2","jitter","pointInside","points","polyline","resample","line","diagonalEnds2d","rowEnds2d","columnEnds2d","offset","partition","clipLinePoly","polygon","pathFromCubics","asCubic"],"mappings":"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"}
|
package/lib/index.umd.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@thi.ng/geom"),require("@thi.ng/associative"),require("@thi.ng/transducers"),require("@thi.ng/vectors"),require("@thi.ng/geom-clip-line"),require("@thi.ng/grid-iterators"),require("@thi.ng/geom-resample")):"function"==typeof define&&define.amd?define(["exports","@thi.ng/geom","@thi.ng/associative","@thi.ng/transducers","@thi.ng/vectors","@thi.ng/geom-clip-line","@thi.ng/grid-iterators","@thi.ng/geom-resample"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).thi=e.thi||{},e.thi.ng=e.thi.ng||{},e.thi.ng.geomFuzz={}),e.thi.ng.geom,e.thi.ng.associative,e.thi.ng.transducers,e.thi.ng.vectors,e.thi.ng.geomClipLine,e.thi.ng.gridIterators,e.thi.ng.geomResample)}(this,(function(e,t,i,n,r,s,o,l){"use strict";const a={resample:0,jitter:2,attribs:{lineCap:"butt",lineJoin:"round",stroke:"black"}},u=(e,t=5)=>e.map((e=>r.jitter([],e,t))),c=(e={})=>(e=i.mergeDeepObj(a,e)).resample>1?(i,n,r=!0)=>t.polyline(u(l.resample([i,n],{num:e.resample,last:!0}),e.jitter),r?e.attribs:void 0):(i,n,s=!0)=>t.line(r.jitter(null,i,e.jitter),r.jitter(null,n,e.jitter),s?e.attribs:void 0),p={d:o.diagonalEnds2d,h:o.rowEnds2d,v:o.columnEnds2d},g=(e={})=>{e=i.mergeDeepObj({dir:"d",space:5,line:a},e);const o=c(e.line);return i=>{const l=t.offset(t.bounds(i),1),[a,u]=l.size,c=~~(a/e.space),g=~~(u/e.space),d=[c-1,g-1],h=t.group(e.line?e.line.attribs:null);for(let[a,u]of n.partition(2,p[e.dir](c,g))){t.unmapPoint(l,r.div2(null,a,d),a),t.unmapPoint(l,r.div2(null,u,d),u);const e=s.clipLinePoly(a,u,i.points);if(e)for(let t of e)h.children.push(o(t[0],t[1],!1))}return h}};e.DEFAULT_LINE=a,e.compFill=(e,i)=>n=>t.group({},[e(n),i(n)]),e.defDots=(e={})=>(e=i.mergeDeepObj({space:5,jitter:.5,attribs:{shape:"circle",stroke:"black",fill:"none"}},e),i=>{const s=t.bounds(i),[o,l]=s.size,a=~~(o/e.space),u=~~(l/e.space),c=[a-1,u-1],p=[];for(let o of n.range2d(a,u))1&o[1]&&(o[0]+=.5),t.unmapPoint(s,r.div2(null,o,c),o),r.jitter(o,o,e.jitter),t.pointInside(i,o)&&p.push(o);return t.points(p,e.attribs)}),e.defHatch=g,e.defHatchPen=(e,t="d",i=8,n=1,r=4)=>g({dir:t,space:i*n,line:{attribs:{stroke:e,weight:i},jitter:i*n*.25,resample:r}}),e.defLine=c,e.fuzzyPoly=(e,i={},n={})=>{n=Object.assign({num:2,jitter:2,curveBreakPoints:!0,curveScale:.1},n);const r=t.group(i,[]);for(;--n.num>=0;){const i=t.polygon(u(e,n.jitter));r.children.push(t.pathFromCubics(t.asCubic(i,{breakPoints:n.curveBreakPoints,scale:n.curveScale}))),!n.num&&n.fill&&r.children.push(n.fill(i))}return r},e.jitterPoints=u,Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/lib/index.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../api.js","../comp.js","../dots.js","../points.js","../line.js","../hatch.js","../polygon.js","../presets.js"],"sourcesContent":null,"names":["group","mergeDeepObj","bounds","range2d","unmapPoint","div2","jitter","pointInside","points","polyline","resample","line","diagonalEnds2d","rowEnds2d","columnEnds2d","offset","partition","clipLinePoly","polygon","pathFromCubics","asCubic"],"mappings":"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"}
|