@thi.ng/geom 7.0.0 → 8.0.0

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.
Files changed (252) hide show
  1. package/CHANGELOG.md +196 -1
  2. package/README.md +349 -112
  3. package/aabb.d.ts +26 -1
  4. package/api/aabb.d.ts +5 -4
  5. package/api/aabb.js +10 -7
  6. package/api/apc.d.ts +5 -3
  7. package/api/arc.d.ts +6 -5
  8. package/api/arc.js +3 -4
  9. package/api/bpatch.d.ts +6 -3
  10. package/api/bpatch.js +5 -3
  11. package/api/circle.d.ts +4 -3
  12. package/api/circle.js +9 -6
  13. package/api/complex-polygon.d.ts +7 -3
  14. package/api/complex-polygon.js +14 -4
  15. package/api/cubic.d.ts +8 -5
  16. package/api/cubic.js +12 -6
  17. package/api/cubic3.d.ts +15 -0
  18. package/api/cubic3.js +38 -0
  19. package/api/ellipse.d.ts +4 -3
  20. package/api/ellipse.js +7 -8
  21. package/api/extra.d.ts +15 -0
  22. package/api/extra.js +19 -0
  23. package/api/group.d.ts +12 -11
  24. package/api/group.js +4 -5
  25. package/api/group3.d.ts +30 -0
  26. package/api/group3.js +48 -0
  27. package/api/line.d.ts +8 -5
  28. package/api/line.js +8 -8
  29. package/api/line3.d.ts +15 -0
  30. package/api/line3.js +29 -0
  31. package/api/path.d.ts +14 -11
  32. package/api/path.js +17 -12
  33. package/api/path3.d.ts +28 -0
  34. package/api/path3.js +91 -0
  35. package/api/plane.d.ts +4 -3
  36. package/api/plane.js +7 -4
  37. package/api/points.d.ts +8 -10
  38. package/api/points.js +7 -20
  39. package/api/points3.d.ts +13 -0
  40. package/api/points3.js +21 -0
  41. package/api/polygon.d.ts +7 -4
  42. package/api/polygon.js +5 -3
  43. package/api/polygon3.d.ts +14 -0
  44. package/api/polygon3.js +24 -0
  45. package/api/polyline.d.ts +18 -4
  46. package/api/polyline.js +8 -5
  47. package/api/polyline3.d.ts +28 -0
  48. package/api/polyline3.js +31 -0
  49. package/api/quad.d.ts +7 -4
  50. package/api/quad.js +5 -3
  51. package/api/quad3.d.ts +7 -4
  52. package/api/quad3.js +6 -4
  53. package/api/quadratic.d.ts +8 -5
  54. package/api/quadratic.js +12 -6
  55. package/api/quadratic3.d.ts +15 -0
  56. package/api/quadratic3.js +38 -0
  57. package/api/ray.d.ts +4 -3
  58. package/api/ray.js +6 -7
  59. package/api/ray3.d.ts +14 -0
  60. package/api/ray3.js +33 -0
  61. package/api/rect.d.ts +5 -3
  62. package/api/rect.js +11 -8
  63. package/api/sphere.d.ts +4 -3
  64. package/api/sphere.js +8 -5
  65. package/api/text.d.ts +4 -3
  66. package/api/text.js +8 -5
  67. package/api/triangle.d.ts +7 -4
  68. package/api/triangle.js +5 -3
  69. package/api/triangle3.d.ts +14 -0
  70. package/api/triangle3.js +26 -0
  71. package/api.d.ts +193 -0
  72. package/api.js +10 -0
  73. package/apply-transforms.d.ts +33 -11
  74. package/apply-transforms.js +24 -4
  75. package/arc-length.d.ts +18 -4
  76. package/arc-length.js +18 -3
  77. package/arc.d.ts +52 -2
  78. package/arc.js +12 -1
  79. package/area.d.ts +6 -10
  80. package/area.js +3 -3
  81. package/as-cubic.d.ts +31 -5
  82. package/as-cubic.js +86 -24
  83. package/as-path.d.ts +14 -7
  84. package/as-path.js +49 -24
  85. package/as-polygon.d.ts +20 -5
  86. package/as-polygon.js +46 -12
  87. package/as-polyline.d.ts +18 -5
  88. package/as-polyline.js +29 -23
  89. package/as-sector.d.ts +13 -0
  90. package/as-sector.js +18 -0
  91. package/as-svg.d.ts +31 -9
  92. package/as-svg.js +21 -18
  93. package/bounds.d.ts +12 -2
  94. package/bounds.js +15 -0
  95. package/bpatch.d.ts +26 -1
  96. package/center-of-weight.d.ts +22 -0
  97. package/center-of-weight.js +23 -0
  98. package/center.d.ts +11 -5
  99. package/center.js +9 -4
  100. package/centroid-of-bounds.d.ts +12 -0
  101. package/centroid-of-bounds.js +9 -0
  102. package/centroid.d.ts +14 -4
  103. package/centroid.js +16 -17
  104. package/circle.d.ts +1 -1
  105. package/classify-point.d.ts +3 -1
  106. package/classify-point.js +7 -4
  107. package/clip-convex.d.ts +27 -8
  108. package/clip-convex.js +52 -17
  109. package/closest-point.d.ts +1 -1
  110. package/complex-polygon-from-path.d.ts +1 -1
  111. package/complex-polygon.d.ts +1 -1
  112. package/convex-hull.d.ts +9 -2
  113. package/convex-hull.js +3 -3
  114. package/convolve.d.ts +72 -0
  115. package/convolve.js +33 -0
  116. package/cubic.d.ts +1 -1
  117. package/cubic.js +7 -7
  118. package/cubic3.d.ts +8 -0
  119. package/cubic3.js +14 -0
  120. package/edges.d.ts +2 -2
  121. package/ellipse.d.ts +1 -1
  122. package/extra.d.ts +14 -0
  123. package/extra.js +5 -0
  124. package/fit-into-bounds.d.ts +14 -4
  125. package/fit-into-bounds.js +6 -6
  126. package/flip.d.ts +21 -5
  127. package/flip.js +19 -12
  128. package/from-tessellation.d.ts +54 -0
  129. package/from-tessellation.js +27 -0
  130. package/group.d.ts +2 -2
  131. package/group3.d.ts +16 -0
  132. package/group3.js +5 -0
  133. package/index.d.ts +35 -1
  134. package/index.js +35 -1
  135. package/internal/bounds.d.ts +3 -4
  136. package/internal/copy.d.ts +8 -7
  137. package/internal/copy.js +3 -7
  138. package/internal/dispatch.d.ts +1 -1
  139. package/internal/error.d.ts +3 -0
  140. package/internal/error.js +6 -0
  141. package/internal/pclike.d.ts +3 -2
  142. package/internal/pclike.js +6 -0
  143. package/internal/points-as-shape.d.ts +11 -2
  144. package/internal/points-as-shape.js +10 -1
  145. package/internal/split.d.ts +2 -2
  146. package/internal/split.js +13 -8
  147. package/internal/transform.d.ts +6 -22
  148. package/internal/transform.js +2 -21
  149. package/internal/vertices.d.ts +3 -2
  150. package/internal/vertices.js +3 -1
  151. package/intersects.d.ts +5 -4
  152. package/intersects.js +6 -4
  153. package/line.d.ts +1 -1
  154. package/line3.d.ts +6 -0
  155. package/line3.js +9 -0
  156. package/map-point.d.ts +1 -1
  157. package/normalized-path.d.ts +17 -0
  158. package/normalized-path.js +23 -0
  159. package/offset.d.ts +16 -2
  160. package/offset.js +2 -2
  161. package/package.json +149 -35
  162. package/path-builder.d.ts +42 -13
  163. package/path-builder.js +68 -42
  164. package/path-from-cubics.d.ts +26 -0
  165. package/path-from-cubics.js +39 -0
  166. package/path-from-svg.d.ts +1 -1
  167. package/path-from-svg.js +29 -29
  168. package/path.d.ts +2 -52
  169. package/path.js +1 -58
  170. package/path3.d.ts +16 -0
  171. package/path3.js +5 -0
  172. package/plane.d.ts +11 -1
  173. package/plane.js +3 -0
  174. package/point-at.d.ts +1 -1
  175. package/point-inside.d.ts +3 -1
  176. package/point-inside.js +4 -1
  177. package/points.d.ts +2 -3
  178. package/points.js +2 -4
  179. package/points3.d.ts +5 -0
  180. package/points3.js +5 -0
  181. package/polygon.d.ts +5 -5
  182. package/polygon3.d.ts +5 -0
  183. package/polygon3.js +5 -0
  184. package/polyline.d.ts +2 -2
  185. package/polyline3.d.ts +5 -0
  186. package/polyline3.js +5 -0
  187. package/proximity.d.ts +5 -3
  188. package/proximity.js +2 -2
  189. package/quad.d.ts +2 -7
  190. package/quad.js +1 -29
  191. package/quad3.d.ts +8 -0
  192. package/quad3.js +30 -0
  193. package/quadratic.d.ts +1 -1
  194. package/quadratic3.d.ts +7 -0
  195. package/quadratic3.js +11 -0
  196. package/ray.d.ts +1 -1
  197. package/ray.js +2 -2
  198. package/ray3.d.ts +5 -0
  199. package/ray3.js +6 -0
  200. package/rect.d.ts +1 -1
  201. package/resample.d.ts +45 -4
  202. package/resample.js +26 -16
  203. package/rotate-around-axis.d.ts +33 -0
  204. package/rotate-around-axis.js +57 -0
  205. package/rotate.d.ts +15 -2
  206. package/rotate.js +47 -45
  207. package/rounded-rect.d.ts +25 -0
  208. package/rounded-rect.js +18 -0
  209. package/scale-with-center.d.ts +2 -2
  210. package/scale.d.ts +24 -2
  211. package/scale.js +59 -43
  212. package/scatter.d.ts +1 -1
  213. package/simplify.d.ts +8 -2
  214. package/simplify.js +7 -4
  215. package/smooth-poly.d.ts +27 -0
  216. package/smooth-poly.js +11 -0
  217. package/sphere.d.ts +1 -1
  218. package/split-arclength.d.ts +6 -2
  219. package/split-at.d.ts +18 -2
  220. package/split-at.js +66 -34
  221. package/split-near.d.ts +13 -2
  222. package/split-near.js +23 -27
  223. package/subdiv-curve.d.ts +81 -27
  224. package/subdiv-curve.js +44 -28
  225. package/tangent-at.d.ts +1 -1
  226. package/tessellate.d.ts +72 -18
  227. package/tessellate.js +53 -8
  228. package/text.d.ts +1 -1
  229. package/transform-vertices.d.ts +30 -6
  230. package/transform-vertices.js +36 -38
  231. package/transform.d.ts +30 -2
  232. package/transform.js +54 -40
  233. package/translate.d.ts +12 -2
  234. package/translate.js +42 -43
  235. package/triangle.d.ts +1 -1
  236. package/triangle3.d.ts +6 -0
  237. package/triangle3.js +8 -0
  238. package/union.d.ts +11 -2
  239. package/union.js +6 -7
  240. package/unmap-point.d.ts +1 -1
  241. package/vertices.d.ts +3 -3
  242. package/vertices.js +14 -4
  243. package/volume.d.ts +1 -1
  244. package/warp-points.d.ts +35 -4
  245. package/warp-points.js +2 -0
  246. package/with-attribs.d.ts +4 -5
  247. package/internal/rotate.d.ts +0 -5
  248. package/internal/rotate.js +0 -8
  249. package/internal/scale.d.ts +0 -5
  250. package/internal/scale.js +0 -12
  251. package/internal/translate.d.ts +0 -5
  252. package/internal/translate.js +0 -8
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- - **Last updated**: 2024-05-08T18:24:31Z
3
+ - **Last updated**: 2024-06-21T19:34:38Z
4
4
  - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
