@metamesh/modeling 0.19.0 → 0.20.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 (789) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +34 -18
  3. package/dist/api/engine.d.ts +217 -121
  4. package/dist/api/export.d.ts +123 -79
  5. package/dist/api/geometry.d.ts +406 -2102
  6. package/dist/api/index.d.ts +472 -1798
  7. package/dist/api/math.d.ts +315 -0
  8. package/dist/api/mechanical.d.ts +1041 -0
  9. package/dist/api/mesh.d.ts +360 -88
  10. package/dist/api/text.d.ts +24 -44
  11. package/dist/docs/guides/concepts.md +67 -33
  12. package/dist/docs/guides/exporting.md +88 -0
  13. package/dist/docs/guides/fonts.md +5 -3
  14. package/dist/docs/guides/fundamentals.md +12 -24
  15. package/dist/docs/guides/generation.md +24 -16
  16. package/dist/docs/guides/geometry-values.md +192 -134
  17. package/dist/docs/guides/hosting.md +51 -96
  18. package/dist/docs/guides/profiles-and-extrusion.md +159 -11
  19. package/dist/docs/guides/recipes.md +121 -28
  20. package/dist/docs/guides/resolution-and-inspection.md +43 -23
  21. package/dist/docs/guides/solid-joins.md +12 -2
  22. package/dist/docs/guides/standalone-model.md +4 -2
  23. package/dist/docs/guides/svg-and-text.md +76 -39
  24. package/dist/docs/guides/sweeps-and-lofts.md +88 -44
  25. package/dist/docs/guides/transforms-and-placement.md +113 -103
  26. package/dist/docs/guides/workers.md +166 -0
  27. package/dist/docs/manifest.json +4133 -4153
  28. package/dist/docs/reference/engine/GenerationOptions.md +2 -3
  29. package/dist/docs/reference/engine/GeometryResource.md +6 -6
  30. package/dist/docs/reference/engine/ModelDependencies.md +2 -2
  31. package/dist/docs/reference/engine/ModelEngine.md +2 -3
  32. package/dist/docs/reference/engine/ModelEngineOptions.md +2 -7
  33. package/dist/docs/reference/engine/ModelPart.md +6 -6
  34. package/dist/docs/reference/engine/ModelResult.md +2 -2
  35. package/dist/docs/reference/engine/ModelRunArguments.md +2 -2
  36. package/dist/docs/reference/engine/ModelRunOptions.md +2 -3
  37. package/dist/docs/reference/engine/ModelSession.md +2 -2
  38. package/dist/docs/reference/engine/SessionOptions.md +2 -3
  39. package/dist/docs/reference/engine/categories/host-lifecycle.md +9 -3
  40. package/dist/docs/reference/engine/checkModel.md +6 -2
  41. package/dist/docs/reference/engine/createModelEngine.md +5 -3
  42. package/dist/docs/reference/engine/defaultModelingLimits.md +4 -11
  43. package/dist/docs/reference/engine/modelingWasmUrl.md +2 -2
  44. package/dist/docs/reference/engine.md +7 -1
  45. package/dist/docs/reference/export/Export3mfOptions.md +2 -6
  46. package/dist/docs/reference/export/ExportDiagnostic.md +2 -14
  47. package/dist/docs/reference/export/ExportFormat.md +2 -14
  48. package/dist/docs/reference/export/ExportGeometry.md +3 -15
  49. package/dist/docs/reference/export/ExportGlbOptions.md +14 -18
  50. package/dist/docs/reference/export/ExportLimits.md +2 -14
  51. package/dist/docs/reference/export/ExportMaterial.md +2 -14
  52. package/dist/docs/reference/export/ExportOptions.md +2 -14
  53. package/dist/docs/reference/export/ExportPart.md +2 -14
  54. package/dist/docs/reference/export/ExportReport.md +2 -14
  55. package/dist/docs/reference/export/ExportSink.md +5 -15
  56. package/dist/docs/reference/export/ExportStlOptions.md +2 -6
  57. package/dist/docs/reference/export/ExportedFile.md +14 -26
  58. package/dist/docs/reference/export/categories/mesh-serialization.md +9 -3
  59. package/dist/docs/reference/export/defaultExportLimits.md +2 -2
  60. package/dist/docs/reference/export/export3mf.md +4 -6
  61. package/dist/docs/reference/export/exportGlb.md +8 -10
  62. package/dist/docs/reference/export/exportStl.md +4 -6
  63. package/dist/docs/reference/export/write3mf.md +6 -6
  64. package/dist/docs/reference/export/writeGlb.md +10 -10
  65. package/dist/docs/reference/export/writeStl.md +6 -6
  66. package/dist/docs/reference/export.md +9 -3
  67. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +4 -4
  68. package/dist/docs/reference/geometry/Anchor3-type.md +3 -7
  69. package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
  70. package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
  71. package/dist/docs/reference/geometry/ArcCurve3.md +3 -3
  72. package/dist/docs/reference/geometry/AttachOptions.md +4 -9
  73. package/dist/docs/reference/geometry/Bounds2-type.md +9 -30
  74. package/dist/docs/reference/geometry/Bounds2Data.md +2 -19
  75. package/dist/docs/reference/geometry/Bounds2Input.md +2 -10
  76. package/dist/docs/reference/geometry/Bounds2Options.md +2 -6
  77. package/dist/docs/reference/geometry/Bounds3-type.md +9 -30
  78. package/dist/docs/reference/geometry/Bounds3Data.md +2 -15
  79. package/dist/docs/reference/geometry/Bounds3Input.md +2 -10
  80. package/dist/docs/reference/geometry/Bounds3Options.md +2 -6
  81. package/dist/docs/reference/geometry/BoundsFit2.md +2 -2
  82. package/dist/docs/reference/geometry/BoundsFit3.md +2 -2
  83. package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -2
  84. package/dist/docs/reference/geometry/BoxAnchorFace.md +3 -3
  85. package/dist/docs/reference/geometry/BoxAnchorOptions.md +3 -3
  86. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +3 -7
  87. package/dist/docs/reference/geometry/CircleContourOptions.md +3 -7
  88. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +3 -12
  89. package/dist/docs/reference/geometry/CircularResolutionOptions.md +2 -2
  90. package/dist/docs/reference/geometry/CircularSampling.md +2 -2
  91. package/dist/docs/reference/geometry/CircularSamplingOptions.md +2 -2
  92. package/dist/docs/reference/geometry/Contour.md +4 -9
  93. package/dist/docs/reference/geometry/ContourCurve.md +3 -3
  94. package/dist/docs/reference/geometry/ContourPoint.md +3 -3
  95. package/dist/docs/reference/geometry/ContourSegment.md +3 -3
  96. package/dist/docs/reference/geometry/CorrespondingComponent.md +3 -7
  97. package/dist/docs/reference/geometry/CorrespondingContour.md +3 -7
  98. package/dist/docs/reference/geometry/CorrespondingProfile.md +3 -7
  99. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +4 -8
  100. package/dist/docs/reference/geometry/CubicBezierCurve2.md +3 -3
  101. package/dist/docs/reference/geometry/CubicBezierCurve3.md +3 -3
  102. package/dist/docs/reference/geometry/Curve2.md +3 -3
  103. package/dist/docs/reference/geometry/Curve3.md +3 -3
  104. package/dist/docs/reference/geometry/CurveSamplingOptions.md +3 -11
  105. package/dist/docs/reference/geometry/CylinderAnchorFace.md +3 -3
  106. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -4
  107. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +2 -2
  108. package/dist/docs/reference/geometry/EdgeTreatment.md +2 -6
  109. package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -7
  110. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +9 -18
  111. package/dist/docs/reference/geometry/FittedTextLayout.md +2 -2
  112. package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +4 -11
  113. package/dist/docs/reference/geometry/Frame3Options.md +69 -0
  114. package/dist/docs/reference/geometry/GeometryError.md +2 -6
  115. package/dist/docs/reference/geometry/GeometryErrorCode.md +2 -6
  116. package/dist/docs/reference/geometry/GeometryErrorContext.md +2 -6
  117. package/dist/docs/reference/geometry/GeometryResolution.md +2 -10
  118. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +3 -11
  119. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +3 -11
  120. package/dist/docs/reference/geometry/GridPatternOptions.md +7 -9
  121. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +2 -10
  122. package/dist/docs/reference/geometry/LineCurve2.md +3 -3
  123. package/dist/docs/reference/geometry/LineCurve3.md +3 -3
  124. package/dist/docs/reference/geometry/LinearPatternOptions.md +2 -6
  125. package/dist/docs/reference/geometry/LoftPlacement.md +13 -21
  126. package/dist/docs/reference/geometry/MatchProfilesOptions.md +3 -7
  127. package/dist/docs/reference/geometry/ModelingLimits.md +2 -14
  128. package/dist/docs/reference/geometry/NumericArray.md +2 -10
  129. package/dist/docs/reference/geometry/Path2-type.md +153 -12
  130. package/dist/docs/reference/geometry/Path2Data.md +3 -11
  131. package/dist/docs/reference/geometry/Path2Input.md +3 -11
  132. package/dist/docs/reference/geometry/Path3-type.md +153 -12
  133. package/dist/docs/reference/geometry/Path3Data.md +3 -11
  134. package/dist/docs/reference/geometry/Path3Input.md +3 -11
  135. package/dist/docs/reference/geometry/PathFrame.md +3 -3
  136. package/dist/docs/reference/geometry/PathLocation.md +3 -11
  137. package/dist/docs/reference/geometry/PathNormalGuide.md +4 -12
  138. package/dist/docs/reference/geometry/PathOptions.md +3 -7
  139. package/dist/docs/reference/geometry/PathPatternOptions.md +3 -7
  140. package/dist/docs/reference/geometry/PathPlacement.md +5 -5
  141. package/dist/docs/reference/geometry/PathResamplingOptions.md +3 -11
  142. package/dist/docs/reference/geometry/PathStation.md +87 -0
  143. package/dist/docs/reference/geometry/PathSubdivisionOptions.md +44 -0
  144. package/dist/docs/reference/geometry/Pivot2Options.md +3 -11
  145. package/dist/docs/reference/geometry/Pivot3Options.md +3 -11
  146. package/dist/docs/reference/geometry/PolygonData.md +4 -8
  147. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +3 -3
  148. package/dist/docs/reference/geometry/Profile.md +3 -4
  149. package/dist/docs/reference/geometry/ProfileComponent2.md +3 -7
  150. package/dist/docs/reference/geometry/ProfileContour2.md +3 -7
  151. package/dist/docs/reference/geometry/ProfileSpan2.md +3 -7
  152. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +5 -8
  153. package/dist/docs/reference/geometry/RadialPatternOptions.md +2 -6
  154. package/dist/docs/reference/geometry/RadialSizing.md +2 -6
  155. package/dist/docs/reference/geometry/RadialSizingOptions.md +2 -6
  156. package/dist/docs/reference/geometry/RectangleContourOptions.md +4 -7
  157. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +3 -7
  158. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +3 -7
  159. package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
  160. package/dist/docs/reference/geometry/RegionData.md +3 -7
  161. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
  162. package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
  163. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +2 -2
  164. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +2 -6
  165. package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -2
  166. package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
  167. package/dist/docs/reference/geometry/SampleHelixOptions.md +3 -3
  168. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
  169. package/dist/docs/reference/geometry/SampledCurve2.md +3 -3
  170. package/dist/docs/reference/geometry/SampledCurve3.md +3 -3
  171. package/dist/docs/reference/geometry/SideProfileCurve.md +3 -3
  172. package/dist/docs/reference/geometry/SideProfilePoint.md +3 -3
  173. package/dist/docs/reference/geometry/SideProfileSegment.md +3 -3
  174. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +2 -6
  175. package/dist/docs/reference/geometry/SplineOptions.md +69 -0
  176. package/dist/docs/reference/geometry/StarContourOptions.md +7 -7
  177. package/dist/docs/reference/geometry/StrokeCap.md +2 -6
  178. package/dist/docs/reference/geometry/StrokeJoin.md +2 -6
  179. package/dist/docs/reference/geometry/StrokeOptions.md +3 -7
  180. package/dist/docs/reference/geometry/SvgImportOptions.md +4 -4
  181. package/dist/docs/reference/geometry/SvgRegionPreflight.md +2 -2
  182. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +2 -2
  183. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +2 -2
  184. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +2 -2
  185. package/dist/docs/reference/geometry/Transform2-type.md +3 -11
  186. package/dist/docs/reference/geometry/Transform2Data.md +3 -11
  187. package/dist/docs/reference/geometry/Transform2Input.md +3 -11
  188. package/dist/docs/reference/geometry/Transform3-type.md +4 -12
  189. package/dist/docs/reference/geometry/Transform3Data.md +3 -11
  190. package/dist/docs/reference/geometry/Transform3Input.md +6 -13
  191. package/dist/docs/reference/geometry/Vector2-type.md +3 -11
  192. package/dist/docs/reference/geometry/Vector2Data.md +3 -15
  193. package/dist/docs/reference/geometry/Vector2Input.md +3 -11
  194. package/dist/docs/reference/geometry/Vector3-type.md +27 -11
  195. package/dist/docs/reference/geometry/Vector3Data.md +3 -11
  196. package/dist/docs/reference/geometry/Vector3Input.md +3 -11
  197. package/dist/docs/reference/geometry/VectorTextLayout.md +2 -10
  198. package/dist/docs/reference/geometry/VectorTextMetrics.md +3 -11
  199. package/dist/docs/reference/geometry/anchor3.md +17 -26
  200. package/dist/docs/reference/geometry/anchorFrame3.md +6 -6
  201. package/dist/docs/reference/geometry/attachmentTransform3.md +8 -8
  202. package/dist/docs/reference/geometry/bounds2.md +6 -8
  203. package/dist/docs/reference/geometry/bounds3.md +4 -6
  204. package/dist/docs/reference/geometry/boundsCenter.md +2 -2
  205. package/dist/docs/reference/geometry/boundsSize.md +2 -2
  206. package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
  207. package/dist/docs/reference/geometry/categories/bounds-layout.md +9 -3
  208. package/dist/docs/reference/geometry/categories/curves-paths.md +24 -13
  209. package/dist/docs/reference/geometry/categories/immutable-data.md +40 -0
  210. package/dist/docs/reference/geometry/categories/pattern-placement.md +10 -4
  211. package/dist/docs/reference/geometry/categories/primitive-options.md +8 -13
  212. package/dist/docs/reference/geometry/categories/profiles-regions.md +11 -5
  213. package/dist/docs/reference/geometry/categories/resolution-errors.md +8 -1
  214. package/dist/docs/reference/geometry/categories/transforms-math.md +20 -51
  215. package/dist/docs/reference/geometry/categories/vector-import.md +7 -4
  216. package/dist/docs/reference/geometry/circleContour.md +3 -3
  217. package/dist/docs/reference/geometry/closeToAxis.md +7 -3
  218. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +9 -6
  219. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +13 -6
  220. package/dist/docs/reference/geometry/contourContainsPoint.md +7 -3
  221. package/dist/docs/reference/geometry/cylinderAnchor3.md +5 -5
  222. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +3 -3
  223. package/dist/docs/reference/geometry/distributeAlongPath.md +16 -11
  224. package/dist/docs/reference/geometry/ellipseContour.md +3 -3
  225. package/dist/docs/reference/geometry/fitBounds.md +10 -2
  226. package/dist/docs/reference/geometry/fitTextLayout.md +5 -5
  227. package/dist/docs/reference/geometry/frame3.md +66 -0
  228. package/dist/docs/reference/geometry/gridPatternTransforms.md +6 -6
  229. package/dist/docs/reference/geometry/immutableBuffer.md +5 -7
  230. package/dist/docs/reference/geometry/isGeometryError.md +2 -6
  231. package/dist/docs/reference/geometry/layoutRow.md +4 -2
  232. package/dist/docs/reference/geometry/linearPatternTransforms.md +6 -6
  233. package/dist/docs/reference/geometry/matchProfiles.md +5 -3
  234. package/dist/docs/reference/geometry/normalizeContour.md +8 -4
  235. package/dist/docs/reference/geometry/normalizePolygon.md +5 -3
  236. package/dist/docs/reference/geometry/normalizeRegion.md +5 -3
  237. package/dist/docs/reference/geometry/path2.md +7 -7
  238. package/dist/docs/reference/geometry/path3.md +7 -7
  239. package/dist/docs/reference/geometry/pathPatternTransforms.md +12 -8
  240. package/dist/docs/reference/geometry/preflightSvgRegion.md +5 -5
  241. package/dist/docs/reference/geometry/radialPatternTransforms.md +5 -5
  242. package/dist/docs/reference/geometry/rectangleContour.md +3 -3
  243. package/dist/docs/reference/geometry/rectangleProfile.md +3 -4
  244. package/dist/docs/reference/geometry/regionArea.md +3 -3
  245. package/dist/docs/reference/geometry/regionBounds.md +6 -4
  246. package/dist/docs/reference/geometry/regularPolygonContour.md +3 -3
  247. package/dist/docs/reference/geometry/resamplePolyline2.md +7 -3
  248. package/dist/docs/reference/geometry/resamplePolyline3.md +7 -3
  249. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -5
  250. package/dist/docs/reference/geometry/resolveArcSegments.md +8 -6
  251. package/dist/docs/reference/geometry/resolveCircularSampling.md +2 -2
  252. package/dist/docs/reference/geometry/resolveCircularSegments.md +5 -3
  253. package/dist/docs/reference/geometry/{resolveExtrusionDivisions.md → resolveExtrusionSlices.md} +16 -15
  254. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -3
  255. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +3 -3
  256. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +12 -5
  257. package/dist/docs/reference/geometry/sampleContour.md +5 -5
  258. package/dist/docs/reference/geometry/sampleCurve2.md +7 -3
  259. package/dist/docs/reference/geometry/sampleCurve3.md +7 -3
  260. package/dist/docs/reference/geometry/sampleHelix.md +3 -3
  261. package/dist/docs/reference/geometry/sampleSideProfile.md +5 -5
  262. package/dist/docs/reference/geometry/sampleTextContours.md +3 -3
  263. package/dist/docs/reference/geometry/signedContourArea.md +5 -3
  264. package/dist/docs/reference/geometry/spline2.md +68 -0
  265. package/dist/docs/reference/geometry/spline3.md +62 -0
  266. package/dist/docs/reference/geometry/starContour.md +3 -3
  267. package/dist/docs/reference/geometry/strokeRegionData.md +8 -5
  268. package/dist/docs/reference/geometry/transform2.md +5 -7
  269. package/dist/docs/reference/geometry/transform3.md +23 -10
  270. package/dist/docs/reference/geometry/transformRegionData.md +7 -3
  271. package/dist/docs/reference/geometry/triangulateContour.md +6 -4
  272. package/dist/docs/reference/geometry/vector2.md +6 -8
  273. package/dist/docs/reference/geometry/vector3.md +8 -8
  274. package/dist/docs/reference/geometry.md +13 -18
  275. package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +4 -5
  276. package/dist/docs/reference/math/IDENTITY_TRANSFORM3.md +20 -0
  277. package/dist/docs/reference/math/add2.md +38 -0
  278. package/dist/docs/reference/math/add3.md +46 -0
  279. package/dist/docs/reference/math/applyTransformDirection3.md +46 -0
  280. package/dist/docs/reference/math/applyTransformPoint3.md +44 -0
  281. package/dist/docs/reference/math/categories/tuple-matrix.md +67 -0
  282. package/dist/docs/reference/math/cross2.md +38 -0
  283. package/dist/docs/reference/math/cross3.md +44 -0
  284. package/dist/docs/reference/math/distance2.md +38 -0
  285. package/dist/docs/reference/math/distance3.md +38 -0
  286. package/dist/docs/reference/math/dot2.md +38 -0
  287. package/dist/docs/reference/math/dot3.md +44 -0
  288. package/dist/docs/reference/math/eulerTransform3.md +43 -0
  289. package/dist/docs/reference/math/inverseTransform3.md +36 -0
  290. package/dist/docs/reference/math/length2.md +32 -0
  291. package/dist/docs/reference/math/length3.md +32 -0
  292. package/dist/docs/reference/math/lerp2.md +46 -0
  293. package/dist/docs/reference/math/lerp3.md +46 -0
  294. package/dist/docs/reference/math/multiplyTransform3.md +46 -0
  295. package/dist/docs/reference/math/normalize2.md +45 -0
  296. package/dist/docs/reference/math/normalize3.md +45 -0
  297. package/dist/docs/reference/math/projectOntoPlane3.md +40 -0
  298. package/dist/docs/reference/math/rotate2.md +40 -0
  299. package/dist/docs/reference/math/rotationTransform3.md +56 -0
  300. package/dist/docs/reference/math/scale2.md +38 -0
  301. package/dist/docs/reference/math/scale3.md +44 -0
  302. package/dist/docs/reference/math/scaleTransform3.md +39 -0
  303. package/dist/docs/reference/math/subtract2.md +38 -0
  304. package/dist/docs/reference/math/subtract3.md +44 -0
  305. package/dist/docs/reference/math/transformDeterminant3.md +38 -0
  306. package/dist/docs/reference/math/translationTransform3.md +36 -0
  307. package/dist/docs/reference/math/validateRigidTransform3.md +38 -0
  308. package/dist/docs/reference/math/validateTransform3.md +48 -0
  309. package/dist/docs/reference/math.md +22 -0
  310. package/dist/docs/reference/{geometry → mechanical}/AcmeThreadProfileSpec.md +4 -13
  311. package/dist/docs/reference/{geometry → mechanical}/Bevel.md +3 -11
  312. package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +3 -11
  313. package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +3 -11
  314. package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +4 -13
  315. package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +3 -3
  316. package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +3 -3
  317. package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +3 -3
  318. package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +5 -15
  319. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +3 -3
  320. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +3 -3
  321. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +5 -10
  322. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +3 -3
  323. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +3 -3
  324. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +3 -3
  325. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +3 -3
  326. package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +3 -3
  327. package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +6 -13
  328. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +3 -7
  329. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +4 -5
  330. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +3 -3
  331. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +5 -14
  332. package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +3 -7
  333. package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +3 -3
  334. package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +3 -3
  335. package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +3 -3
  336. package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +3 -3
  337. package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +3 -3
  338. package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +3 -3
  339. package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +3 -7
  340. package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +3 -7
  341. package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +3 -3
  342. package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +3 -3
  343. package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +4 -8
  344. package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +4 -13
  345. package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +3 -7
  346. package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +5 -7
  347. package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +4 -5
  348. package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +3 -11
  349. package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +3 -11
  350. package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +3 -11
  351. package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +5 -7
  352. package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +3 -11
  353. package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +3 -11
  354. package/dist/docs/reference/{geometry → mechanical}/ThreadProfile-type.md +5 -17
  355. package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +4 -13
  356. package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +3 -11
  357. package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +7 -18
  358. package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +3 -3
  359. package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +8 -15
  360. package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +3 -11
  361. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +7 -14
  362. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +3 -7
  363. package/dist/docs/reference/{geometry → mechanical}/ThreadedNutShape.md +3 -7
  364. package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +6 -13
  365. package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +4 -13
  366. package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +4 -13
  367. package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +8 -2
  368. package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +4 -4
  369. package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +12 -6
  370. package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +13 -3
  371. package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +3 -3
  372. package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +3 -3
  373. package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +9 -7
  374. package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +5 -3
  375. package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +8 -6
  376. package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +9 -7
  377. package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +8 -6
  378. package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +5 -3
  379. package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +5 -3
  380. package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +9 -7
  381. package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +5 -3
  382. package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +5 -3
  383. package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +7 -5
  384. package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +9 -8
  385. package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +9 -8
  386. package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +10 -8
  387. package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +8 -6
  388. package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +7 -3
  389. package/dist/docs/reference/mechanical.md +19 -0
  390. package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +128 -0
  391. package/dist/docs/reference/{geometry → mesh}/HeightfieldMeshLimits.md +5 -13
  392. package/dist/docs/reference/{geometry → mesh}/HeightfieldPreflight.md +3 -7
  393. package/dist/docs/reference/{geometry → mesh}/ImmutableTriangleMesh.md +5 -17
  394. package/dist/docs/reference/mesh/LoftMeshStation.md +32 -0
  395. package/dist/docs/reference/mesh/MeshRenderOptions.md +3 -3
  396. package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationFallbackReason.md +4 -8
  397. package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationOptions.md +4 -9
  398. package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationResult.md +4 -8
  399. package/dist/docs/reference/{geometry → mesh}/PlanarPatchQuality.md +4 -12
  400. package/dist/docs/reference/mesh/RenderMesh.md +19 -19
  401. package/dist/docs/reference/{geometry → mesh}/SolidMeshValidationOptions.md +4 -12
  402. package/dist/docs/reference/{geometry → mesh}/TriangleMesh.md +8 -12
  403. package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysis.md +5 -14
  404. package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysisOptions.md +4 -9
  405. package/dist/docs/reference/{geometry → mesh}/TriangleMeshInput.md +3 -7
  406. package/dist/docs/reference/{geometry → mesh}/TriangleMeshMeasurements.md +5 -14
  407. package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityOptions.md +4 -9
  408. package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityReport.md +3 -7
  409. package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignature.md +4 -9
  410. package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureOptions.md +3 -7
  411. package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureTolerances.md +3 -7
  412. package/dist/docs/reference/{geometry → mesh}/TriangleMeshTopologyAnalysis.md +5 -14
  413. package/dist/docs/reference/{geometry → mesh}/TriangleMeshValidationOptions.md +4 -9
  414. package/dist/docs/reference/mesh/analyze.md +26 -18
  415. package/dist/docs/reference/mesh/analyzeQuality.md +12 -12
  416. package/dist/docs/reference/mesh/bounds.md +5 -6
  417. package/dist/docs/reference/mesh/categories/operations.md +37 -4
  418. package/dist/docs/reference/mesh/centroid.md +5 -6
  419. package/dist/docs/reference/mesh/extrude.md +21 -20
  420. package/dist/docs/reference/mesh/heightfield.md +8 -8
  421. package/dist/docs/reference/mesh/immutable.md +7 -5
  422. package/dist/docs/reference/mesh/join.md +7 -7
  423. package/dist/docs/reference/mesh/loft.md +19 -18
  424. package/dist/docs/reference/mesh/optimizePlanarPatches.md +21 -21
  425. package/dist/docs/reference/mesh/preflightHeightfield.md +8 -8
  426. package/dist/docs/reference/mesh/preflightThreadSolid.md +22 -25
  427. package/dist/docs/reference/mesh/render.md +7 -5
  428. package/dist/docs/reference/mesh/reverse.md +7 -7
  429. package/dist/docs/reference/mesh/revolve.md +12 -14
  430. package/dist/docs/reference/mesh/signature.md +12 -12
  431. package/dist/docs/reference/mesh/sweep.md +96 -25
  432. package/dist/docs/reference/mesh/threadRidge.md +19 -18
  433. package/dist/docs/reference/mesh/threadSolid.md +23 -22
  434. package/dist/docs/reference/mesh/transform.md +8 -9
  435. package/dist/docs/reference/mesh/validate.md +11 -11
  436. package/dist/docs/reference/mesh/validateSolid.md +10 -10
  437. package/dist/docs/reference/mesh.md +8 -2
  438. package/dist/docs/reference/model/BoxEdge.md +23 -0
  439. package/dist/docs/reference/model/BoxEdgeSelection.md +27 -0
  440. package/dist/docs/reference/model/BoxEdgeTreatments.md +27 -0
  441. package/dist/docs/reference/{geometry → model}/BoxOptions.md +12 -12
  442. package/dist/docs/reference/model/CircleOptions.md +4 -5
  443. package/dist/docs/reference/model/CornerCutterOptions.md +93 -0
  444. package/dist/docs/reference/model/CornerCutterTreatment.md +53 -0
  445. package/dist/docs/reference/model/{HoleCutterOverrun.md → CutterOverrun.md} +8 -7
  446. package/dist/docs/reference/model/CylinderOptions.md +64 -0
  447. package/dist/docs/reference/model/DiagnosticOptions.md +2 -2
  448. package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
  449. package/dist/docs/reference/model/EllipseOptions.md +4 -5
  450. package/dist/docs/reference/model/EndTreatments.md +43 -0
  451. package/dist/docs/reference/model/ExtrudeOptions.md +153 -0
  452. package/dist/docs/reference/model/GenerateCallback.md +2 -2
  453. package/dist/docs/reference/model/GenerateContext.md +27 -3
  454. package/dist/docs/reference/model/GenerationDiagnostic.md +2 -2
  455. package/dist/docs/reference/model/GenerationError.md +2 -2
  456. package/dist/docs/reference/{geometry → model}/HeightfieldOptions.md +5 -23
  457. package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
  458. package/dist/docs/reference/model/HoleCutterOptions.md +9 -22
  459. package/dist/docs/reference/model/HoleCutterRecess.md +5 -4
  460. package/dist/docs/reference/model/HullOptions.md +2 -3
  461. package/dist/docs/reference/model/ImmutableValue.md +2 -2
  462. package/dist/docs/reference/model/ImplicitOptions.md +3 -9
  463. package/dist/docs/reference/model/JoinOptions.md +2 -5
  464. package/dist/docs/reference/model/JoinTransition.md +2 -2
  465. package/dist/docs/reference/model/KnuckleHinge-type.md +2 -3
  466. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +2 -2
  467. package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -5
  468. package/dist/docs/reference/model/KnuckleHingeWeb.md +2 -2
  469. package/dist/docs/reference/{geometry → model}/LoftCorrespondence.md +8 -11
  470. package/dist/docs/reference/{geometry → model}/LoftOptions.md +11 -16
  471. package/dist/docs/reference/model/LoftStation.md +4 -5
  472. package/dist/docs/reference/model/Memo.md +2 -2
  473. package/dist/docs/reference/model/ModelProgram.md +2 -2
  474. package/dist/docs/reference/model/PartDeclaration.md +4 -5
  475. package/dist/docs/reference/model/PartGeometry.md +3 -5
  476. package/dist/docs/reference/model/PartOptions.md +4 -5
  477. package/dist/docs/reference/model/PatternSource.md +4 -4
  478. package/dist/docs/reference/model/PlaneOptions.md +3 -7
  479. package/dist/docs/reference/model/PolygonOptions.md +2 -7
  480. package/dist/docs/reference/model/PrimitiveAttachment.md +50 -0
  481. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +111 -0
  482. package/dist/docs/reference/model/RectangleOptions.md +21 -26
  483. package/dist/docs/reference/model/RegularPolygonOptions.md +4 -37
  484. package/dist/docs/reference/{geometry → model}/RevolveOptions.md +15 -24
  485. package/dist/docs/reference/model/Section.md +115 -53
  486. package/dist/docs/reference/model/SectionHullOptions.md +2 -3
  487. package/dist/docs/reference/model/SectionInspection.md +2 -6
  488. package/dist/docs/reference/model/SectionOffsetJoin.md +2 -2
  489. package/dist/docs/reference/model/SectionOffsetOptions.md +2 -3
  490. package/dist/docs/reference/model/Solid.md +24 -12
  491. package/dist/docs/reference/model/SolidInspection.md +2 -6
  492. package/dist/docs/reference/model/SolidSegmentHit.md +2 -6
  493. package/dist/docs/reference/model/SphereOptions.md +27 -0
  494. package/dist/docs/reference/model/StarOptions.md +21 -23
  495. package/dist/docs/reference/model/SvgOrigin.md +2 -2
  496. package/dist/docs/reference/model/SvgPathSectionOptions.md +3 -5
  497. package/dist/docs/reference/model/SvgSectionOptions.md +3 -6
  498. package/dist/docs/reference/model/SweepOptions.md +109 -0
  499. package/dist/docs/reference/model/SweepOrientation.md +119 -0
  500. package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
  501. package/dist/docs/reference/model/TextSectionOptions.md +2 -7
  502. package/dist/docs/reference/{geometry → model}/TorusOptions.md +11 -10
  503. package/dist/docs/reference/model/TubeOptions.md +84 -0
  504. package/dist/docs/reference/model/box.md +11 -10
  505. package/dist/docs/reference/model/categories/boolean-operations.md +9 -3
  506. package/dist/docs/reference/model/categories/bounded-surfaces.md +13 -1
  507. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +26 -7
  508. package/dist/docs/reference/model/categories/generation.md +11 -3
  509. package/dist/docs/reference/model/categories/hinges.md +7 -1
  510. package/dist/docs/reference/model/categories/mesh-inspection.md +7 -1
  511. package/dist/docs/reference/model/categories/primitives.md +34 -6
  512. package/dist/docs/reference/model/categories/sections.md +8 -2
  513. package/dist/docs/reference/model/categories/threads.md +8 -5
  514. package/dist/docs/reference/model/categories/transforms-placement.md +15 -10
  515. package/dist/docs/reference/model/circle.md +7 -3
  516. package/dist/docs/reference/model/cornerCutter.md +88 -0
  517. package/dist/docs/reference/model/cylinder.md +6 -5
  518. package/dist/docs/reference/model/edgeCutter.md +91 -0
  519. package/dist/docs/reference/model/ellipse.md +7 -3
  520. package/dist/docs/reference/model/extrude.md +29 -23
  521. package/dist/docs/reference/model/generate.md +4 -2
  522. package/dist/docs/reference/model/gridPattern.md +11 -4
  523. package/dist/docs/reference/model/heightfield.md +5 -5
  524. package/dist/docs/reference/model/holeCutter.md +26 -12
  525. package/dist/docs/reference/model/hull.md +2 -2
  526. package/dist/docs/reference/model/implicit.md +3 -3
  527. package/dist/docs/reference/model/internalThreadCutter.md +32 -21
  528. package/dist/docs/reference/model/intersect.md +7 -3
  529. package/dist/docs/reference/model/join.md +6 -2
  530. package/dist/docs/reference/model/knuckleHinge.md +2 -3
  531. package/dist/docs/reference/model/linearPattern.md +11 -4
  532. package/dist/docs/reference/model/loft.md +28 -24
  533. package/dist/docs/reference/model/minkowskiSum.md +3 -3
  534. package/dist/docs/reference/model/pathPattern.md +17 -8
  535. package/dist/docs/reference/model/polygon.md +8 -3
  536. package/dist/docs/reference/model/radialPattern.md +11 -4
  537. package/dist/docs/reference/model/rectangle.md +11 -7
  538. package/dist/docs/reference/model/regularPolygon.md +7 -3
  539. package/dist/docs/reference/model/revolve.md +18 -12
  540. package/dist/docs/reference/model/solidFromMesh.md +10 -6
  541. package/dist/docs/reference/model/sphere.md +7 -6
  542. package/dist/docs/reference/model/star.md +11 -7
  543. package/dist/docs/reference/model/stroke.md +12 -8
  544. package/dist/docs/reference/model/svgPathSection.md +10 -4
  545. package/dist/docs/reference/model/svgSection.md +10 -4
  546. package/dist/docs/reference/model/sweep.md +102 -25
  547. package/dist/docs/reference/model/textSection.md +7 -3
  548. package/dist/docs/reference/model/threadRidge.md +16 -17
  549. package/dist/docs/reference/model/threadedNut.md +25 -22
  550. package/dist/docs/reference/model/threadedRod.md +21 -18
  551. package/dist/docs/reference/model/torus.md +13 -12
  552. package/dist/docs/reference/model/tube.md +6 -5
  553. package/dist/docs/reference/model/union.md +7 -3
  554. package/dist/docs/reference/model.md +10 -5
  555. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
  556. package/dist/docs/reference/text/VectorFont.md +38 -34
  557. package/dist/docs/reference/text/VectorFontOptions.md +2 -2
  558. package/dist/docs/reference/{geometry → text}/VectorTextArcBaseline.md +2 -11
  559. package/dist/docs/reference/{geometry → text}/VectorTextLayoutOptions.md +3 -11
  560. package/dist/docs/reference/{geometry → text}/VectorTextOptions.md +2 -10
  561. package/dist/docs/reference/text/categories/font-preparation.md +10 -1
  562. package/dist/docs/reference/text/prepareVectorFont.md +4 -2
  563. package/dist/docs/reference/text.md +7 -1
  564. package/dist/engine/execution.js +5 -3
  565. package/dist/engine/finalization.js +5 -5
  566. package/dist/engine/index.js +9 -4
  567. package/dist/engine/native/adapter.js +1 -1
  568. package/dist/engine/native/construction-mesh.js +15 -5
  569. package/dist/engine/native/context.js +10 -7
  570. package/dist/engine/native/index.js +1 -1
  571. package/dist/engine/native/material-components.js +2 -2
  572. package/dist/engine/native/mesh-observation.js +1 -1
  573. package/dist/engine/native/regions.js +44 -24
  574. package/dist/engine/native/scoped-primitives.js +3 -3
  575. package/dist/engine/native/scoped-threads.js +1 -13
  576. package/dist/engine/native/threads.js +2 -2
  577. package/dist/engine/native/transforms.js +2 -2
  578. package/dist/engine/operations/construction.js +77 -27
  579. package/dist/engine/operations/context.js +13 -6
  580. package/dist/engine/operations/cutters.js +112 -0
  581. package/dist/engine/operations/environment.js +2 -2
  582. package/dist/engine/operations/extrusion-finishing.js +42 -16
  583. package/dist/engine/operations/hole-cutter.js +125 -114
  584. package/dist/engine/operations/join-collar-profile.js +19 -19
  585. package/dist/engine/operations/join.js +86 -73
  586. package/dist/engine/operations/knuckle-hinge.js +25 -20
  587. package/dist/engine/operations/loft.js +9 -16
  588. package/dist/engine/operations/mechanical.js +4 -15
  589. package/dist/engine/operations/primitives/anchors.js +23 -19
  590. package/dist/engine/operations/primitives/construction.js +38 -12
  591. package/dist/engine/operations/primitives/correspondence.js +2 -2
  592. package/dist/engine/operations/primitives/profile-mesh.js +41 -80
  593. package/dist/engine/operations/primitives/profiles.js +5 -5
  594. package/dist/engine/operations/sections.js +8 -8
  595. package/dist/engine/operations/transforms.js +19 -39
  596. package/dist/engine/placement.js +3 -3
  597. package/dist/engine/recipe-realization.js +86 -30
  598. package/dist/engine/session/declarations.js +98 -0
  599. package/dist/engine/session/dependencies.js +81 -28
  600. package/dist/engine/session/graph.js +39 -137
  601. package/dist/engine/session/parameters.js +78 -0
  602. package/dist/engine/session/session.js +2 -2
  603. package/dist/engine/session/snapshot-cache.js +2 -2
  604. package/dist/engine/shape-anchors.js +13 -6
  605. package/dist/export/3mf.js +9 -2
  606. package/dist/export/capture.js +10 -6
  607. package/dist/export/glb.js +7 -2
  608. package/dist/export/stl.js +21 -6
  609. package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
  610. package/dist/geometry/{bounds-value.js → bounds/value.js} +20 -16
  611. package/dist/geometry/curves/evaluation.js +5 -6
  612. package/dist/geometry/curves/sampling.js +30 -6
  613. package/dist/geometry/{extrusion.js → extrusion/controls.js} +58 -35
  614. package/dist/geometry/extrusion/mesh.js +92 -0
  615. package/dist/geometry/extrusion/stations.js +35 -0
  616. package/dist/geometry/extrusion/twisted-chamfer.js +265 -0
  617. package/dist/geometry/immutable-buffer.js +7 -1
  618. package/dist/geometry/index.js +24 -32
  619. package/dist/geometry/{model-limits.js → limits.js} +1 -1
  620. package/dist/geometry/loft/{loft-correspondence.js → correspondence.js} +31 -20
  621. package/dist/geometry/loft/{loft-geometry.js → geometry.js} +15 -17
  622. package/dist/geometry/loft/mesh.js +53 -0
  623. package/dist/geometry/loft/{loft-options.js → options.js} +13 -11
  624. package/dist/geometry/loft/{loft-simple-mesh.js → simple-mesh.js} +26 -17
  625. package/dist/geometry/math/interpolation.js +9 -0
  626. package/dist/geometry/math/vector-value.js +12 -3
  627. package/dist/geometry/math/vector2.js +18 -5
  628. package/dist/geometry/math/vector3.js +28 -5
  629. package/dist/geometry/math-api.js +4 -0
  630. package/dist/geometry/mechanical/gear-motion.js +7 -5
  631. package/dist/geometry/mechanical/gears.js +21 -4
  632. package/dist/geometry/mechanical/knuckle-hinge.js +7 -5
  633. package/dist/geometry/mechanical/threads/fit.js +8 -2
  634. package/dist/geometry/mechanical/threads/helices.js +4 -2
  635. package/dist/geometry/mechanical/threads/mesh-plan.js +4 -2
  636. package/dist/geometry/mechanical/threads/mesh.js +12 -9
  637. package/dist/geometry/mechanical/threads/profiles.js +18 -4
  638. package/dist/geometry/mechanical/threads/solids.js +11 -2
  639. package/dist/geometry/mechanical-api.js +10 -0
  640. package/dist/geometry/mesh/{mesh-centroid.js → centroid.js} +2 -1
  641. package/dist/geometry/{heightfield.js → mesh/heightfield.js} +9 -5
  642. package/dist/geometry/{join-geometry.js → mesh/join-layers.js} +53 -59
  643. package/dist/geometry/mesh/{mesh.js → operations.js} +11 -18
  644. package/dist/geometry/mesh/{mesh-planar.js → planar.js} +8 -18
  645. package/dist/geometry/mesh/{mesh-quality.js → quality.js} +10 -42
  646. package/dist/geometry/mesh/{mesh-render.js → render-buffers.js} +22 -7
  647. package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
  648. package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +2 -0
  649. package/dist/geometry/mesh/{mesh-solid.js → solid.js} +4 -4
  650. package/dist/geometry/mesh/triangle-quality.js +42 -0
  651. package/dist/geometry/mesh/winding.js +11 -0
  652. package/dist/geometry/{numeric.js → mesh/write-vertex.js} +1 -1
  653. package/dist/geometry/mesh-api.js +12 -11
  654. package/dist/geometry/paths/distribution.js +43 -0
  655. package/dist/geometry/paths/editing.js +76 -0
  656. package/dist/geometry/paths/frames.js +16 -11
  657. package/dist/geometry/paths/helix.js +1 -1
  658. package/dist/geometry/paths/resampling.js +46 -61
  659. package/dist/geometry/paths/{planar.js → rounding.js} +8 -67
  660. package/dist/geometry/paths/spline.js +116 -0
  661. package/dist/geometry/paths/traversal.js +107 -0
  662. package/dist/geometry/paths/{path-value.js → value.js} +97 -18
  663. package/dist/geometry/patterns/placements.js +20 -29
  664. package/dist/geometry/{patterns.js → patterns/transforms.js} +11 -7
  665. package/dist/geometry/primitives/cutters.js +70 -0
  666. package/dist/geometry/{cylinder.js → primitives/cylinder.js} +4 -4
  667. package/dist/geometry/{edge-finishing.js → primitives/edges.js} +5 -5
  668. package/dist/geometry/{primitive-resolvers.js → primitives/resolvers.js} +9 -9
  669. package/dist/geometry/primitives/sampling.js +41 -0
  670. package/dist/geometry/profiles/contour.js +19 -7
  671. package/dist/geometry/profiles/{match-profiles.js → matching.js} +9 -6
  672. package/dist/geometry/profiles/primitives/circle.js +1 -1
  673. package/dist/geometry/profiles/primitives/ellipse.js +2 -2
  674. package/dist/geometry/profiles/primitives/rectangle.js +8 -8
  675. package/dist/geometry/profiles/primitives/star.js +1 -1
  676. package/dist/geometry/profiles/side-profile.js +8 -5
  677. package/dist/geometry/profiles/validation.js +1 -1
  678. package/dist/geometry/{polygon-clipping.js → regions/clipping.js} +1 -1
  679. package/dist/geometry/{convex-offset.js → regions/convex-offset.js} +1 -1
  680. package/dist/geometry/{region-offset.js → regions/offset.js} +7 -5
  681. package/dist/geometry/{regions.js → regions/operations.js} +59 -22
  682. package/dist/geometry/{stroke-path.js → regions/stroke.js} +46 -20
  683. package/dist/geometry/{loft/loft-triangulation.js → regions/triangulation.js} +35 -2
  684. package/dist/geometry/revolve/{revolve-mesh.js → mesh.js} +9 -10
  685. package/dist/geometry/{circular-sampling.js → sampling/circular.js} +3 -3
  686. package/dist/geometry/{sampling-limits.js → sampling/limits.js} +6 -2
  687. package/dist/geometry/{resolution.js → sampling/resolution.js} +15 -14
  688. package/dist/geometry/svg/fill.js +4 -3
  689. package/dist/geometry/svg/import.js +47 -64
  690. package/dist/geometry/svg/path.js +3 -3
  691. package/dist/geometry/sweep/closed.js +55 -0
  692. package/dist/geometry/sweep/mesh.js +30 -0
  693. package/dist/geometry/{sweeps/sweep-open.js → sweep/open.js} +9 -24
  694. package/dist/geometry/{sweeps → sweep}/orientation.js +14 -11
  695. package/dist/geometry/sweep/seam.js +30 -0
  696. package/dist/geometry/{sweeps → sweep}/stations.js +75 -10
  697. package/dist/geometry/sweep/transforms.js +30 -0
  698. package/dist/geometry/{sweeps → sweep}/validation.js +4 -4
  699. package/dist/geometry/{text-contours.js → text/contours.js} +3 -3
  700. package/dist/geometry/{text-fitting.js → text/fitting.js} +4 -3
  701. package/dist/geometry/text/layout.js +1 -0
  702. package/dist/geometry/{transform3.js → transforms/affine3.js} +31 -46
  703. package/dist/geometry/{anchors.js → transforms/anchors.js} +43 -24
  704. package/dist/geometry/{transform-geometry.js → transforms/apply.js} +8 -5
  705. package/dist/geometry/{transform2.js → transforms/dimensions.js} +23 -19
  706. package/dist/geometry/transforms/frame.js +64 -0
  707. package/dist/geometry/{transform-matrix.js → transforms/matrix-input.js} +8 -1
  708. package/dist/geometry/{transform-value.js → transforms/value.js} +29 -11
  709. package/dist/index.js +3 -9
  710. package/dist/model/cutters.js +1 -0
  711. package/dist/model/execution-binding.js +3 -3
  712. package/dist/model/generation.js +2 -0
  713. package/dist/model/immutable-generation-data.js +2 -0
  714. package/dist/model/operations.js +130 -94
  715. package/dist/model/recipe-declaration.js +5 -7
  716. package/dist/text/index.js +3 -0
  717. package/dist/text/vector-text-layout.js +1 -0
  718. package/package.json +15 -17
  719. package/dist/api/export-3mf.d.ts +0 -2
  720. package/dist/api/export-glb.d.ts +0 -2
  721. package/dist/api/export-stl.d.ts +0 -2
  722. package/dist/docs/reference/geometry/BoxEdge.md +0 -17
  723. package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -24
  724. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -25
  725. package/dist/docs/reference/geometry/CylinderOptions.md +0 -63
  726. package/dist/docs/reference/geometry/EndTreatments.md +0 -44
  727. package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -144
  728. package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -156
  729. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -25
  730. package/dist/docs/reference/geometry/LoftMeshStation.md +0 -41
  731. package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -39
  732. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -114
  733. package/dist/docs/reference/geometry/SphereOptions.md +0 -25
  734. package/dist/docs/reference/geometry/SweepOptions.md +0 -127
  735. package/dist/docs/reference/geometry/SweepOrientation.md +0 -127
  736. package/dist/docs/reference/geometry/TubeOptions.md +0 -72
  737. package/dist/docs/reference/geometry/add2.md +0 -43
  738. package/dist/docs/reference/geometry/add3.md +0 -49
  739. package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -52
  740. package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -50
  741. package/dist/docs/reference/geometry/categories/meshes.md +0 -68
  742. package/dist/docs/reference/geometry/composeTransform3.md +0 -51
  743. package/dist/docs/reference/geometry/cross2.md +0 -43
  744. package/dist/docs/reference/geometry/cross3.md +0 -49
  745. package/dist/docs/reference/geometry/distance2.md +0 -43
  746. package/dist/docs/reference/geometry/distance3.md +0 -43
  747. package/dist/docs/reference/geometry/dot2.md +0 -43
  748. package/dist/docs/reference/geometry/dot3.md +0 -49
  749. package/dist/docs/reference/geometry/eulerTransform3.md +0 -49
  750. package/dist/docs/reference/geometry/frameTransform3.md +0 -55
  751. package/dist/docs/reference/geometry/inverseTransform3.md +0 -41
  752. package/dist/docs/reference/geometry/length2.md +0 -37
  753. package/dist/docs/reference/geometry/length3.md +0 -37
  754. package/dist/docs/reference/geometry/lerp2.md +0 -49
  755. package/dist/docs/reference/geometry/lerp3.md +0 -49
  756. package/dist/docs/reference/geometry/normalize2.md +0 -46
  757. package/dist/docs/reference/geometry/normalize3.md +0 -46
  758. package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -43
  759. package/dist/docs/reference/geometry/rotate2.md +0 -43
  760. package/dist/docs/reference/geometry/rotationTransform3.md +0 -60
  761. package/dist/docs/reference/geometry/scale2.md +0 -43
  762. package/dist/docs/reference/geometry/scale3.md +0 -49
  763. package/dist/docs/reference/geometry/scaleTransform3.md +0 -45
  764. package/dist/docs/reference/geometry/subtract2.md +0 -43
  765. package/dist/docs/reference/geometry/subtract3.md +0 -49
  766. package/dist/docs/reference/geometry/transformDeterminant3.md +0 -43
  767. package/dist/docs/reference/geometry/translationTransform3.md +0 -42
  768. package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -41
  769. package/dist/docs/reference/geometry/validateTransform3.md +0 -54
  770. package/dist/docs/reference/model/Profile.md +0 -30
  771. package/dist/docs/reference/model/categories/explicit-profiles.md +0 -21
  772. package/dist/docs/reference/model/matchProfiles.md +0 -48
  773. package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -93
  774. package/dist/docs/reference/model/preflightThreadedNut.md +0 -109
  775. package/dist/docs/reference/model/preflightThreadedRod.md +0 -93
  776. package/dist/engine/operations/patterns.js +0 -47
  777. package/dist/geometry/loft/loft.js +0 -105
  778. package/dist/geometry/mechanical/index.js +0 -14
  779. package/dist/geometry/primitive-resolution.js +0 -20
  780. package/dist/geometry/svg/index.js +0 -1
  781. package/dist/geometry/sweeps/options.js +0 -29
  782. package/dist/geometry/sweeps/sweep-closed.js +0 -96
  783. package/dist/geometry/sweeps/sweep-mesh.js +0 -32
  784. /package/dist/geometry/mechanical/{standards.js → fastener-standards.js} +0 -0
  785. /package/dist/geometry/mesh/{mesh-edge-table.js → edge-table.js} +0 -0
  786. /package/dist/geometry/mesh/{mesh-types.js → types.js} +0 -0
  787. /package/dist/geometry/mesh/{mesh-view-cache.js → view-cache.js} +0 -0
  788. /package/dist/geometry/{primitive-options.js → primitives/options.js} +0 -0
  789. /package/dist/geometry/{text-layout.js → sweep/options.js} +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  Calculate pure linear, radial, grid, and path transforms.
