@thi.ng/geom 8.2.13 → 8.3.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 DELETED
@@ -1,572 +0,0 @@
1
- # Change Log
2
-
3
- - **Last updated**: 2025-09-25T11:10:32Z
4
- - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
-
6
- All notable changes to this project will be documented in this file.
7
- Only versions published since **2022-01-01** are listed here.
8
- Please consult the Git history for older version information.
9
- See [Conventional Commits](https://conventionalcommits.org/) for commit guidelines.
10
-
11
- **Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
12
- and/or version bumps of transitive dependencies.
13
-
14
- ## [8.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.2.0) (2025-07-20)
15
-
16
- #### 🚀 Features
17
-
18
- - update SVGDocAttribs, update docs ([7e4a252](https://github.com/thi-ng/umbrella/commit/7e4a252))
19
-
20
- ### [8.1.39](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.1.39) (2025-04-16)
21
-
22
- #### 🩹 Bug fixes
23
-
24
- - update `asCubic()` for some 3D shapes ([5abc2aa](https://github.com/thi-ng/umbrella/commit/5abc2aa))
25
- - update `polygon3`, `polyline3`, `quad3`, `tri3` impls to exclude "break" & "hobby" conversion modes
26
- (these modes are currently not supported in 3D)
27
- - add/update docs
28
- - update sphere/sphere `intersects()` impl ([43f4059](https://github.com/thi-ng/umbrella/commit/43f4059))
29
-
30
- #### ♻️ Refactoring
31
-
32
- - minor internal optimizations (vector ops) ([c51b0de](https://github.com/thi-ng/umbrella/commit/c51b0de))
33
-
34
- ### [8.1.22](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.1.22) (2025-01-14)
35
-
36
- #### ♻️ Refactoring
37
-
38
- - use optional chaining & nullish coalescing ([c5a0a13](https://github.com/thi-ng/umbrella/commit/c5a0a13))
39
-
40
- ### [8.1.11](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.1.11) (2024-10-05)
41
-
42
- #### ♻️ Refactoring
43
-
44
- - add explicit type casts (TS5.6.2) ([dcbdd60](https://github.com/thi-ng/umbrella/commit/dcbdd60))
45
-
46
- ## [8.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.1.0) (2024-08-10)
47
-
48
- #### 🚀 Features
49
-
50
- - add circle inversion functions ([bb3a322](https://github.com/thi-ng/umbrella/commit/bb3a322))
51
- - add invertCircle(), invertCirclePoint()
52
-
53
- ### [8.0.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.0.1) (2024-06-29)
54
-
55
- #### 🩹 Bug fixes
56
-
57
- - add missing pkg exports ([7ec144f](https://github.com/thi-ng/umbrella/commit/7ec144f))
58
-
59
- # [8.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.0.0) (2024-06-21)
60
-
61
- #### 🛑 Breaking changes
62
-
63
- - add/update asCubic()/asPath() impls/types/signatures ([9b4df2e](https://github.com/thi-ng/umbrella/commit/9b4df2e))
64
- - BREAKING CHANGE: update asCubic/asPath() to use new CubicOpts
65
- - add support for more shape types, incl. 3D
66
- - update svgDoc(), add SVGDocAttribs ([a26628b](https://github.com/thi-ng/umbrella/commit/a26628b))
67
- - BREAKING CHANGE: rename `__bleed` attrib => `__margin`
68
- - set default SVG precision to 3 (fractional digits)
69
- - update clipConvex(), add support for more shape types ([5d594c6](https://github.com/thi-ng/umbrella/commit/5d594c6))
70
- - BREAKING CHANGE: update clipConvex() to return array of result shapes (rather than single)
71
- - add support for polyline & open paths
72
- - update/extend tessellate() to use new setup/behavior ([c4dadfd](https://github.com/thi-ng/umbrella/commit/c4dadfd))
73
- - BREAKING CHANGE: update/extend tessellate() to use new setup/behavior
74
- - update signature to return `Tessellation`
75
- - add/update impls for complex polygons & groups
76
- - add `groupFromTessellation()` to process tessellation results
77
- - add `TESSELLATE_EARCUT_COMPLEX` preset
78
- - remove `TESSELLATE_EDGE_SPLIT_THRESHOLD` & `TESSELLATE_TRI_FAN_SPLIT_THRESHOLD` (see [97f1f66200](https://github.com/thi-ng/umbrella/commit/97f1f66200))
79
- - migrate types from [@thi.ng/geom-api](https://github.com/thi-ng/umbrella/tree/main/packages/geom-api) ([3182726](https://github.com/thi-ng/umbrella/commit/3182726))
80
- - BREAKING CHANGE: migrate/internalize types from [@thi.ng/geom-api](https://github.com/thi-ng/umbrella/tree/main/packages/geom-api)
81
- - add/migrate:
82
- - Attribs, GroupAttribs, IAttributed
83
- - IShape, IShape2/3
84
- - AABBLike, SphereLike
85
- - PCLike, PCLikeConstructor
86
- - IHiccupShape, IHiccupShape2/3
87
- - SegmentType2/3
88
- - PathSegment, PathSegment2/3
89
- - HiccupPathSegment, IHiccupPathSegment
90
- - CubicOpts
91
- - re-export types from geom helper packages (to avoid extraneous imports in user code):
92
- - IntersectionResult, IntersectionType, NONE (geom-isec)
93
- - SamplingOpts, setDefaultSamples (geom-resample)
94
- - SubdivKernel (geom-subdiv-curve)
95
- - Tessellator, Tessellation (geom-tessellate)
96
- - update CubicOpts.mode, rename `breakpoints` => `break`
97
- - update imports
98
- - update deps
99
- - update tessellate() for new API ([4c6a5f4](https://github.com/thi-ng/umbrella/commit/4c6a5f4))
100
- - BREAKING CHANGE: update tessellate() for new API
101
- - add optional ITessellation arg
102
- - add `basicTessellation()` & `meshTessellation()` factory fns
103
- - update tessellation post-processors (`graphFromTessellation()` etc.)
104
- - update PathBuilder to support 2D/3D, add pathBuilder3() ([dcf5210](https://github.com/thi-ng/umbrella/commit/dcf5210))
105
- - BREAKING CHANGE: PathBuilder now using injected segment ctors
106
- - users should only use pathBuilder() & pathBuilder3() factory functions
107
- - add internal P2D & P3D shape ctor configs
108
- - update PathBuilder ctor & internals to use injected shape ctors for segments
109
- - update pathFromSvg()
110
- - migrate roundedRect() to own file
111
-
112
- #### 🚀 Features
113
-
114
- - add/update various 2d/3d shape types ([262188c](https://github.com/thi-ng/umbrella/commit/262188c))
115
- - add 3d shape types & factory functions:
116
- - Cubic3
117
- - Line3
118
- - Path3
119
- - Points3
120
- - Polygon3
121
- - Polyline3
122
- - Quad3
123
- - Quadratic3
124
- - Ray3
125
- - Triangle3
126
- - update existing shape type impls & ctors/factories
127
- - add/update rotate, scale, translate, transform ops (signatures & type support, impls) ([cb04a96](https://github.com/thi-ng/umbrella/commit/cb04a96))
128
- - add rotateAroundAxis(), add rotateX/Y/Z() ops ([8831cc1](https://github.com/thi-ng/umbrella/commit/8831cc1))
129
- - update applyTransforms(), add support for 3D shapes/transforms ([91be2ec](https://github.com/thi-ng/umbrella/commit/91be2ec))
130
- - add/update internal helpers ([10a73f2](https://github.com/thi-ng/umbrella/commit/10a73f2))
131
- - add/update bounds() impls and fitIntoBounds2/3() types/signatures ([e7a0b5c](https://github.com/thi-ng/umbrella/commit/e7a0b5c))
132
- - add/update asPolygon()/asPolyline() / vertices() impls/types/signatures ([3ba9714](https://github.com/thi-ng/umbrella/commit/3ba9714))
133
- - add/update resample()/simplify()/subdivCurve() impls ([1682577](https://github.com/thi-ng/umbrella/commit/1682577))
134
- - add/update splitAt()/splitArcLength() impls/types ([e6f9e64](https://github.com/thi-ng/umbrella/commit/e6f9e64))
135
- - add/update clipConvex()/convexHull() impls/types ([a6215c7](https://github.com/thi-ng/umbrella/commit/a6215c7))
136
- - add shape types support for flip() ([9628c7b](https://github.com/thi-ng/umbrella/commit/9628c7b))
137
- - add shape types support for arcLength() & center() ([2a9af0d](https://github.com/thi-ng/umbrella/commit/2a9af0d))
138
- - add Group3 shape type, update pkg exports ([1646263](https://github.com/thi-ng/umbrella/commit/1646263))
139
- - add sector() path builder ([807b5f1](https://github.com/thi-ng/umbrella/commit/807b5f1))
140
- - update SVG default attribs & handling ([f80f67a](https://github.com/thi-ng/umbrella/commit/f80f67a))
141
- - update setSvgDefaultAttribs() to allow merging
142
- - add/update splitAt() & splitNearPoint() impls ([1851b1d](https://github.com/thi-ng/umbrella/commit/1851b1d))
143
- - add planeFromRay() ([c44d8da](https://github.com/thi-ng/umbrella/commit/c44d8da))
144
- - add 2d line impl for classifyPoint() ([92e54ea](https://github.com/thi-ng/umbrella/commit/92e54ea))
145
- - fix [#429](https://github.com/thi-ng/umbrella/issues/429), add polygon support for classifyPoint() ([b56ecc1](https://github.com/thi-ng/umbrella/commit/b56ecc1))
146
- - refactor plane impl
147
- - add/update subdivCurve() type support, args & impls ([6233379](https://github.com/thi-ng/umbrella/commit/6233379))
148
- - update AABB & Rect ctors to clamp size to zero ([7cec7d2](https://github.com/thi-ng/umbrella/commit/7cec7d2))
149
- - add convolve() w/ impls for poly/polyline (incl. 3d versions) ([b682d34](https://github.com/thi-ng/umbrella/commit/b682d34))
150
- - also re-export kernel presets (KERNEL_BOX, KERNEL_TRIANGLE, KERNEL_GAUSSIAN)
151
- - update convolve(), add ComplexPolygon support ([bfaa0aa](https://github.com/thi-ng/umbrella/commit/bfaa0aa))
152
- - add/update/fix type info, docs & impls for various ops ([d5ccb1a](https://github.com/thi-ng/umbrella/commit/d5ccb1a))
153
- - update convolve(), add group support ([00bdc66](https://github.com/thi-ng/umbrella/commit/00bdc66))
154
- - add Dummy shape type to wrap arbitrary hiccup data ([b6e18bc](https://github.com/thi-ng/umbrella/commit/b6e18bc))
155
- - add various dummy op impls for Dummy shape type ([05eeb9f](https://github.com/thi-ng/umbrella/commit/05eeb9f))
156
- - add arcLength(), area() default impls (return 0) ([f2a30bf](https://github.com/thi-ng/umbrella/commit/f2a30bf))
157
- - add TESSELLATE_EDGE_SPLIT_THRESHOLD() tessellator ([1d8feff](https://github.com/thi-ng/umbrella/commit/1d8feff))
158
- - add new tessellators presets ([95d6f70](https://github.com/thi-ng/umbrella/commit/95d6f70))
159
- - add TESSELLATE_TRI_FAN_SPLIT
160
- - add TESSELLATE_TRI_FAN_SPLIT_THRESHOLD
161
- - add tessellation post-processing helpers ([7687975](https://github.com/thi-ng/umbrella/commit/7687975))
162
- - add graphFromTessellation()
163
- - add edgesFromTessellation()
164
- - add edgePointsFromTessellation()
165
- - update deps (adjacency)
166
- - update pkg exports/meta
167
- - add smoothPolygon()/smoothPolyline() ([217a8c2](https://github.com/thi-ng/umbrella/commit/217a8c2))
168
- - add warpPoint(), add docs ([bf91ff3](https://github.com/thi-ng/umbrella/commit/bf91ff3))
169
- - add internal __ensurePCLike() helper ([7306b35](https://github.com/thi-ng/umbrella/commit/7306b35))
170
- - update tessellate(), add `TESSELLATE_TRI_FAN_BOUNDARY` ([1c0d1ce](https://github.com/thi-ng/umbrella/commit/1c0d1ce))
171
- - add AABB impl for `asPolygon()` ([16e005c](https://github.com/thi-ng/umbrella/commit/16e005c))
172
- - update/extend subdivCurve() shape type support ([b389db1](https://github.com/thi-ng/umbrella/commit/b389db1))
173
- - add docs
174
- - add example
175
- - update subdivCurve() to reflect new API, update kernel presets ([b715d43](https://github.com/thi-ng/umbrella/commit/b715d43))
176
- - update/rename subdiv kernels to reflect upstream changes (cd69dd4e20)
177
- - update subdivCurve() impls
178
- - update docs
179
- - add `ICopyTransformed` interface & impls for various shape types ([35781b2](https://github.com/thi-ng/umbrella/commit/35781b2))
180
- - update/extend/simplify resample() impls ([c13c37a](https://github.com/thi-ng/umbrella/commit/c13c37a))
181
- - update/extend/simplify convolve() impls, fix kernel naming ([5907a2a](https://github.com/thi-ng/umbrella/commit/5907a2a))
182
- - add AABBLike.min(), fix AABBLike.offset() impls ([a4dec6b](https://github.com/thi-ng/umbrella/commit/a4dec6b))
183
- - add centerOfWeight(), centroidOfBounds(), update centroid() ([9048aac](https://github.com/thi-ng/umbrella/commit/9048aac))
184
- - update centroid() impls for complex poly & poly, moved to centerOfWeight()
185
- - update centroid() to support more types
186
- - update pkg exports
187
- - add/update iterator impls, add IEmpty impls ([0a15df5](https://github.com/thi-ng/umbrella/commit/0a15df5))
188
- - update ComplexPolygon
189
- - update Path/Path3
190
- - update asPolygon() / asPolyline() ([80b8d9a](https://github.com/thi-ng/umbrella/commit/80b8d9a))
191
- - add support for more types
192
- - dedupe impls
193
- - update pathFromCubics() closed shape check ([10a7558](https://github.com/thi-ng/umbrella/commit/10a7558))
194
- - use eqDelta() to check if path is closed
195
- - update splitAt()/splitNearPoint() ([d863cdd](https://github.com/thi-ng/umbrella/commit/d863cdd))
196
- - add support for more shape types
197
- - dedupe internals
198
- - add IPath, update Path/Path3 impls ([eb7a97d](https://github.com/thi-ng/umbrella/commit/eb7a97d))
199
- - merge 2D/3D versions of pathFromCubics() & normalizedPath() ([159cd56](https://github.com/thi-ng/umbrella/commit/159cd56))
200
- - add PathConstructor type
201
- - update pathFromCubics() & normalizedPath()
202
- - migrate fns to separate files
203
- - update asPath()
204
-
205
- #### 🩹 Bug fixes
206
-
207
- - fix path `__samples` attrib handling in asPolygon() & asPolyline() impls ([3d7bd8c](https://github.com/thi-ng/umbrella/commit/3d7bd8c))
208
- - update various transform op impls for ComplexPolygon ([1e12707](https://github.com/thi-ng/umbrella/commit/1e12707))
209
- - minor other internal refactoring
210
- - update attrib checks in applyTransforms() ([a19f7be](https://github.com/thi-ng/umbrella/commit/a19f7be))
211
- - fix vertices() impl for Polygon3 ([a968737](https://github.com/thi-ng/umbrella/commit/a968737))
212
- - update pathFromCubics to mark path as closed if needed ([c95b5a8](https://github.com/thi-ng/umbrella/commit/c95b5a8))
213
- - fix typo in centroid() dispatch table ([f1f986b](https://github.com/thi-ng/umbrella/commit/f1f986b))
214
- - rename KERNEL_TRIANGLE, fix pkg exports ([ed776ed](https://github.com/thi-ng/umbrella/commit/ed776ed))
215
-
216
- #### ⏱ Performance improvements
217
-
218
- - update rotate() impls to reuse precomputed matrices ([00e33f0](https://github.com/thi-ng/umbrella/commit/00e33f0))
219
- - internal update shape attrib copying ([fe0609a](https://github.com/thi-ng/umbrella/commit/fe0609a))
220
- - rename __copyAttribsRaw => __copyAttribs
221
- - avoid extraneous fn calls
222
-
223
- #### ♻️ Refactoring
224
-
225
- - update offset() & union() ops/signatures ([a943342](https://github.com/thi-ng/umbrella/commit/a943342))
226
- - rename sector() => asSector(), minor refactor ([d1fb9bf](https://github.com/thi-ng/umbrella/commit/d1fb9bf))
227
- - minor internal updates asPolygon() ([599572e](https://github.com/thi-ng/umbrella/commit/599572e))
228
- - rename Dummy => Extra (dummy() => extra()) ([beb4bf0](https://github.com/thi-ng/umbrella/commit/beb4bf0))
229
- - update various op impls
230
- - update pkg exports
231
- - update group to use GroupAttribs ([6f913ff](https://github.com/thi-ng/umbrella/commit/6f913ff))
232
- - update SVGDocAttribs ([102bb5c](https://github.com/thi-ng/umbrella/commit/102bb5c))
233
- - remove `__prec` (now part of base`Attribs`)
234
- - dedupe 2d/3d versions of pathFromCubics(), normalizedPath() ([da8ed42](https://github.com/thi-ng/umbrella/commit/da8ed42))
235
- - simplify `applyTransforms()` for groups ([d1f5873](https://github.com/thi-ng/umbrella/commit/d1f5873))
236
- - simplify various shape transform ops & impls ([ba32846](https://github.com/thi-ng/umbrella/commit/ba32846))
237
- - better re-use of impls for `PCLike` types
238
- - remove obsolete internal helpers
239
- - simplify subdivCurve() impls ([e978fab](https://github.com/thi-ng/umbrella/commit/e978fab))
240
- - minor internal updates ([644a478](https://github.com/thi-ng/umbrella/commit/644a478))
241
- - minor update complex poly hiccup serialization ([b394842](https://github.com/thi-ng/umbrella/commit/b394842))
242
- - enforce uniform naming convention of internal functions ([56992b2](https://github.com/thi-ng/umbrella/commit/56992b2))
243
- - minor updates splitAt()/splitNearPoint() ([3e65f82](https://github.com/thi-ng/umbrella/commit/3e65f82))
244
- - update proximity() to accept optional distance fn ([df7aef2](https://github.com/thi-ng/umbrella/commit/df7aef2))
245
- - dedupe union() impls ([c1880c8](https://github.com/thi-ng/umbrella/commit/c1880c8))
246
- - dedupe path impls for scale()/translate() ([b20cb32](https://github.com/thi-ng/umbrella/commit/b20cb32))
247
-
248
- ### [7.0.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@7.0.1) (2024-05-09)
249
-
250
- #### 🩹 Bug fixes
251
-
252
- - update arc() arg defaults, add docs ([cc57a57](https://github.com/thi-ng/umbrella/commit/cc57a57))
253
-
254
- # [7.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@7.0.0) (2024-05-08)
255
-
256
- #### 🛑 Breaking changes
257
-
258
- - update Path to support sub-paths (holes), update impls ([#464](https://github.com/thi-ng/umbrella/issues/464)) ([9329d27](https://github.com/thi-ng/umbrella/commit/9329d27))
259
- - BREAKING CHANGE: update path related ctors & functions
260
- - add `subPaths` argument for Path ctor/factory fn
261
- - rename `Path.add()` => `Path.addSegments()`
262
- - add `Path.addSubPaths()`
263
- - update `Path.toHiccup()` to include sub-paths
264
- - update `pathFromSvg()` to always return a single path only
265
- - sub-paths are included in main path now
266
- - update impls for following ops to also process sub-paths:
267
- - bounds()
268
- - rotate()
269
- - scale()
270
- - simplify()
271
- - translate()
272
- - transform()
273
- - transformVertices()
274
- - update asPolyline(), add support for multiple boundaries ([#464](https://github.com/thi-ng/umbrella/issues/464)) ([0616b96](https://github.com/thi-ng/umbrella/commit/0616b96))
275
- - BREAKING CHANGE: update asPolygon() to return array of polylines
276
- - add/update impls for complexpoly & path to produce multiple results
277
- - update other internal callsites
278
- - update tests
279
- - update `Path` closing logic ([ce3a922](https://github.com/thi-ng/umbrella/commit/ce3a922))
280
- - BREAKING CHANGE: update `Path` closing logic, `Path.closed` now a readonly property
281
- - add `Path.closed()` getter
282
- - add `Path.close()` to add a `Z`-type segment, check if not closed already
283
- - update `Path.addSegments()` to check each segment, throw error if path already closed
284
- - refactor `PathBuilder.closePath()`
285
- - add asPolygon() support for complexpoly & path ([e3c9f20](https://github.com/thi-ng/umbrella/commit/e3c9f20))
286
- - BREAKING CHANGE: update asPolygon() to return array of polygons (rather than single only)
287
- - add support for complexpoly & path (incl. sub-shapes, holes)
288
- - refactor internal call sites
289
- - update asPath(), add AsPathOpts ([ef0ebdf](https://github.com/thi-ng/umbrella/commit/ef0ebdf))
290
- - BREAKING CHANGE: update asPath() args, add AsPathOpts as 2nd arg
291
- - add option for using only linear path segments (no cubics)
292
- - update impls for complexpoly & other polygon types
293
- - update Path & PathBuilder.close() ([b2134c2](https://github.com/thi-ng/umbrella/commit/b2134c2))
294
- - BREAKING CHANGE: rename `PathBuilder.closePath()` => `PathBuilder.close()`
295
- - update `Path.close()` to return path itself
296
- - rewrite roundedRect() to allow individual corner radii ([a4817aa](https://github.com/thi-ng/umbrella/commit/a4817aa))
297
- - BREAKING CHANGE: update roundedRect() radius handling to allow individual corner radii
298
- - update docs
299
- - add tests
300
-
301
- #### 🚀 Features
302
-
303
- - initial import ComplexPolygon & impls ([#464](https://github.com/thi-ng/umbrella/issues/464)) ([ded007c](https://github.com/thi-ng/umbrella/commit/ded007c))
304
- - add complexPolygon() factory fn
305
- - add bounds() & centroid() impls
306
- - add ops for complex polygons ([#464](https://github.com/thi-ng/umbrella/issues/464)) ([35ce854](https://github.com/thi-ng/umbrella/commit/35ce854))
307
- - add implementations for:
308
- - arcLength()
309
- - area()
310
- - asPath()
311
- - closestPoint()
312
- - convexHull()
313
- - edges()
314
- - flip()
315
- - pointInside()
316
- - resample()
317
- - rotate()
318
- - scale()
319
- - simplify()
320
- - subdivCurve()
321
- - transform()
322
- - transformVertices()
323
- - translate()
324
- - vertices()
325
- - add tests
326
- - add proximity() ([5d5951c](https://github.com/thi-ng/umbrella/commit/5d5951c))
327
- - update `vertices()` impl for `Path`, incl. sub-path vertices ([824067f](https://github.com/thi-ng/umbrella/commit/824067f))
328
- - update simplify() default threshold ([bdba298](https://github.com/thi-ng/umbrella/commit/bdba298))
329
- - add arcLength() for Path, refactor complexpoly impl ([d133bbe](https://github.com/thi-ng/umbrella/commit/d133bbe))
330
- - add/update asCubic() impls for complex poly & path ([7f9e927](https://github.com/thi-ng/umbrella/commit/7f9e927))
331
- - update pathFromCubics() to auto-create sub-paths if needed ([1170e45](https://github.com/thi-ng/umbrella/commit/1170e45))
332
- - add closestPoint() impl for Path ([f0cf2f1](https://github.com/thi-ng/umbrella/commit/f0cf2f1))
333
- - add pointInside() impl for Polyline ([d10bf43](https://github.com/thi-ng/umbrella/commit/d10bf43))
334
- - add centroid() & convexHull() impl for Path ([76aa229](https://github.com/thi-ng/umbrella/commit/76aa229))
335
- - add complexPolygonFromPath() ([cd526f1](https://github.com/thi-ng/umbrella/commit/cd526f1))
336
- - update PathBuilder.close(), fix attrib handling ([e68d0bc](https://github.com/thi-ng/umbrella/commit/e68d0bc))
337
- - only insert closing line segment if needed
338
- - copy attribs for each new path
339
- - add docs
340
- - add opt attribs for `pathFromSvg()` ([2da31f6](https://github.com/thi-ng/umbrella/commit/2da31f6))
341
- - update docs
342
- - add/update tests
343
- - add scaleWithCenter() ([e328494](https://github.com/thi-ng/umbrella/commit/e328494))
344
- - add complexpoly & path support for `clipConvex()` ([7665dc1](https://github.com/thi-ng/umbrella/commit/7665dc1))
345
-
346
- #### 🩹 Bug fixes
347
-
348
- - update vertices() ([2afc05e](https://github.com/thi-ng/umbrella/commit/2afc05e))
349
- - update impl for points, poly, polyline to return shallow copy of point array if no opts given
350
-
351
- #### ♻️ Refactoring
352
-
353
- - update withAttribs(), make new attribs optional ([688e1bf](https://github.com/thi-ng/umbrella/commit/688e1bf))
354
- - update geom examples (recent API changes) ([f0f5ea7](https://github.com/thi-ng/umbrella/commit/f0f5ea7))
355
- - update area() impl for Path ([0960817](https://github.com/thi-ng/umbrella/commit/0960817))
356
- - update/simplify asPath() impls ([cbc71bb](https://github.com/thi-ng/umbrella/commit/cbc71bb))
357
- - update centroid() for complexpoly ([58ac296](https://github.com/thi-ng/umbrella/commit/58ac296))
358
- - re-use migrated fn from [@thi.ng/geom-poly-utils](https://github.com/thi-ng/umbrella/tree/main/packages/geom-poly-utils)
359
- - update path segment transformations ([88b2c40](https://github.com/thi-ng/umbrella/commit/88b2c40))
360
-
361
- ### [6.1.7](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@6.1.7) (2024-04-20)
362
-
363
- #### ♻️ Refactoring
364
-
365
- - update type usage ([2d72859](https://github.com/thi-ng/umbrella/commit/2d72859))
366
-
367
- ## [6.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@6.1.0) (2024-03-21)
368
-
369
- #### 🚀 Features
370
-
371
- - update intersects(), support more shape types ([21ce0d4](https://github.com/thi-ng/umbrella/commit/21ce0d4))
372
- - add IntersectOpts & as optional arg
373
- - update impl for ray-poly/ray-polyline
374
- - add support for new shape pairings:
375
- - line-polygon
376
- - line-polyline
377
- - ray-line
378
- - ray-group
379
- - update intersects(), add line-group support ([1e270fa](https://github.com/thi-ng/umbrella/commit/1e270fa))
380
- - add line-group impl
381
- - refactor/simplify ray-group impl
382
-
383
- ### [6.0.6](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@6.0.6) (2023-12-03)
384
-
385
- #### 🩹 Bug fixes
386
-
387
- - fix [#431](https://github.com/thi-ng/umbrella/issues/431) update Path.withAttribs() impl ([eaad1cd](https://github.com/thi-ng/umbrella/commit/eaad1cd))
388
- - keep closed state of new path the same as original
389
-
390
- ### [6.0.2](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@6.0.2) (2023-11-09)
391
-
392
- #### ♻️ Refactoring
393
-
394
- - update all tests (packages A-S) ([e3085e4](https://github.com/thi-ng/umbrella/commit/e3085e4))
395
-
396
- # [6.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@6.0.0) (2023-11-01)
397
-
398
- #### 🛑 Breaking changes
399
-
400
- - update tessellate() for groups, update return type ([1bb1752](https://github.com/thi-ng/umbrella/commit/1bb1752))
401
- - BREAKING CHANGE: update tessellate() for groups, update return type to Iterable
402
-
403
- ### [5.2.13](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@5.2.13) (2023-10-27)
404
-
405
- #### ♻️ Refactoring
406
-
407
- - update vector imports ([5884c2b](https://github.com/thi-ng/umbrella/commit/5884c2b))
408
-
409
- ## [5.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@5.2.0) (2023-08-29)
410
-
411
- #### 🚀 Features
412
-
413
- - update various shape ctors to accept iterables ([ae0cf5b](https://github.com/thi-ng/umbrella/commit/ae0cf5b))
414
- - update shared APC ctor
415
- - update other shape ctors: BPatch, Group, Path
416
- - add assertions to verify vertex counts in these ctors:
417
- - BPatch
418
- - Cubic
419
- - Line
420
- - Quad/Quad3
421
- - Quadratic
422
- - Triangle
423
-
424
- ## [5.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@5.1.0) (2023-08-06)
425
-
426
- #### 🚀 Features
427
-
428
- - update API for various shape types ([3a45c5f](https://github.com/thi-ng/umbrella/commit/3a45c5f))
429
- - add IClear impls for APC, Group, Path
430
- - add .add() methods for APC, Group, Polygon, Polyline
431
- - update Path.add() to accept multiple args
432
-
433
- # [5.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@5.0.0) (2023-04-08)
434
-
435
- #### 🛑 Breaking changes
436
-
437
- - update asSVG() bleed handling ([cf3eafb](https://github.com/thi-ng/umbrella/commit/cf3eafb))
438
- - BREAKING CHANGE: rename `bleed` attrib to `__bleed`
439
- - for consistency, keep all control attribs prefixed as `__xxx`
440
- - add asSvg() support for `__prec`
441
- - update docs
442
- - update splitArcLength() group handling ([6b97085](https://github.com/thi-ng/umbrella/commit/6b97085))
443
- - BREAKING CHANGE: update splitArcLength() group handling & return type
444
- - update group handling to form sub-groups of predictable length
445
- (e.g. grouping shorter shapes and/or splitting longer shapes until desired arc length is reached)
446
- - remove support for nested groups
447
- - update docs, add example
448
- - update all impls to return single group
449
-
450
- #### 🚀 Features
451
-
452
- - update inscribedSquare/Hex() args, add attribs ([317f630](https://github.com/thi-ng/umbrella/commit/317f630))
453
-
454
- ## [4.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@4.4.0) (2023-03-24)
455
-
456
- #### 🚀 Features
457
-
458
- - avoid recursive application of __samples attrib ([189446d](https://github.com/thi-ng/umbrella/commit/189446d))
459
- - add internal __copyAttribsNoSamples() helper
460
- - update implementations for:
461
- - asPolygon()
462
- - asPolyline()
463
- - edges()
464
- - resample()
465
- - splitArcLength()
466
- - update Group ctor to make attribs optional
467
- - add/expose subdiv & tessellation presets ([0f79c6d](https://github.com/thi-ng/umbrella/commit/0f79c6d))
468
- - re-export aliases for subdivCurve() from [@thi.ng/geom-subdiv-curve](https://github.com/thi-ng/umbrella/tree/main/packages/geom-subdiv-curve) (as `SUBDIV_XXX`...)
469
- - re-export aliases for tessellate() from [@thi.ng/geom-tessellate](https://github.com/thi-ng/umbrella/tree/main/packages/geom-tessellate) (as `TESSELLATE_XXX`...)
470
-
471
- ## [4.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@4.3.0) (2023-03-22)
472
-
473
- #### 🚀 Features
474
-
475
- - add splitArclength() ([906a326](https://github.com/thi-ng/umbrella/commit/906a326))
476
- - add spiral() polyline factory fn ([572e0ef](https://github.com/thi-ng/umbrella/commit/572e0ef))
477
-
478
- ## [4.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@4.2.0) (2023-01-10)
479
-
480
- #### 🚀 Features
481
-
482
- - update vertices() for circle, ellipse, group ([9ff890a](https://github.com/thi-ng/umbrella/commit/9ff890a))
483
- - add support for SamplingOpts.start (circle/ellipse)
484
- - add SamplingOpts support for groups
485
- - migrate internal helpers
486
- - update export maps
487
-
488
- ## [4.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@4.1.0) (2022-12-22)
489
-
490
- #### 🚀 Features
491
-
492
- - add SVG default attribs & setter ([3cb07a6](https://github.com/thi-ng/umbrella/commit/3cb07a6))
493
- - set defaults to no fill & black stroke
494
- - add setSvgDefaultAttribs()
495
-
496
- # [4.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@4.0.0) (2022-12-10)
497
-
498
- #### 🛑 Breaking changes
499
-
500
- - unify function naming ([980f625](https://github.com/thi-ng/umbrella/commit/980f625))
501
- - BREAKING CHANGE: rename rect & aabb ctor fns
502
- - rename rectFromCentroid => rectWithCentroid
503
- - rename rectFromCentroidWithMargin => rectWithCentroidAndMargin
504
- - same for aabb versions
505
-
506
- #### 🚀 Features
507
-
508
- - add AABB.toHiccup() impl ([2c419cc](https://github.com/thi-ng/umbrella/commit/2c419cc))
509
- - add startWithCentroid(), add docs ([6b4df6a](https://github.com/thi-ng/umbrella/commit/6b4df6a))
510
- - update vertices(), config via attribs ([b5a53ba](https://github.com/thi-ng/umbrella/commit/b5a53ba))
511
- - add support for per-shape config overrides via `__samples` attrib object
512
- - add docs
513
-
514
- #### 🩹 Bug fixes
515
-
516
- - correct withAttribs() return type ([867c302](https://github.com/thi-ng/umbrella/commit/867c302))
517
- - update applyTransforms() ([b6262c2](https://github.com/thi-ng/umbrella/commit/b6262c2))
518
- - always remove all spatial transform attribs
519
-
520
- ### [3.4.6](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@3.4.6) (2022-08-06)
521
-
522
- #### ⏱ Performance improvements
523
-
524
- - update vector fns ([d8726c9](https://github.com/thi-ng/umbrella/commit/d8726c9))
525
-
526
- ## [3.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@3.4.0) (2022-06-28)
527
-
528
- #### 🚀 Features
529
-
530
- - add IAttributed impls for all shape types ([ccb40f1](https://github.com/thi-ng/umbrella/commit/ccb40f1))
531
- - add new transform ops & helpers ([cd8217c](https://github.com/thi-ng/umbrella/commit/cd8217c))
532
- - add applyTransforms(), rotate(), scale()
533
- - add internal helpers
534
- - update transform() rect coercion (now => Quad, previous Polygon)
535
- - update edges(), support more types ([3e1b340](https://github.com/thi-ng/umbrella/commit/3e1b340))
536
- - update warpPoints() args, add docs ([50cb467](https://github.com/thi-ng/umbrella/commit/50cb467))
537
- - add AABB support for intersects() ([768dddd](https://github.com/thi-ng/umbrella/commit/768dddd))
538
-
539
- #### 🩹 Bug fixes
540
-
541
- - update AABB/Rect.offset(), clamp size to zero ([620121d](https://github.com/thi-ng/umbrella/commit/620121d))
542
-
543
- ### [3.3.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@3.3.1) (2022-06-23)
544
-
545
- #### ♻️ Refactoring
546
-
547
- - update size handling in various ctors ([ab4b93d](https://github.com/thi-ng/umbrella/commit/ab4b93d))
548
-
549
- ## [3.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@3.3.0) (2022-06-20)
550
-
551
- #### 🚀 Features
552
-
553
- - update rect/aabb, add new factory fns ([f74e377](https://github.com/thi-ng/umbrella/commit/f74e377))
554
- - add ...WithMargin() factory fns
555
- - add AABBLike.offset() impls
556
- - update bounds() to support opt. margin ([8cdc372](https://github.com/thi-ng/umbrella/commit/8cdc372))
557
-
558
- ### [3.2.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@3.2.1) (2022-04-07)
559
-
560
- #### 🩹 Bug fixes
561
-
562
- - fix [#336](https://github.com/thi-ng/umbrella/issues/336), update attrib ctor arg handling ([cb8e52a](https://github.com/thi-ng/umbrella/commit/cb8e52a))
563
- - update internal __argAttribs() helper
564
- - add tests
565
-
566
- ## [3.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@3.2.0) (2022-03-11)
567
-
568
- #### 🚀 Features
569
-
570
- - add opt. bleed attrib for `svgDoc()` ([fb3ed1e](https://github.com/thi-ng/umbrella/commit/fb3ed1e))
571
- - add BPatch type, ctors and warp fn ([ea81cb5](https://github.com/thi-ng/umbrella/commit/ea81cb5))
572
- - update/refactor various shape ops ([0e3b99a](https://github.com/thi-ng/umbrella/commit/0e3b99a))