5
 
6
6
  All notable changes to this project will be documented in this file.
@@ -9,6 +9,201 @@ See [Conventional Commits](https://conventionalcommits.org/) for commit guidelin
9
9
  **Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
10
10
  and/or version bumps of transitive dependencies.
11
11
 
12
+ # [8.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@8.0.0) (2024-06-21)
13
+
14
+ #### 🛑 Breaking changes
15
+
16
+ - add/update asCubic()/asPath() impls/types/signatures ([9b4df2e](https://github.com/thi-ng/umbrella/commit/9b4df2e))
17
+ - BREAKING CHANGE: update asCubic/asPath() to use new CubicOpts
18
+ - add support for more shape types, incl. 3D
19
+ - update svgDoc(), add SVGDocAttribs ([a26628b](https://github.com/thi-ng/umbrella/commit/a26628b))
20
+ - BREAKING CHANGE: rename `__bleed` attrib => `__margin`
21
+ - set default SVG precision to 3 (fractional digits)
22
+ - update clipConvex(), add support for more shape types ([5d594c6](https://github.com/thi-ng/umbrella/commit/5d594c6))
23
+ - BREAKING CHANGE: update clipConvex() to return array of result shapes (rather than single)
24
+ - add support for polyline & open paths
25
+ - update/extend tessellate() to use new setup/behavior ([c4dadfd](https://github.com/thi-ng/umbrella/commit/c4dadfd))
26
+ - BREAKING CHANGE: update/extend tessellate() to use new setup/behavior
27
+ - update signature to return `Tessellation`
28
+ - add/update impls for complex polygons & groups
29
+ - add `groupFromTessellation()` to process tessellation results
30
+ - add `TESSELLATE_EARCUT_COMPLEX` preset
31
+ - remove `TESSELLATE_EDGE_SPLIT_THRESHOLD` & `TESSELLATE_TRI_FAN_SPLIT_THRESHOLD` (see [97f1f66200](https://github.com/thi-ng/umbrella/commit/97f1f66200))
32
+ - 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))
33
+ - BREAKING CHANGE: migrate/internalize types from [@thi.ng/geom-api](https://github.com/thi-ng/umbrella/tree/main/packages/geom-api)
34
+ - add/migrate:
35
+ - Attribs, GroupAttribs, IAttributed
36
+ - IShape, IShape2/3
37
+ - AABBLike, SphereLike
38
+ - PCLike, PCLikeConstructor
39
+ - IHiccupShape, IHiccupShape2/3
40
+ - SegmentType2/3
41
+ - PathSegment, PathSegment2/3
42
+ - HiccupPathSegment, IHiccupPathSegment
43
+ - CubicOpts
44
+ - re-export types from geom helper packages (to avoid extraneous imports in user code):
45
+ - IntersectionResult, IntersectionType, NONE (geom-isec)
46
+ - SamplingOpts, setDefaultSamples (geom-resample)
47
+ - SubdivKernel (geom-subdiv-curve)
48
+ - Tessellator, Tessellation (geom-tessellate)
49
+ - update CubicOpts.mode, rename `breakpoints` => `break`
50
+ - update imports
51
+ - update deps
52
+ - update tessellate() for new API ([4c6a5f4](https://github.com/thi-ng/umbrella/commit/4c6a5f4))
53
+ - BREAKING CHANGE: update tessellate() for new API
54
+ - add optional ITessellation arg
55
+ - add `basicTessellation()` & `meshTessellation()` factory fns
56
+ - update tessellation post-processors (`graphFromTessellation()` etc.)
57
+ - update PathBuilder to support 2D/3D, add pathBuilder3() ([dcf5210](https://github.com/thi-ng/umbrella/commit/dcf5210))
58
+ - BREAKING CHANGE: PathBuilder now using injected segment ctors
59
+ - users should only use pathBuilder() & pathBuilder3() factory functions
60
+ - add internal P2D & P3D shape ctor configs
61
+ - update PathBuilder ctor & internals to use injected shape ctors for segments
62
+ - update pathFromSvg()
63
+ - migrate roundedRect() to own file
64
+
65
+ #### 🚀 Features
66
+
67
+ - add/update various 2d/3d shape types ([262188c](https://github.com/thi-ng/umbrella/commit/262188c))
68
+ - add 3d shape types & factory functions:
69
+ - Cubic3
70
+ - Line3
71
+ - Path3
72
+ - Points3
73
+ - Polygon3
74
+ - Polyline3
75
+ - Quad3
76
+ - Quadratic3
77
+ - Ray3
78
+ - Triangle3
79
+ - update existing shape type impls & ctors/factories
80
+ - add/update rotate, scale, translate, transform ops (signatures & type support, impls) ([cb04a96](https://github.com/thi-ng/umbrella/commit/cb04a96))
81
+ - add rotateAroundAxis(), add rotateX/Y/Z() ops ([8831cc1](https://github.com/thi-ng/umbrella/commit/8831cc1))
82
+ - update applyTransforms(), add support for 3D shapes/transforms ([91be2ec](https://github.com/thi-ng/umbrella/commit/91be2ec))
83
+ - add/update internal helpers ([10a73f2](https://github.com/thi-ng/umbrella/commit/10a73f2))
84
+ - add/update bounds() impls and fitIntoBounds2/3() types/signatures ([e7a0b5c](https://github.com/thi-ng/umbrella/commit/e7a0b5c))
85
+ - add/update asPolygon()/asPolyline() / vertices() impls/types/signatures ([3ba9714](https://github.com/thi-ng/umbrella/commit/3ba9714))
86
+ - add/update resample()/simplify()/subdivCurve() impls ([1682577](https://github.com/thi-ng/umbrella/commit/1682577))
87
+ - add/update splitAt()/splitArcLength() impls/types ([e6f9e64](https://github.com/thi-ng/umbrella/commit/e6f9e64))
88
+ - add/update clipConvex()/convexHull() impls/types ([a6215c7](https://github.com/thi-ng/umbrella/commit/a6215c7))
89
+ - add shape types support for flip() ([9628c7b](https://github.com/thi-ng/umbrella/commit/9628c7b))
90
+ - add shape types support for arcLength() & center() ([2a9af0d](https://github.com/thi-ng/umbrella/commit/2a9af0d))
91
+ - add Group3 shape type, update pkg exports ([1646263](https://github.com/thi-ng/umbrella/commit/1646263))
92
+ - add sector() path builder ([807b5f1](https://github.com/thi-ng/umbrella/commit/807b5f1))
93
+ - update SVG default attribs & handling ([f80f67a](https://github.com/thi-ng/umbrella/commit/f80f67a))
94
+ - update setSvgDefaultAttribs() to allow merging
95
+ - add/update splitAt() & splitNearPoint() impls ([1851b1d](https://github.com/thi-ng/umbrella/commit/1851b1d))
96
+ - add planeFromRay() ([c44d8da](https://github.com/thi-ng/umbrella/commit/c44d8da))
97
+ - add 2d line impl for classifyPoint() ([92e54ea](https://github.com/thi-ng/umbrella/commit/92e54ea))
98
+ - fix [#429](https://github.com/thi-ng/umbrella/issues/429), add polygon support for classifyPoint() ([b56ecc1](https://github.com/thi-ng/umbrella/commit/b56ecc1))
99
+ - refactor plane impl
100
+ - add/update subdivCurve() type support, args & impls ([6233379](https://github.com/thi-ng/umbrella/commit/6233379))
101
+ - update AABB & Rect ctors to clamp size to zero ([7cec7d2](https://github.com/thi-ng/umbrella/commit/7cec7d2))
102
+ - add convolve() w/ impls for poly/polyline (incl. 3d versions) ([b682d34](https://github.com/thi-ng/umbrella/commit/b682d34))
103
+ - also re-export kernel presets (KERNEL_BOX, KERNEL_TRIANGLE, KERNEL_GAUSSIAN)
104
+ - update convolve(), add ComplexPolygon support ([bfaa0aa](https://github.com/thi-ng/umbrella/commit/bfaa0aa))
105
+ - add/update/fix type info, docs & impls for various ops ([d5ccb1a](https://github.com/thi-ng/umbrella/commit/d5ccb1a))
106
+ - update convolve(), add group support ([00bdc66](https://github.com/thi-ng/umbrella/commit/00bdc66))
107
+ - add Dummy shape type to wrap arbitrary hiccup data ([b6e18bc](https://github.com/thi-ng/umbrella/commit/b6e18bc))
108
+ - add various dummy op impls for Dummy shape type ([05eeb9f](https://github.com/thi-ng/umbrella/commit/05eeb9f))
109
+ - add arcLength(), area() default impls (return 0) ([f2a30bf](https://github.com/thi-ng/umbrella/commit/f2a30bf))
110
+ - add TESSELLATE_EDGE_SPLIT_THRESHOLD() tessellator ([1d8feff](https://github.com/thi-ng/umbrella/commit/1d8feff))
111
+ - add new tessellators presets ([95d6f70](https://github.com/thi-ng/umbrella/commit/95d6f70))
112
+ - add TESSELLATE_TRI_FAN_SPLIT
113
+ - add TESSELLATE_TRI_FAN_SPLIT_THRESHOLD
114
+ - add tessellation post-processing helpers ([7687975](https://github.com/thi-ng/umbrella/commit/7687975))
115
+ - add graphFromTessellation()
116
+ - add edgesFromTessellation()
117
+ - add edgePointsFromTessellation()
118
+ - update deps (adjacency)
119
+ - update pkg exports/meta
120
+ - add smoothPolygon()/smoothPolyline() ([217a8c2](https://github.com/thi-ng/umbrella/commit/217a8c2))
121
+ - add warpPoint(), add docs ([bf91ff3](https://github.com/thi-ng/umbrella/commit/bf91ff3))
122
+ - add internal __ensurePCLike() helper ([7306b35](https://github.com/thi-ng/umbrella/commit/7306b35))
123
+ - update tessellate(), add `TESSELLATE_TRI_FAN_BOUNDARY` ([1c0d1ce](https://github.com/thi-ng/umbrella/commit/1c0d1ce))
124
+ - add AABB impl for `asPolygon()` ([16e005c](https://github.com/thi-ng/umbrella/commit/16e005c))
125
+ - update/extend subdivCurve() shape type support ([b389db1](https://github.com/thi-ng/umbrella/commit/b389db1))
126
+ - add docs
127
+ - add example
128
+ - update subdivCurve() to reflect new API, update kernel presets ([b715d43](https://github.com/thi-ng/umbrella/commit/b715d43))
129
+ - update/rename subdiv kernels to reflect upstream changes (cd69dd4e20)
130
+ - update subdivCurve() impls
131
+ - update docs
132
+ - add `ICopyTransformed` interface & impls for various shape types ([35781b2](https://github.com/thi-ng/umbrella/commit/35781b2))
133
+ - update/extend/simplify resample() impls ([c13c37a](https://github.com/thi-ng/umbrella/commit/c13c37a))
134
+ - update/extend/simplify convolve() impls, fix kernel naming ([5907a2a](https://github.com/thi-ng/umbrella/commit/5907a2a))
135
+ - add AABBLike.min(), fix AABBLike.offset() impls ([a4dec6b](https://github.com/thi-ng/umbrella/commit/a4dec6b))
136
+ - add centerOfWeight(), centroidOfBounds(), update centroid() ([9048aac](https://github.com/thi-ng/umbrella/commit/9048aac))
137
+ - update centroid() impls for complex poly & poly, moved to centerOfWeight()
138
+ - update centroid() to support more types
139
+ - update pkg exports
140
+ - add/update iterator impls, add IEmpty impls ([0a15df5](https://github.com/thi-ng/umbrella/commit/0a15df5))
141
+ - update ComplexPolygon
142
+ - update Path/Path3
143
+ - update asPolygon() / asPolyline() ([80b8d9a](https://github.com/thi-ng/umbrella/commit/80b8d9a))
144
+ - add support for more types
145
+ - dedupe impls
146
+ - update pathFromCubics() closed shape check ([10a7558](https://github.com/thi-ng/umbrella/commit/10a7558))
147
+ - use eqDelta() to check if path is closed
148
+ - update splitAt()/splitNearPoint() ([d863cdd](https://github.com/thi-ng/umbrella/commit/d863cdd))
149
+ - add support for more shape types
150
+ - dedupe internals
151
+ - add IPath, update Path/Path3 impls ([eb7a97d](https://github.com/thi-ng/umbrella/commit/eb7a97d))
152
+ - merge 2D/3D versions of pathFromCubics() & normalizedPath() ([159cd56](https://github.com/thi-ng/umbrella/commit/159cd56))
153
+ - add PathConstructor type
154
+ - update pathFromCubics() & normalizedPath()
155
+ - migrate fns to separate files
156
+ - update asPath()
157
+
158
+ #### 🩹 Bug fixes
159
+
160
+ - fix path `__samples` attrib handling in asPolygon() & asPolyline() impls ([3d7bd8c](https://github.com/thi-ng/umbrella/commit/3d7bd8c))
161
+ - update various transform op impls for ComplexPolygon ([1e12707](https://github.com/thi-ng/umbrella/commit/1e12707))
162
+ - minor other internal refactoring
163
+ - update attrib checks in applyTransforms() ([a19f7be](https://github.com/thi-ng/umbrella/commit/a19f7be))
164
+ - fix vertices() impl for Polygon3 ([a968737](https://github.com/thi-ng/umbrella/commit/a968737))
165
+ - update pathFromCubics to mark path as closed if needed ([c95b5a8](https://github.com/thi-ng/umbrella/commit/c95b5a8))
166
+ - fix typo in centroid() dispatch table ([f1f986b](https://github.com/thi-ng/umbrella/commit/f1f986b))
167
+ - rename KERNEL_TRIANGLE, fix pkg exports ([ed776ed](https://github.com/thi-ng/umbrella/commit/ed776ed))
168
+
169
+ #### ⏱ Performance improvements
170
+
171
+ - update rotate() impls to reuse precomputed matrices ([00e33f0](https://github.com/thi-ng/umbrella/commit/00e33f0))
172
+ - internal update shape attrib copying ([fe0609a](https://github.com/thi-ng/umbrella/commit/fe0609a))
173
+ - rename __copyAttribsRaw => __copyAttribs
174
+ - avoid extraneous fn calls
175
+
176
+ #### ♻️ Refactoring
177
+
178
+ - update offset() & union() ops/signatures ([a943342](https://github.com/thi-ng/umbrella/commit/a943342))
179
+ - rename sector() => asSector(), minor refactor ([d1fb9bf](https://github.com/thi-ng/umbrella/commit/d1fb9bf))
180
+ - minor internal updates asPolygon() ([599572e](https://github.com/thi-ng/umbrella/commit/599572e))
181
+ - rename Dummy => Extra (dummy() => extra()) ([beb4bf0](https://github.com/thi-ng/umbrella/commit/beb4bf0))
182
+ - update various op impls
183
+ - update pkg exports
184
+ - update group to use GroupAttribs ([6f913ff](https://github.com/thi-ng/umbrella/commit/6f913ff))
185
+ - update SVGDocAttribs ([102bb5c](https://github.com/thi-ng/umbrella/commit/102bb5c))
186
+ - remove `__prec` (now part of base`Attribs`)
187
+ - dedupe 2d/3d versions of pathFromCubics(), normalizedPath() ([da8ed42](https://github.com/thi-ng/umbrella/commit/da8ed42))
188
+ - simplify `applyTransforms()` for groups ([d1f5873](https://github.com/thi-ng/umbrella/commit/d1f5873))
189
+ - simplify various shape transform ops & impls ([ba32846](https://github.com/thi-ng/umbrella/commit/ba32846))
190
+ - better re-use of impls for `PCLike` types
191
+ - remove obsolete internal helpers
192
+ - simplify subdivCurve() impls ([e978fab](https://github.com/thi-ng/umbrella/commit/e978fab))
193
+ - minor internal updates ([644a478](https://github.com/thi-ng/umbrella/commit/644a478))
194
+ - minor update complex poly hiccup serialization ([b394842](https://github.com/thi-ng/umbrella/commit/b394842))
195
+ - enforce uniform naming convention of internal functions ([56992b2](https://github.com/thi-ng/umbrella/commit/56992b2))
196
+ - minor updates splitAt()/splitNearPoint() ([3e65f82](https://github.com/thi-ng/umbrella/commit/3e65f82))
197
+ - update proximity() to accept optional distance fn ([df7aef2](https://github.com/thi-ng/umbrella/commit/df7aef2))
198
+ - dedupe union() impls ([c1880c8](https://github.com/thi-ng/umbrella/commit/c1880c8))
199
+ - dedupe path impls for scale()/translate() ([b20cb32](https://github.com/thi-ng/umbrella/commit/b20cb32))
200
+
201
+ ### [7.0.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@7.0.1) (2024-05-09)
202
+
203
+ #### 🩹 Bug fixes
204
+
205
+ - update arc() arg defaults, add docs ([cc57a57](https://github.com/thi-ng/umbrella/commit/cc57a57))
206
+
12
207
  # [7.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/geom@7.0.0) (2024-05-08)
13
208
 
14
209
  #### 🛑 Breaking changes