4
4
 
5
- Pattern helpers use the same counts, spacing, centering, and frames as pattern operations in `@metamesh/modeling`. Use `Transform3Data` to place points, meshes, or explicit geometry without a native engine.
5
+ Pattern helpers use the same counts, spacing, centering, and frames as pattern operations in `@metamesh/modeling`. They return immutable `Transform3` placements. Pass them directly to part transforms or `mesh.transform`, use `applyPoint` for coordinates, and call `toData()` for matrix interchange.
6
6
 
7
7
  Linear and grid spacing use millimetres; radial angles use degrees. Paths use physical arc-length intervals and omit the repeated seam when closed.
8
8
 
@@ -10,9 +10,9 @@ Linear and grid spacing use millimetres; radial angles use degrees. Paths use ph
10
10
 
11
11
  | API | Summary |
12
12
  | --- | --- |
13
- | [linearPatternTransforms](../linearPatternTransforms.md) | Spatial XYZ matrix placements in millimetres, including the original at the origin. |
13
+ | [linearPatternTransforms](../linearPatternTransforms.md) | Immutable XYZ placements in millimetres, including the original at the origin. |
14
14
  | [radialPatternTransforms](../radialPatternTransforms.md) | Rotations about an explicit axis; angles use degrees and the first placement is identity. |
15
- | [gridPatternTransforms](../gridPatternTransforms.md) | Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. |
15
+ | [gridPatternTransforms](../gridPatternTransforms.md) | Immutable XYZ placements for an XY or XYZ grid, in X-fastest order. |
16
16
  | [pathPatternTransforms](../pathPatternTransforms.md) | Equal physical arc-length placements along a sampled XYZ path. |
17
17
 
18
18
  ## Interfaces
@@ -33,4 +33,10 @@ Linear and grid spacing use millimetres; radial angles use degrees. Paths use ph
33
33
 
34
34
  - [Primitive booleans and repeated placement](../../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
35
35
 
36
- Package: `@metamesh/modeling@0.19.0`.
36
+ ## Import
37
+
38
+ ```ts
39
+ import * as geometry from "@metamesh/modeling/geometry";
40
+ ```
41
+
42
+ Package: `@metamesh/modeling@0.20.0`.
@@ -14,14 +14,9 @@ Dimensional shapes share object options, millimetre units, and explicit placemen
14
14
 
15
15
  | API | Summary |
16
16
  | --- | --- |
17
- | [BoxOptions](../BoxOptions.md) | Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box. |
18
- | [ChamferedEdgeTreatment](../ChamferedEdgeTreatment.md) | A planar edge or corner chamfer with equal or independent surface setbacks. |
17
+ | [ChamferedEdgeTreatment](../ChamferedEdgeTreatment.md) | A straight transverse edge or corner bevel with equal or independent surface setbacks. |
19
18
  | [CircularPrimitiveOptions](../CircularPrimitiveOptions.md) | Tessellation controls shared by circular primitives across Geometry entry points. |
20
19
  | [RoundedEdgeTreatment](../RoundedEdgeTreatment.md) | A circular edge or corner roundover with explicit physical sampling. |
21
- | [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
22
- | [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or source-corresponding straight extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
23
- | [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
24
- | [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
25
20
  | [RadialSizingOptions](../RadialSizingOptions.md) | Nominal radial sizing shared by circular and regular polygon construction. |
26
21
  | [SmoothEdgeTreatment](../SmoothEdgeTreatment.md) | A cubic corner transition with zero curvature at its straight tangent joins. |
27
22
  | [ProfiledEdgeTreatment](../ProfiledEdgeTreatment.md) | A deliberately sampled, inward-only corner profile with exact polyline geometry. |
@@ -31,12 +26,12 @@ Dimensional shapes share object options, millimetre units, and explicit placemen
31
26
  | API | Summary |
32
27
  | --- | --- |
33
28
  | [EdgeTreatment](../EdgeTreatment.md) | Uniform finishing vocabulary shared by applicable solid edges and profile corners. |
34
- | [CylinderOptions](../CylinderOptions.md) | Dimensions, placement, independent end finishing, and tessellation for a Z-axis cylinder or frustum. |
35
- | [SphereOptions](../SphereOptions.md) | Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere. |
36
- | [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
37
29
  | [RadialSizing](../RadialSizing.md) | Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. |
38
- | [BoxEdge](../BoxEdge.md) | Box edges use +Z top, +Y front and +X right; vertical names list front/back first. |
39
- | [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
40
- | [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
41
30
 
42
- Package: `@metamesh/modeling@0.19.0`.
31
+ ## Import
32
+
33
+ ```ts
34
+ import * as geometry from "@metamesh/modeling/geometry";
35
+ ```
36
+
37
+ Package: `@metamesh/modeling@0.20.0`.
@@ -21,13 +21,13 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
21
21
  | [normalizeRegion](../normalizeRegion.md) | Validates a disjoint explicit region and returns immutable normalized data. Previously validated immutable results may be returned unchanged under the same tolerance policy. |
22
22
  | [rectangleContour](../rectangleContour.md) | Creates an immutable sampled CCW rectangle boundary. |
23
23
  | [regionArea](../regionArea.md) | Returns the total filled area of a normalized region in square millimetres. |
24
- | [regionBounds](../regionBounds.md) | Returns finite axis-aligned bounds for a non-empty region. |
24
+ | [regionBounds](../regionBounds.md) | Returns finite axis-aligned bounds for a nonempty region. |
25
25
  | [rectangleProfile](../rectangleProfile.md) | Creates an identified rectangle whose edge/corner spans survive zero and saturated round radii. Outer winding is CCW. |
26
26
  | [sampleSideProfile](../sampleSideProfile.md) | Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline. |
27
27
  | [sampleContour](../sampleContour.md) | Samples 2–32 connected line/cubic segments into a simple, nonzero-area, immutable CCW XY loop. |
28
28
  | [signedContourArea](../signedContourArea.md) | Returns the signed area of a non-duplicated loop; positive means CCW. |
29
29
  | [transformRegionData](../transformRegionData.md) | Transforms serialized polygon data with reflection-safe winding, without an engine. Use Section.transform(placement) when authoring filled geometry; this utility serves pure data preparation. |
30
- | [triangulateContour](../triangulateContour.md) | Ear-clips one normalized simple CCW loop into stable local vertex indices. |
30
+ | [triangulateContour](../triangulateContour.md) | Triangulates one simple loop into indices of its normalized CCW vertex order. |
31
31
  | [closeToAxis](../closeToAxis.md) | Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. |
32
32
 
33
33
  ## Interfaces
@@ -60,7 +60,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
60
60
  | [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
61
61
  | [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
62
62
  | [Contour](../Contour.md) | A sampled closed two-dimensional boundary whose first point is not repeated at the end. |
63
- | [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at an explicit height or right-handed spatial frame. |
63
+ | [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at a horizontal height or explicit affine transform. |
64
64
  | [ContourSegment](../ContourSegment.md) | Straight or cubic Bézier segment in one closed planar contour. |
65
65
  | [SideProfileSegment](../SideProfileSegment.md) | One straight or cubic segment of an open, upward-progressing radius/height outline. |
66
66
  | [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
@@ -78,6 +78,12 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
78
78
 
79
79
  ## Guides
80
80
 
81
- - [Choose a geometry representation](../../../guides/geometry-values.md#geometry-vocabulary)
81
+ - [Choose a geometry representation](../../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
82
82
 
83
- Package: `@metamesh/modeling@0.19.0`.
83
+ ## Import
84
+
85
+ ```ts
86
+ import * as geometry from "@metamesh/modeling/geometry";
87
+ ```
88
+
89
+ Package: `@metamesh/modeling@0.20.0`.
@@ -35,6 +35,7 @@ Algorithms report limit failures explicitly. `GeometryError` provides structured
35
35
  | [GeometryToleranceOptions](../GeometryToleranceOptions.md) | Optional overrides for MetaMesh's geometry comparison policy. |
36
36
  | [ModelingLimits](../ModelingLimits.md) | Aggregate manufacturing output ceilings selected by a trusted host. |
37
37
  | [ResolvedGeometryTolerance](../ResolvedGeometryTolerance.md) | Fully resolved tolerances for one operation and model scale. |
38
+ | [ResolvedGeometryResolution](../ResolvedGeometryResolution.md) | Fully populated physical tessellation policy used by adaptive samplers. |
38
39
 
39
40
  ## Type aliases
40
41
 
@@ -49,4 +50,10 @@ Algorithms report limit failures explicitly. `GeometryError` provides structured
49
50
  | --- | --- |
50
51
  | [DEFAULT_GEOMETRY_TOLERANCE](../DEFAULT_GEOMETRY_TOLERANCE.md) | Default absolute, relative, and angular tolerances for millimetre-scale models. |
51
52
 
52
- Package: `@metamesh/modeling@0.19.0`.
53
+ ## Import
54
+
55
+ ```ts
56
+ import * as geometry from "@metamesh/modeling/geometry";
57
+ ```
58
+
59
+ Package: `@metamesh/modeling@0.20.0`.
@@ -1,16 +1,14 @@
1
- # Transforms and vector math
1
+ # Vectors, transforms, and attachment
2
2
 
3
- Build reusable placements and calculate with immutable fluent vectors or tuple math.
3
+ Calculate with immutable values and place geometry using frames and anchors.
4
4
 
5
- Use immutable `vector2`/`vector3` and `transform2`/`transform3` values for ordinary authoring. Operations return new values; tuples remain convenient inputs.
5
+ Use vector2/vector3 and transform2/transform3 for immutable authoring. Vector operands accept values or coordinate tuples; calculations return values and measurements return numbers. Bounds extrema and placement algorithms also return fluent values.
6
6
 
7
- - **Arithmetic:** `dot()`, `length()`, and `distance()` return numbers. `cross()` returns a signed scalar in 2D and a right-handed vector in 3D. Normalization rejects zero vectors; fluent values reject nonfinite inputs and results.
8
- - **Order and units:** rotations use degrees and optional `{ pivot }` points in world coordinates. Calls and `andThen()` composition apply in execution order.
9
- - **Transformed values:** points include translation; directions exclude it and retain scale; normals use inverse-transpose normalization. Shape methods and path helpers accept matching transforms.
10
- - **Interchange:** `toData()` returns `Vector2Data`/`Vector3Data` tuples or `Transform2Data`/`Transform3Data` matrices. `to3D()`/`to2D()` convert dimensions explicitly; XY restriction requires a preserved plane.
11
- - **Low-level work:** tuple kernels avoid fluent object allocation in hot loops. Matrix constructors support interoperability. `rotationTransform3` requires an explicit degrees or radians object; `composeTransform3(after, before)` applies `before` first.
7
+ Calls and andThen composition apply in written order. Angles use degrees; optional pivot points use world coordinates. applyPoint includes translation, applyDirection excludes it and retains scale, and applyNormal applies inverse-transpose normalization.
12
8
 
13
- Attachment matches source and target frames. You choose physical clearance.
9
+ frame3 and anchor3 create validated frozen plain descriptors. Pass a Frame3 directly wherever Transform3Input is accepted, or call transform3(frame) for affine methods. attachmentTransform3 returns a reusable Transform3.
10
+
11
+ Use /geometry/math for tuple arithmetic and matrix kernels.
14
12
 
15
13
  ## Functions
16
14
 
@@ -20,22 +18,11 @@ Attachment matches source and target frames. You choose physical clearance.
20
18
  | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. |
21
19
  | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. |
22
20
  | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. |
23
- | [applyTransformDirection3](../applyTransformDirection3.md) | Applies only the linear component of an affine transform to a direction. |
24
- | [applyTransformPoint3](../applyTransformPoint3.md) | Applies an affine transform to a point, including translation. |
25
21
  | [attachmentTransform3](../attachmentTransform3.md) | Builds the transform that moves a source anchor onto a target anchor. |
26
22
  | [boxAnchor3](../boxAnchor3.md) | Creates an outward face-center anchor using the same local origin convention as box(). |
27
- | [composeTransform3](../composeTransform3.md) | Composes two affine transforms without mutating either matrix. |
28
23
  | [anchor3](../anchor3.md) | Constructs a normalized immutable attachment anchor. |
29
24
  | [cylinderAnchor3](../cylinderAnchor3.md) | Creates a cap-center or radial-side anchor using cylinder()'s construction origin. |
30
- | [eulerTransform3](../eulerTransform3.md) | Creates an immutable right-handed XYZ Euler rotation transform. |
31
- | [frameTransform3](../frameTransform3.md) | Converts a right-handed orthonormal frame into a local-to-world transform. |
32
- | [inverseTransform3](../inverseTransform3.md) | Inverts a finite, non-singular affine transform. |
33
- | [rotationTransform3](../rotationTransform3.md) | Creates a right-handed axis-angle rotation transform. |
34
- | [scaleTransform3](../scaleTransform3.md) | Creates an immutable axis-aligned scale transform. |
35
- | [transformDeterminant3](../transformDeterminant3.md) | Returns the determinant of a transform's linear 3x3 component. |
36
- | [translationTransform3](../translationTransform3.md) | Creates an immutable translation transform. |
37
- | [validateRigidTransform3](../validateRigidTransform3.md) | Validates a proper rigid transform: finite translation and a right-handed orthonormal rotation. Scale, shear, reflection, and perspective are rejected within the default angular tolerance. Returns the original row-major 4x4 matrix without copying or normalizing it. |
38
- | [validateTransform3](../validateTransform3.md) | Validates that a transform is finite, affine, and non-singular. |
25
+ | [frame3](../frame3.md) | Creates a copied, deeply frozen plain coordinate frame in world space. Axes must be right-handed, unit length, and mutually orthogonal. Only accepted numerical roundoff is normalized; scale, shear, reflection, and materially invalid bases reject. Frames are placement inputs; use transform3(frame) when affine methods are needed. |
39
26
 
40
27
  ## Interfaces
41
28
 
@@ -51,16 +38,18 @@ Attachment matches source and target frames. You choose physical clearance.
51
38
  | [AttachOptions](../AttachOptions.md) | Options controlling how one anchor is attached to another. |
52
39
  | [BoxAnchorOptions](../BoxAnchorOptions.md) | Box dimensions and construction origin for one named face anchor. |
53
40
  | [CylinderAnchorOptions](../CylinderAnchorOptions.md) | Cylinder dimensions and construction origin for one named face anchor. |
41
+ | [Frame3](../Frame3-type.md) | A right-handed orthonormal coordinate frame expressed in world coordinates. |
42
+ | [Frame3Options](../Frame3Options.md) | An origin in millimetres and a right-handed orthonormal basis in world coordinates. |
43
+ | [Anchor3Options](../Anchor3Options.md) | Attachment position in millimetres and orientation guides in local coordinates. |
54
44
 
55
45
  ## Type aliases
56
46
 
57
47
  | API | Summary |
58
48
  | --- | --- |
59
49
  | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
60
- | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
50
+ | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform, canonical row-major matrix, or right-handed orthonormal frame. |
61
51
  | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
62
52
  | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
63
- | [AxisAngleRotation3](../AxisAngleRotation3.md) | One explicitly unit-labelled right-handed axis-angle rotation. |
64
53
  | [BoxAnchorFace](../BoxAnchorFace.md) | Named face on an axis-aligned box. |
65
54
  | [CylinderAnchorFace](../CylinderAnchorFace.md) | Named face on a cylinder parallel to +Z. |
66
55
  | [Transform2Data](../Transform2Data.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
@@ -68,35 +57,15 @@ Attachment matches source and target frames. You choose physical clearance.
68
57
  | [Vector2Data](../Vector2Data.md) | A two-dimensional Cartesian vector or point. |
69
58
  | [Vector3Data](../Vector3Data.md) | A three-dimensional Cartesian vector or point. |
70
59
 
71
- ## Values
72
-
73
- | API | Summary |
74
- | --- | --- |
75
- | [add2](../add2.md) | Adds two finite XY vectors component-wise. |
76
- | [add3](../add3.md) | Adds two finite XYZ vectors component-wise. |
77
- | [cross3](../cross3.md) | Returns the right-handed cross product. |
78
- | [cross2](../cross2.md) | Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. |
79
- | [distance2](../distance2.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
80
- | [distance3](../distance3.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
81
- | [dot3](../dot3.md) | Returns the scalar dot product. |
82
- | [dot2](../dot2.md) | Returns the scalar dot product. |
83
- | [IDENTITY_TRANSFORM3](../IDENTITY_TRANSFORM3.md) | Identity transform, safe to share because it is frozen. |
84
- | [length3](../length3.md) | Returns Euclidean vector length in the vector's coordinate units. |
85
- | [length2](../length2.md) | Returns Euclidean vector length in the vector's coordinate units. |
86
- | [lerp3](../lerp3.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
87
- | [lerp2](../lerp2.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
88
- | [normalize3](../normalize3.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). |
89
- | [normalize2](../normalize2.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). |
90
- | [projectOntoPlane3](../projectOntoPlane3.md) | Removes the component parallel to a normalized plane normal. |
91
- | [rotate2](../rotate2.md) | Rotates a finite vector counter-clockwise in XY by `degrees` about the origin. Throws `NON_FINITE_VALUE` for nonfinite coordinates, angles, or derived coordinates. |
92
- | [scale3](../scale3.md) | Multiplies a vector by a dimensionless scalar. |
93
- | [scale2](../scale2.md) | Multiplies a vector by a dimensionless scalar. |
94
- | [subtract3](../subtract3.md) | Subtracts `b` from `a`. |
95
- | [subtract2](../subtract2.md) | Subtracts `b` from `a` component-wise. |
96
-
97
60
  ## Guides
98
61
 
99
62
  - [Reusable transforms and vector math](../../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
100
- - [Fluent values and tuple kernels](../../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
63
+ - [Fluent values and tuple kernels](../../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
64
+
65
+ ## Import
66
+
67
+ ```ts
68
+ import * as geometry from "@metamesh/modeling/geometry";
69
+ ```
101
70
 
102
- Package: `@metamesh/modeling@0.19.0`.
71
+ Package: `@metamesh/modeling@0.20.0`.
@@ -23,10 +23,7 @@ Font preparation belongs to the optional text entry point, outside pure parsing
23
23
  | [SvgImportOptions](../SvgImportOptions.md) | Sampling controls for deterministic SVG-to-region conversion. |
24
24
  | [SvgRegionPreflight](../SvgRegionPreflight.md) | Normalized sampled SVG region plus bounded source, geometry, and safe-repair diagnostics. |
25
25
  | [SvgRegionPreflightRepairs](../SvgRegionPreflightRepairs.md) | Visible, appearance-preserving cleanup counters from bounded SVG import. |
26
- | [VectorTextArcBaseline](../VectorTextArcBaseline.md) | A circular baseline centered at the XY origin, with rigid shaped glyph groups. |
27
26
  | [VectorTextLayout](../VectorTextLayout.md) | Immutable vector layout with no browser, font parser, or kernel ownership. |
28
- | [VectorTextLayoutOptions](../VectorTextLayoutOptions.md) | Text bounded to 512 UTF-16 units: horizontal lines or one circular line without wrapping. |
29
- | [VectorTextOptions](../VectorTextOptions.md) | Shaping controls for a prepared exact font face; all lengths are in millimetres. |
30
27
  | [SvgRegionPreflightGeometryMetrics](../SvgRegionPreflightGeometryMetrics.md) | Physical and final-topology facts for a normalized imported SVG region. |
31
28
  | [SvgRegionPreflightSourceMetrics](../SvgRegionPreflightSourceMetrics.md) | Bounded source-complexity facts collected while parsing one SVG document. |
32
29
  | [VectorTextMetrics](../VectorTextMetrics.md) | Text measurements from the same immutable layout that supplies geometry and SVG outlines. |
@@ -43,4 +40,10 @@ Font preparation belongs to the optional text entry point, outside pure parsing
43
40
 
44
41
  - [SVG preflight work and guarantees](../../../guides/resolution-and-inspection.md#check-preflight-guarantees)
45
42
 
46
- Package: `@metamesh/modeling@0.19.0`.
43
+ ## Import
44
+
45
+ ```ts
46
+ import * as geometry from "@metamesh/modeling/geometry";
47
+ ```
48
+
49
+ Package: `@metamesh/modeling@0.20.0`.
@@ -32,12 +32,12 @@ circleContour({ diameter: 20, segments: 32 });
32
32
 
33
33
  ## Guides
34
34
 
35
- - [Choose a geometry representation](../../guides/geometry-values.md#geometry-vocabulary)
35
+ - [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
36
36
 
37
- ## Supported imports
37
+ ## Import
38
38
 
39
39
  ```ts
40
40
  import { circleContour } from "@metamesh/modeling/geometry";
41
41
  ```
42
42
 
43
- Package: `@metamesh/modeling@0.19.0`.
43
+ Package: `@metamesh/modeling@0.20.0`.
@@ -17,12 +17,16 @@ This is a solid-body closure, not a hollow-wall or mounting-bore construction.
17
17
 
18
18
  **`side`** · readonly [`Vector2Data`](Vector2Data.md)[] · Required
19
19
 
20
+ [radius, height] points in millimetres, with increasing heights.
21
+
20
22
 
21
23
 
22
24
  <a id="limits"></a>
23
25
 
24
26
  **`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
25
27
 
28
+ Point limits, including any added axis endpoints.
29
+
26
30
 
27
31
 
28
32
  ## Returns
@@ -38,12 +42,12 @@ This is a solid-body closure, not a hollow-wall or mounting-bore construction.
38
42
 
39
43
  ## Guides
40
44
 
41
- - [Choose a geometry representation](../../guides/geometry-values.md#geometry-vocabulary)
45
+ - [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
42
46
 
43
- ## Supported imports
47
+ ## Import
44
48
 
45
49
  ```ts
46
50
  import { closeToAxis } from "@metamesh/modeling/geometry";
47
51
  ```
48
52
 
49
- Package: `@metamesh/modeling@0.19.0`.
53
+ Package: `@metamesh/modeling@0.20.0`.
@@ -9,9 +9,6 @@ Builds rotation-minimizing frames for a non-duplicated closed path.
9
9
  Centered cyclic tangents are parallel-transported around the loop. Transporting the last
10
10
  normal back to the first tangent measures seam holonomy; distributing that residual rotation
11
11
  uniformly over all path intervals avoids a visible seam or accumulated frame flip.
12
- The maxPathPoints ceiling (default 100000) bounds path points and frames.
13
- Requires closed path values; raw tuples are interpreted as closed and must omit their seam point.
14
- Invalid paths throw GeometryError.
15
12
  Nonfinite initial normals reject; finite parallel preferences select a canonical fallback.
16
13
 
17
14
  ## Parameters
@@ -20,18 +17,24 @@ Nonfinite initial normals reject; finite parallel preferences select a canonical
20
17
 
21
18
  **`input`** · [`Path3Input`](Path3Input.md) · Required
22
19
 
20
+ Closed XYZ path or points in millimetres, with no repeated seam.
21
+
23
22
 
24
23
 
25
24
  <a id="initialnormal"></a>
26
25
 
27
26
  **`initialNormal`** · [`Vector3Input`](Vector3Input.md) · Optional
28
27
 
28
+ Preferred profile X direction at the seam.
29
+
29
30
 
30
31
 
31
32
  <a id="limits"></a>
32
33
 
33
34
  **`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
34
35
 
36
+ Limits on input points and output frames.
37
+
35
38
 
36
39
 
37
40
  ## Returns
@@ -48,12 +51,12 @@ readonly [`PathFrame`](PathFrame.md)[]
48
51
 
49
52
  ## Guides
50
53
 
51
- - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#query-paths-and-preserve-closure)
54
+ - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
52
55
 
53
- ## Supported imports
56
+ ## Import
54
57
 
55
58
  ```ts
56
59
  import { computeClosedParallelTransportFrames } from "@metamesh/modeling/geometry";
57
60
  ```
58
61
 
59
- Package: `@metamesh/modeling@0.19.0`.
62
+ Package: `@metamesh/modeling@0.20.0`.
@@ -7,9 +7,8 @@ Builds rotation-minimizing frames by parallel-transporting the previous normal.
7
7
 
8
8
 
9
9
  This avoids the sudden profile flips produced by picking a fresh up-vector per ring.
10
- Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation.
11
- Requires open path values; raw tuples are interpreted as an open path. Invalid paths throw GeometryError.
12
- Nonfinite normals and guide results reject. A finite initial guide parallel to the tangent selects a canonical fallback.
10
+ Nonfinite guides and unusable path tangents throw GeometryError. A finite initial guide
11
+ parallel to the tangent selects a canonical fallback.
13
12
 
14
13
  ## Parameters
15
14
 
@@ -17,24 +16,32 @@ Nonfinite normals and guide results reject. A finite initial guide parallel to t
17
16
 
18
17
  **`input`** · [`Path3Input`](Path3Input.md) · Required
19
18
 
19
+ Open XYZ path or points in millimetres; at least two points.
20
+
20
21
 
21
22
 
22
23
  <a id="initialnormal"></a>
23
24
 
24
25
  **`initialNormal`** · [`Vector3Input`](Vector3Input.md) · Optional
25
26
 
27
+ Preferred starting X direction; the first normalGuide result wins.
28
+
26
29
 
27
30
 
28
31
  <a id="normalguide"></a>
29
32
 
30
33
  **`normalGuide`** · [`PathNormalGuide`](PathNormalGuide.md) · Optional
31
34
 
35
+ Profile X guide at each point; its sign follows the transported normal.
36
+
32
37
 
33
38
 
34
39
  <a id="limits"></a>
35
40
 
36
41
  **`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
37
42
 
43
+ Point limits, checked before creating frames or calling guides.
44
+
38
45
 
39
46
 
40
47
  ## Returns
@@ -52,12 +59,12 @@ readonly [`PathFrame`](PathFrame.md)[]
52
59
 
53
60
  ## Guides
54
61
 
55
- - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#query-paths-and-preserve-closure)
62
+ - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
56
63
 
57
- ## Supported imports
64
+ ## Import
58
65
 
59
66
  ```ts
60
67
  import { computeParallelTransportFrames } from "@metamesh/modeling/geometry";
61
68
  ```
62
69
 
63
- Package: `@metamesh/modeling@0.19.0`.
70
+ Package: `@metamesh/modeling@0.20.0`.
@@ -12,12 +12,16 @@ Returns true when a point lies inside or on the boundary of a loop.
12
12
 
13
13
  **`loop`** · [`Contour`](Contour.md) · Required
14
14
 
15
+ Simple XY loop with either winding.
16
+
15
17
 
16
18
 
17
19
  <a id="point"></a>
18
20
 
19
21
  **`point`** · [`Vector2Data`](Vector2Data.md) · Required
20
22
 
23
+ Query in the loop's coordinate system.
24
+
21
25
 
22
26
 
23
27
  ## Returns
@@ -32,12 +36,12 @@ Returns true when a point lies inside or on the boundary of a loop.
32
36
 
33
37
  ## Guides
34
38
 
35
- - [Choose a geometry representation](../../guides/geometry-values.md#geometry-vocabulary)
39
+ - [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
36
40
 
37
- ## Supported imports
41
+ ## Import
38
42
 
39
43
  ```ts
40
44
  import { contourContainsPoint } from "@metamesh/modeling/geometry";
41
45
  ```
42
46
 
43
- Package: `@metamesh/modeling@0.19.0`.
47
+ Package: `@metamesh/modeling@0.20.0`.
@@ -26,7 +26,7 @@ Creates a cap-center or radial-side anchor using cylinder()'s construction origi
26
26
 
27
27
  - [`angle`](CylinderAnchorOptions.md#angle) · `number` · Optional
28
28
 
29
- Side angle counter-clockwise from +X, in degrees; defaults to zero.
29
+ Side angle counterclockwise from +X, in degrees; defaults to zero.
30
30
 
31
31
  - [`center`](CylinderAnchorOptions.md#center) · `boolean` · Optional
32
32
 
@@ -44,7 +44,7 @@ Creates a cap-center or radial-side anchor using cylinder()'s construction origi
44
44
 
45
45
  ## Remarks
46
46
 
47
- Both centered and noncentered cylinders extend along +Z. Side angle uses degrees;
47
+ Cylinders use the local Z axis. Side angle uses degrees;
48
48
  origin applies an explicit translation, and arbitrary component transforms remain explicit.
49
49
 
50
50
 
@@ -56,12 +56,12 @@ origin applies an explicit translation, and arbitrary component transforms remai
56
56
  ## Guides
57
57
 
58
58
  - [Reusable transforms and vector math](../../guides/transforms-and-placement.md#reuse-a-transform-across-shapes-and-coordinates)
59
- - [Fluent values and tuple kernels](../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
59
+ - [Fluent values and tuple kernels](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
60
60
 
61
- ## Supported imports
61
+ ## Import
62
62
 
63
63
  ```ts
64
64
  import { cylinderAnchor3 } from "@metamesh/modeling/geometry";
65
65
  ```
66
66
 
67
- Package: `@metamesh/modeling@0.19.0`.
67
+ Package: `@metamesh/modeling@0.20.0`.
@@ -13,12 +13,12 @@ Conservative defaults; trusted callers can supply larger explicit ceilings.
13
13
 
14
14
  ## Guides
15
15
 
16
- - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#query-paths-and-preserve-closure)
16
+ - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
17
17
 
18
- ## Supported imports
18
+ ## Import
19
19
 
20
20
  ```ts
21
21
  import { defaultGeometrySamplingLimits } from "@metamesh/modeling/geometry";
22
22
  ```
23
23
 
24
- Package: `@metamesh/modeling@0.19.0`.
24
+ Package: `@metamesh/modeling@0.20.0`.
@@ -1,17 +1,14 @@
1
1
  # distributeAlongPath
2
2
 
3
- Places an exact item count at equal arc-length intervals along a sampled path.
3
+ Places an exact item count at equal arc-length intervals along a sampled XYZ path.
4
4
 
5
- `const` **distributeAlongPath**: (`input`: [`Path3Input`](Path3Input.md), `count`: `number`, `closed?`: `boolean`, `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>) => readonly [`PathPlacement`](PathPlacement.md)[]
5
+ **distributeAlongPath**(`input`: [`Path3Input`](Path3Input.md), `count`: `number`, `closed?`: `boolean`, `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>): readonly [`PathPlacement`](PathPlacement.md)[]
6
6
 
7
7
 
8
8
 
9
- Coordinates are unit-agnostic. Closed paths must omit their duplicated seam;
10
- open paths include both endpoints when `count` is greater than one.
11
- Coordinates and total length must be finite. Input points and output placements are each
12
- limited by maxPathPoints (default 100000); exact counts exceeding that ceiling reject before length calculation.
13
- Closure defaults to the path value's metadata, or false for tuples. An explicit conflicting closure rejects.
14
- Invalid arguments and degenerate paths throw GeometryError.
9
+ Open paths retain both endpoints when count exceeds one; closed paths omit the seam endpoint.
10
+ Zero-length edges are skipped. Invalid counts, repeated closed seams, nonfinite lengths,
11
+ zero-length paths, and exhausted budgets throw GeometryError.
15
12
 
16
13
  ## Parameters
17
14
 
@@ -19,24 +16,32 @@ Invalid arguments and degenerate paths throw GeometryError.
19
16
 
20
17
  **`input`** · [`Path3Input`](Path3Input.md) · Required
21
18
 
19
+ XYZ path or points in millimetres.
20
+
22
21
 
23
22
 
24
23
  <a id="count"></a>
25
24
 
26
25
  **`count`** · `number` · Required
27
26
 
27
+ Positive placement count; one selects the path start.
28
+
28
29
 
29
30
 
30
31
  <a id="closed"></a>
31
32
 
32
33
  **`closed`** · `boolean` · Optional
33
34
 
35
+ Raw-point closure, false by default; must match a path value.
36
+
34
37
 
35
38
 
36
39
  <a id="limits"></a>
37
40
 
38
41
  **`limits`** · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
39
42
 
43
+ Limits on input points and output placements.
44
+
40
45
 
41
46
 
42
47
  ## Returns
@@ -52,12 +57,12 @@ readonly [`PathPlacement`](PathPlacement.md)[]
52
57
 
53
58
  ## Guides
54
59
 
55
- - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#query-paths-and-preserve-closure)
60
+ - [Path queries and closure-preserving interchange](../../guides/geometry-values.md#keep-path-closure-and-traversal)
56
61
 
57
- ## Supported imports
62
+ ## Import
58
63
 
59
64
  ```ts
60
65
  import { distributeAlongPath } from "@metamesh/modeling/geometry";
61
66
  ```
62
67
 
63
- Package: `@metamesh/modeling@0.19.0`.
68
+ Package: `@metamesh/modeling@0.20.0`.
@@ -32,12 +32,12 @@ ellipseContour({ size: [30, 20] });
32
32
 
33
33
  ## Guides
34
34
 
35
- - [Choose a geometry representation](../../guides/geometry-values.md#geometry-vocabulary)
35
+ - [Choose a geometry representation](../../guides/geometry-values.md#material-boundaries-and-matching-profiles)
36
36
 
37
- ## Supported imports
37
+ ## Import
38
38
 
39
39
  ```ts
40
40
  import { ellipseContour } from "@metamesh/modeling/geometry";
41
41
  ```
42
42
 
43
- Package: `@metamesh/modeling@0.19.0`.
43
+ Package: `@metamesh/modeling@0.20.0`.