@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,89 +2,93 @@
2
2
 
3
3
  Compensated threaded nut.
4
4
 
5
- **threadedNut**(`options`: [`ThreadedNutOptions`](../geometry/ThreadedNutOptions.md)): [`Solid`](Solid.md)
5
+ **threadedNut**(`options`: [`ThreadedNutOptions`](../mechanical/ThreadedNutOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
9
9
  ## Example: Threaded nut
10
10
 
11
+
12
+
11
13
  ```ts
12
14
  import { threadedNut } from "@metamesh/modeling";
13
- import { threadProfile } from "@metamesh/modeling/geometry";
15
+ import { threadProfile } from "@metamesh/modeling/geometry/mechanical";
14
16
 
15
17
  const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
16
18
  threadedNut({ nominalMajorDiameter: 12, thickness: 8, width: 20, shape: "hex", profile, fit: "normal" });
17
19
  ```
18
20
 
21
+
22
+
19
23
  ## Parameters
20
24
 
21
25
  <a id="options"></a>
22
26
 
23
- **`options`** · [`ThreadedNutOptions`](../geometry/ThreadedNutOptions.md) · Required
27
+ **`options`** · [`ThreadedNutOptions`](../mechanical/ThreadedNutOptions.md) · Required
24
28
 
25
- - [`nominalMajorDiameter`](../geometry/ThreadedNutOptions.md#nominalmajordiameter) · `number` · Required
29
+ - [`nominalMajorDiameter`](../mechanical/ThreadedNutOptions.md#nominalmajordiameter) · `number` · Required
26
30
 
27
31
  Nominal major diameter before female compensation and faceting correction.
28
32
 
29
- - [`shape`](../geometry/ThreadedNutOptions.md#shape) · [`ThreadedNutShape`](../geometry/ThreadedNutShape.md) · Required
33
+ - [`shape`](../mechanical/ThreadedNutOptions.md#shape) · [`ThreadedNutShape`](../mechanical/ThreadedNutShape.md) · Required
30
34
 
31
35
  Nut body shape.
32
36
 
33
- - [`thickness`](../geometry/ThreadedNutOptions.md#thickness) · `number` · Required
37
+ - [`thickness`](../mechanical/ThreadedNutOptions.md#thickness) · `number` · Required
34
38
 
35
39
  Nut thickness along +Z in millimetres.
36
40
 
37
- - [`width`](../geometry/ThreadedNutOptions.md#width) · `number` · Required
41
+ - [`width`](../mechanical/ThreadedNutOptions.md#width) · `number` · Required
38
42
 
39
43
  Across-flats width for hex/square or diameter for round, in millimetres.
40
44
 
41
- - [`profile`](../geometry/ThreadedNutOptions.md#profile) · [`ThreadProfile`](../geometry/ThreadProfile-type.md) · Required
45
+ - [`profile`](../mechanical/ThreadedNutOptions.md#profile) · [`ThreadProfile`](../mechanical/ThreadProfile-type.md) · Required
42
46
 
43
47
  Validated periodic profile repeated around the shaft.
44
48
 
45
- - [`fit`](../geometry/ThreadedNutOptions.md#fit) · [`PrintableThreadFit`](../geometry/PrintableThreadFit.md) \| [`PrintableThreadFitPolicy`](../geometry/PrintableThreadFitPolicy.md) · Optional
49
+ - [`fit`](../mechanical/ThreadedNutOptions.md#fit) · [`PrintableThreadFit`](../mechanical/PrintableThreadFit.md) \| [`PrintableThreadFitPolicy`](../mechanical/PrintableThreadFitPolicy.md) · Optional
46
50
 
47
51
  Printable fit or caller-calibrated allowances. Default: `normal`.
48
52
 
49
- - [`innerBevel`](../geometry/ThreadedNutOptions.md#innerbevel) · [`Bevel`](../geometry/Bevel.md) · Optional
53
+ - [`innerBevel`](../mechanical/ThreadedNutOptions.md#innerbevel) · [`Bevel`](../mechanical/Bevel.md) · Optional
50
54
 
51
55
  Opening bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4); zero disables.
52
56
 
53
- - [`outerBevel`](../geometry/ThreadedNutOptions.md#outerbevel) · [`Bevel`](../geometry/Bevel.md) · Optional
57
+ - [`outerBevel`](../mechanical/ThreadedNutOptions.md#outerbevel) · [`Bevel`](../mechanical/Bevel.md) · Optional
54
58
 
55
59
  Body bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4).
56
60
  Use [0, "auto"] to keep the outside bottom flat without disabling its inner opening bevel.
57
61
 
58
- - [`bodyResolution`](../geometry/ThreadedNutOptions.md#bodyresolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
62
+ - [`bodyResolution`](../mechanical/ThreadedNutOptions.md#bodyresolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
59
63
 
60
64
  Optional physical policy for a round body, independent of the thread's matched facet grid.
61
65
 
62
- - [`ends`](../geometry/ThreadedNutOptions.md#ends) · [`ThreadEndTreatmentOptions`](../geometry/ThreadEndTreatmentOptions.md) · Optional
66
+ - [`ends`](../mechanical/ThreadedNutOptions.md#ends) · [`ThreadEndTreatmentOptions`](../mechanical/ThreadEndTreatmentOptions.md) · Optional
63
67
 
64
68
  Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
65
69
  BOSL2-style non-cut lead-in scaling is available on complete thread solids.
66
70
 
67
- - [`handedness`](../geometry/ThreadedNutOptions.md#handedness) · [`ThreadHandedness`](../geometry/ThreadHandedness.md) · Optional
71
+ - [`handedness`](../mechanical/ThreadedNutOptions.md#handedness) · [`ThreadHandedness`](../mechanical/ThreadHandedness.md) · Optional
68
72
 
69
73
  Helix direction. Default: `right`.
70
74
 
71
- - [`limits`](../geometry/ThreadedNutOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
75
+ - [`limits`](../mechanical/ThreadedNutOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
72
76
 
73
77
  Explicit output and circular allocation ceilings.
74
78
 
75
- - [`phase`](../geometry/ThreadedNutOptions.md#phase) · `number` · Optional
79
+ - [`phase`](../mechanical/ThreadedNutOptions.md#phase) · `number` · Optional
76
80
 
77
81
  Angular offset of the first start in degrees. Default: `0`.
78
82
 
79
- - [`resolution`](../geometry/ThreadedNutOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
83
+ - [`resolution`](../mechanical/ThreadedNutOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
80
84
 
81
85
  Optional circular-resolution policy.
82
86
 
83
- - [`starts`](../geometry/ThreadedNutOptions.md#starts) · `number` · Optional
87
+ - [`starts`](../mechanical/ThreadedNutOptions.md#starts) · `number` · Optional
84
88
 
85
89
  Number of evenly phased starts. Default: `1`.
86
90
 
87
- - [`tolerance`](../geometry/ThreadedNutOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
91
+ - [`tolerance`](../mechanical/ThreadedNutOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
88
92
 
89
93
  Optional numerical tolerance overrides.
90
94
 
@@ -98,17 +102,16 @@ threadedNut({ nominalMajorDiameter: 12, thickness: 8, width: 20, shape: "hex", p
98
102
  ## Related APIs
99
103
 
100
104
  - [Solid](Solid.md)
101
- - [ThreadedNutOptions](../geometry/ThreadedNutOptions.md)
102
105
 
103
106
  ## Guides
104
107
 
105
108
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
106
109
  - [Preflight guarantees and host settings](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
107
110
 
108
- ## Supported imports
111
+ ## Import
109
112
 
110
113
  ```ts
111
114
  import { threadedNut } from "@metamesh/modeling";
112
115
  ```
113
116
 
114
- Package: `@metamesh/modeling@0.19.0`.
117
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,73 +2,77 @@
2
2
 
3
3
  Compensated external threaded rod.
4
4
 
5
- **threadedRod**(`options`: [`ThreadedRodOptions`](../geometry/ThreadedRodOptions.md)): [`Solid`](Solid.md)
5
+ **threadedRod**(`options`: [`ThreadedRodOptions`](../mechanical/ThreadedRodOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
9
9
  ## Example: Threaded rod
10
10
 
11
+
12
+
11
13
  ```ts
12
14
  import { threadedRod } from "@metamesh/modeling";
13
- import { threadProfile } from "@metamesh/modeling/geometry";
15
+ import { threadProfile } from "@metamesh/modeling/geometry/mechanical";
14
16
 
15
17
  const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
16
18
  threadedRod({ nominalMajorDiameter: 12, length: 24, profile, fit: "normal" });
17
19
  ```
18
20
 
21
+
22
+
19
23
  ## Parameters
20
24
 
21
25
  <a id="options"></a>
22
26
 
23
- **`options`** · [`ThreadedRodOptions`](../geometry/ThreadedRodOptions.md) · Required
27
+ **`options`** · [`ThreadedRodOptions`](../mechanical/ThreadedRodOptions.md) · Required
24
28
 
25
- - [`nominalMajorDiameter`](../geometry/ThreadedRodOptions.md#nominalmajordiameter) · `number` · Required
29
+ - [`nominalMajorDiameter`](../mechanical/ThreadedRodOptions.md#nominalmajordiameter) · `number` · Required
26
30
 
27
31
  Nominal major diameter before male compensation.
28
32
 
29
- - [`length`](../geometry/ThreadedRodOptions.md#length) · `number` · Required
33
+ - [`length`](../mechanical/ThreadedRodOptions.md#length) · `number` · Required
30
34
 
31
35
  Total threaded axial length in millimetres.
32
36
 
33
- - [`profile`](../geometry/ThreadedRodOptions.md#profile) · [`ThreadProfile`](../geometry/ThreadProfile-type.md) · Required
37
+ - [`profile`](../mechanical/ThreadedRodOptions.md#profile) · [`ThreadProfile`](../mechanical/ThreadProfile-type.md) · Required
34
38
 
35
39
  Validated periodic profile repeated around the shaft.
36
40
 
37
- - [`bevel`](../geometry/ThreadedRodOptions.md#bevel) · [`Bevel`](../geometry/Bevel.md) · Optional
41
+ - [`bevel`](../mechanical/ThreadedRodOptions.md#bevel) · [`Bevel`](../mechanical/Bevel.md) · Optional
38
42
 
39
43
  Bottom/top sizes in millimetres. Omitted disables both. Auto uses profile depth for standard/tapered ends,
40
44
  or one sixth of the compensated male minor/female major radius for blunt ends.
41
45
 
42
- - [`fit`](../geometry/ThreadedRodOptions.md#fit) · [`PrintableThreadFit`](../geometry/PrintableThreadFit.md) \| [`PrintableThreadFitPolicy`](../geometry/PrintableThreadFitPolicy.md) · Optional
46
+ - [`fit`](../mechanical/ThreadedRodOptions.md#fit) · [`PrintableThreadFit`](../mechanical/PrintableThreadFit.md) \| [`PrintableThreadFitPolicy`](../mechanical/PrintableThreadFitPolicy.md) · Optional
43
47
 
44
48
  Printable fit or caller-calibrated allowances. Default: `normal`.
45
49
 
46
- - [`ends`](../geometry/ThreadedRodOptions.md#ends) · [`ThreadEndTreatmentOptions`](../geometry/ThreadEndTreatmentOptions.md) · Optional
50
+ - [`ends`](../mechanical/ThreadedRodOptions.md#ends) · [`ThreadEndTreatmentOptions`](../mechanical/ThreadEndTreatmentOptions.md) · Optional
47
51
 
48
52
  Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
49
53
  BOSL2-style non-cut lead-in scaling is available on complete thread solids.
50
54
 
51
- - [`handedness`](../geometry/ThreadedRodOptions.md#handedness) · [`ThreadHandedness`](../geometry/ThreadHandedness.md) · Optional
55
+ - [`handedness`](../mechanical/ThreadedRodOptions.md#handedness) · [`ThreadHandedness`](../mechanical/ThreadHandedness.md) · Optional
52
56
 
53
57
  Helix direction. Default: `right`.
54
58
 
55
- - [`limits`](../geometry/ThreadedRodOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
59
+ - [`limits`](../mechanical/ThreadedRodOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
56
60
 
57
61
  Explicit output and circular allocation ceilings.
58
62
 
59
- - [`phase`](../geometry/ThreadedRodOptions.md#phase) · `number` · Optional
63
+ - [`phase`](../mechanical/ThreadedRodOptions.md#phase) · `number` · Optional
60
64
 
61
65
  Angular offset of the first start in degrees. Default: `0`.
62
66
 
63
- - [`resolution`](../geometry/ThreadedRodOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
67
+ - [`resolution`](../mechanical/ThreadedRodOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
64
68
 
65
69
  Optional circular-resolution policy.
66
70
 
67
- - [`starts`](../geometry/ThreadedRodOptions.md#starts) · `number` · Optional
71
+ - [`starts`](../mechanical/ThreadedRodOptions.md#starts) · `number` · Optional
68
72
 
69
73
  Number of evenly phased starts. Default: `1`.
70
74
 
71
- - [`tolerance`](../geometry/ThreadedRodOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
75
+ - [`tolerance`](../mechanical/ThreadedRodOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
72
76
 
73
77
  Optional numerical tolerance overrides.
74
78
 
@@ -82,17 +86,16 @@ threadedRod({ nominalMajorDiameter: 12, length: 24, profile, fit: "normal" });
82
86
  ## Related APIs
83
87
 
84
88
  - [Solid](Solid.md)
85
- - [ThreadedRodOptions](../geometry/ThreadedRodOptions.md)
86
89
 
87
90
  ## Guides
88
91
 
89
92
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
90
93
  - [Preflight guarantees and host settings](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
91
94
 
92
- ## Supported imports
95
+ ## Import
93
96
 
94
97
  ```ts
95
98
  import { threadedRod } from "@metamesh/modeling";
96
99
  ```
97
100
 
98
- Package: `@metamesh/modeling@0.19.0`.
101
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Torus around +Z.
4
4
 
5
- **torus**(`options`: [`TorusOptions`](../geometry/TorusOptions.md)): [`Solid`](Solid.md)
5
+ **torus**(`options`: [`TorusOptions`](TorusOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -20,33 +20,33 @@ torus({ majorRadius: 12, minorRadius: 3 });
20
20
 
21
21
  <a id="options"></a>
22
22
 
23
- **`options`** · [`TorusOptions`](../geometry/TorusOptions.md) · Required
23
+ **`options`** · [`TorusOptions`](TorusOptions.md) · Required
24
24
 
25
- - [`majorRadius`](../geometry/TorusOptions.md#majorradius) · `number` · Required
25
+ - [`majorRadius`](TorusOptions.md#majorradius) · `number` · Required
26
26
 
27
27
  Radius from the Z axis to the profile center, in millimetres; greater than `minorRadius`.
28
28
 
29
- - [`minorRadius`](../geometry/TorusOptions.md#minorradius) · `number` · Required
29
+ - [`minorRadius`](TorusOptions.md#minorradius) · `number` · Required
30
30
 
31
31
  Radius of the swept circular profile in millimetres.
32
32
 
33
- - [`attachment`](../geometry/TorusOptions.md#attachment) · [`PrimitiveAttachmentOptions`](../geometry/PrimitiveAttachmentOptions.md) · Optional
33
+ - [`attachment`](TorusOptions.md#attachment) · [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md) · Optional
34
34
 
35
35
  Applied after local construction; Section attachment must preserve the XY plane.
36
36
 
37
- - [`limits`](../geometry/TorusOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\> · Optional
37
+ - [`limits`](TorusOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](../geometry/GeometrySamplingLimits.md)\> · Optional
38
38
 
39
39
  Explicit sampling ceilings, bounded by the host policy.
40
40
 
41
- - [`majorSegments`](../geometry/TorusOptions.md#majorsegments) · `number` · Optional
41
+ - [`majorSegments`](TorusOptions.md#majorsegments) · `number` · Optional
42
42
 
43
43
  Exact segment count around the Z axis; omitted uses adaptive resolution.
44
44
 
45
- - [`minorSegments`](../geometry/TorusOptions.md#minorsegments) · `number` · Optional
45
+ - [`minorSegments`](TorusOptions.md#minorsegments) · `number` · Optional
46
46
 
47
47
  Exact segment count around the swept profile; omitted uses adaptive resolution.
48
48
 
49
- - [`resolution`](../geometry/TorusOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
49
+ - [`resolution`](TorusOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
50
50
 
51
51
  Operation-level physical tessellation policy over the active model-wide policy.
52
52
 
@@ -60,18 +60,19 @@ torus({ majorRadius: 12, minorRadius: 3 });
60
60
  ## Related APIs
61
61
 
62
62
  - [Solid](Solid.md)
63
- - [TorusOptions](../geometry/TorusOptions.md)
63
+ - [TorusOptions](TorusOptions.md)
64
64
 
65
65
  ## Guides
66
66
 
67
67
  - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
68
68
  - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
69
69
  - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
70
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
70
71
 
71
- ## Supported imports
72
+ ## Import
72
73
 
73
74
  ```ts
74
75
  import { torus } from "@metamesh/modeling";
75
76
  ```
76
77
 
77
- Package: `@metamesh/modeling@0.19.0`.
78
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Hollow +Z tube.
4
4
 
5
- **tube**(`options`: [`TubeOptions`](../geometry/TubeOptions.md)): [`Solid`](Solid.md)
5
+ **tube**(`options`: [`TubeOptions`](TubeOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -20,7 +20,7 @@ tube({ height: 20, outerRadius: 10, innerRadius: 6 });
20
20
 
21
21
  <a id="options"></a>
22
22
 
23
- **`options`** · [`TubeOptions`](../geometry/TubeOptions.md) · Required
23
+ **`options`** · [`TubeOptions`](TubeOptions.md) · Required
24
24
 
25
25
 
26
26
 
@@ -32,18 +32,19 @@ tube({ height: 20, outerRadius: 10, innerRadius: 6 });
32
32
  ## Related APIs
33
33
 
34
34
  - [Solid](Solid.md)
35
- - [TubeOptions](../geometry/TubeOptions.md)
35
+ - [TubeOptions](TubeOptions.md)
36
36
 
37
37
  ## Guides
38
38
 
39
39
  - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
40
40
  - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
41
41
  - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
42
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
42
43
 
43
- ## Supported imports
44
+ ## Import
44
45
 
45
46
  ```ts
46
47
  import { tube } from "@metamesh/modeling";
47
48
  ```
48
49
 
49
- Package: `@metamesh/modeling@0.19.0`.
50
+ Package: `@metamesh/modeling@0.20.0`.
@@ -30,6 +30,8 @@ Robust union of one or more shapes; empty input rejects during declaration.
30
30
 
31
31
  **`solids`** · readonly [`Solid`](Solid.md)[] · Required
32
32
 
33
+ Operands in shared modeling coordinates.
34
+
33
35
 
34
36
 
35
37
  ### Returns
@@ -44,7 +46,7 @@ Robust union of one or more shapes; empty input rejects during declaration.
44
46
 
45
47
 
46
48
 
47
- Native filled section union; dimensions cannot be mixed.
49
+ Filled Section union; dimensions cannot be mixed.
48
50
 
49
51
  ### Parameters
50
52
 
@@ -52,6 +54,8 @@ Native filled section union; dimensions cannot be mixed.
52
54
 
53
55
  **`sections`** · readonly [`Section`](Section.md)[] · Required
54
56
 
57
+ Operands in shared XY coordinates.
58
+
55
59
 
56
60
 
57
61
  ### Returns
@@ -70,10 +74,10 @@ Native filled section union; dimensions cannot be mixed.
70
74
  - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
71
75
  - [Join an independently modeled feature](../../guides/solid-joins.md#join-an-independently-modeled-feature)
72
76
 
73
- ## Supported imports
77
+ ## Import
74
78
 
75
79
  ```ts
76
80
  import { union } from "@metamesh/modeling";
77
81
  ```
78
82
 
79
- Package: `@metamesh/modeling@0.19.0`.
83
+ Package: `@metamesh/modeling@0.20.0`.
@@ -1,8 +1,8 @@
1
1
  # Model API
2
2
 
3
- Immutable shapes, vectors and transforms with fluent operations and host-owned geometry evaluation.
3
+ Immutable solid and section recipes with fluent operations and host-owned geometry evaluation.
4
4
 
5
- Build models from immutable shapes with `@metamesh/modeling`. Import `generate`, shape constructors, vectors, transforms, and collection functions, then chain shape methods to transform, combine, query, and finish recipes. A host session runs the model and manages optional memo caches.
5
+ Build models from immutable shapes with `@metamesh/modeling`. Import `generate`, shape constructors, and collection functions, then chain shape methods to transform, combine, query, and finish recipes. A host session runs the model and manages optional memo caches.
6
6
 
7
7
  ```ts
8
8
  import { box, cylinder, generate } from "@metamesh/modeling";
@@ -26,13 +26,18 @@ See [host lifecycle](engine.md) and [pure foundations](geometry.md).
26
26
  - [Primitives](model/categories/primitives.md) — Create basic solids with explicit dimensions and tessellation.
27
27
  - [2D sections](model/categories/sections.md) — Create immutable filled XY shapes, including prepared text and bounded painted SVG.
28
28
  - [Boolean operations](model/categories/boolean-operations.md) — Combine, intersect and subtract same-dimensional shapes; construct solid envelopes and sums.
29
- - [Transforms, vectors, and placement](model/categories/transforms-placement.md) — Calculate with immutable vectors, reuse transforms, and position geometry.
29
+ - [Shape patterns](model/categories/transforms-placement.md) — Repeat Solid and Section recipes along lines, grids, circles, or paths.
30
30
  - [Extrude, revolve, and sweep](model/categories/extrude-revolve-sweep.md) — Turn sections and paths into extruded, lofted, revolved, or swept solids.
31
31
  - [Knuckle joints](model/categories/hinges.md) — Compose reusable knuckle joints with independent mounting attachments.
32
32
  - [Printable threads](model/categories/threads.md) — Construct compensated thread forms and inspect bounded preflight facts.
33
33
  - [Mesh and inspection](model/categories/mesh-inspection.md) — Convert validated meshes and read stable section or solid measurements.
34
- - [Explicit matching profiles](model/categories/explicit-profiles.md) — Build hollow or multicomponent lofts and sweeps using stable landmarks.
35
34
  - [Sampled surfaces](model/categories/bounded-surfaces.md) — Construct bounded heightfields and positive-inside implicit fields.
36
35
  - [Model generation](model/categories/generation.md) — Build typed models with optional cached computations, named parts, and structured warnings or errors.
37
36
 
38
- Package: `@metamesh/modeling@0.19.0`.
37
+ ## Import
38
+
39
+ ```ts
40
+ import * as model from "@metamesh/modeling";
41
+ ```
42
+
43
+ Package: `@metamesh/modeling@0.20.0`.
@@ -4,10 +4,10 @@ Maximum input font size in bytes, checked before parsing or shaping untrusted fo
4
4
 
5
5
  `const` **MAX\_VECTOR\_FONT\_BYTES**: `number`
6
6
 
7
- ## Supported imports
7
+ ## Import
8
8
 
9
9
  ```ts
10
10
  import { MAX_VECTOR_FONT_BYTES } from "@metamesh/modeling/text";
11
11
  ```
12
12
 
13
- Package: `@metamesh/modeling@0.19.0`.
13
+ Package: `@metamesh/modeling@0.20.0`.
@@ -8,11 +8,11 @@ A prepared font owns its parsed bytes; keep handles local to their Worker or inv
8
8
 
9
9
 
10
10
 
11
- `readonly` **layout**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](../geometry/VectorTextLayoutOptions.md)) => [`VectorTextLayout`](../geometry/VectorTextLayout.md)
11
+ `readonly` **layout**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md)) => [`VectorTextLayout`](../geometry/VectorTextLayout.md)
12
12
 
13
13
 
14
14
 
15
- Shape horizontal lines or one circular line; bounded to 512 UTF-16 units and supports blank text.
15
+ Shape horizontal lines or one circular line, including blank text.
16
16
 
17
17
  #### Parameters
18
18
 
@@ -20,37 +20,39 @@ Shape horizontal lines or one circular line; bounded to 512 UTF-16 units and sup
20
20
 
21
21
  **`text`** · `string` · Required
22
22
 
23
+ Up to 512 UTF-16 code units, across at most 16 lines.
24
+
23
25
 
24
26
 
25
27
  <a id="options"></a>
26
28
 
27
- **`options`** · [`VectorTextLayoutOptions`](../geometry/VectorTextLayoutOptions.md) · Required
29
+ **`options`** · [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md) · Required
28
30
 
29
- - [`fontSize`](../geometry/VectorTextLayoutOptions.md#fontsize) · `number` · Required
31
+ - [`fontSize`](VectorTextLayoutOptions.md#fontsize) · `number` · Required
30
32
 
31
33
  Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
32
34
 
33
- - [`align`](../geometry/VectorTextLayoutOptions.md#align) · `"left"` \| `"right"` \| `"center"` · Optional
35
+ - [`align`](VectorTextLayoutOptions.md#align) · `"center"` \| `"left"` \| `"right"` · Optional
34
36
 
35
37
  Place the advance's start, midpoint or end at the datum; defaults to center on arcs, otherwise left.
36
38
 
37
- - [`baseline`](../geometry/VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](../geometry/VectorTextArcBaseline.md) · Optional
39
+ - [`baseline`](VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](VectorTextArcBaseline.md) · Optional
38
40
 
39
41
  Omitted uses horizontal lines. Arcs require one line and baseline vertical alignment.
40
42
 
41
- - [`lineHeight`](../geometry/VectorTextLayoutOptions.md#lineheight) · `number` · Optional
43
+ - [`lineHeight`](VectorTextLayoutOptions.md#lineheight) · `number` · Optional
42
44
 
43
45
  Baseline spacing in ems, 0.5–5; omitted uses the selected face's natural vertical metrics.
44
46
 
45
- - [`verticalAlign`](../geometry/VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
47
+ - [`verticalAlign`](VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
46
48
 
47
49
  Place the first baseline or complete ink bounds at Y=0; arcs only accept baseline.
48
50
 
49
- - [`fontWeight`](../geometry/VectorTextLayoutOptions.md#fontweight) · `number` · Optional
51
+ - [`fontWeight`](VectorTextLayoutOptions.md#fontweight) · `number` · Optional
50
52
 
51
53
  Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
52
54
 
53
- - [`letterSpacing`](../geometry/VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
55
+ - [`letterSpacing`](VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
54
56
 
55
57
  Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
56
58
 
@@ -66,7 +68,7 @@ Shape horizontal lines or one circular line; bounded to 512 UTF-16 units and sup
66
68
 
67
69
 
68
70
 
69
- `readonly` **measure**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](../geometry/VectorTextLayoutOptions.md)) => [`VectorTextMetrics`](../geometry/VectorTextMetrics.md)
71
+ `readonly` **measure**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md)) => [`VectorTextMetrics`](../geometry/VectorTextMetrics.md)
70
72
 
71
73
 
72
74
 
@@ -78,37 +80,39 @@ Measure the same cached vector layout; all returned lengths are in millimetres.
78
80
 
79
81
  **`text`** · `string` · Required
80
82
 
83
+ Same limits as [VectorFont.layout](#layout).
84
+
81
85
 
82
86
 
83
87
  <a id="options-1"></a>
84
88
 
85
- **`options`** · [`VectorTextLayoutOptions`](../geometry/VectorTextLayoutOptions.md) · Required
89
+ **`options`** · [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md) · Required
86
90
 
87
- - [`fontSize`](../geometry/VectorTextLayoutOptions.md#fontsize) · `number` · Required
91
+ - [`fontSize`](VectorTextLayoutOptions.md#fontsize) · `number` · Required
88
92
 
89
93
  Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
90
94
 
91
- - [`align`](../geometry/VectorTextLayoutOptions.md#align) · `"left"` \| `"right"` \| `"center"` · Optional
95
+ - [`align`](VectorTextLayoutOptions.md#align) · `"center"` \| `"left"` \| `"right"` · Optional
92
96
 
93
97
  Place the advance's start, midpoint or end at the datum; defaults to center on arcs, otherwise left.
94
98
 
95
- - [`baseline`](../geometry/VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](../geometry/VectorTextArcBaseline.md) · Optional
99
+ - [`baseline`](VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](VectorTextArcBaseline.md) · Optional
96
100
 
97
101
  Omitted uses horizontal lines. Arcs require one line and baseline vertical alignment.
98
102
 
99
- - [`lineHeight`](../geometry/VectorTextLayoutOptions.md#lineheight) · `number` · Optional
103
+ - [`lineHeight`](VectorTextLayoutOptions.md#lineheight) · `number` · Optional
100
104
 
101
105
  Baseline spacing in ems, 0.5–5; omitted uses the selected face's natural vertical metrics.
102
106
 
103
- - [`verticalAlign`](../geometry/VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
107
+ - [`verticalAlign`](VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
104
108
 
105
109
  Place the first baseline or complete ink bounds at Y=0; arcs only accept baseline.
106
110
 
107
- - [`fontWeight`](../geometry/VectorTextLayoutOptions.md#fontweight) · `number` · Optional
111
+ - [`fontWeight`](VectorTextLayoutOptions.md#fontweight) · `number` · Optional
108
112
 
109
113
  Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
110
114
 
111
- - [`letterSpacing`](../geometry/VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
115
+ - [`letterSpacing`](VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
112
116
 
113
117
  Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
114
118
 
@@ -124,11 +128,11 @@ Measure the same cached vector layout; all returned lengths are in millimetres.
124
128
 
125
129
 
126
130
 
127
- `readonly` **toSvg**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](../geometry/VectorTextLayoutOptions.md)) => `string`
131
+ `readonly` **toSvg**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md)) => `string`
128
132
 
129
133
 
130
134
 
131
- Serialize visible horizontal or circular outlines as bounded path-only SVG in physical millimetres.
135
+ Serialize visible horizontal or circular outlines as path-only SVG in millimetres, bounded to 256 KiB.
132
136
 
133
137
  #### Parameters
134
138
 
@@ -136,37 +140,39 @@ Serialize visible horizontal or circular outlines as bounded path-only SVG in ph
136
140
 
137
141
  **`text`** · `string` · Required
138
142
 
143
+ Same limits as [VectorFont.layout](#layout); blank outlines are rejected.
144
+
139
145
 
140
146
 
141
147
  <a id="options-2"></a>
142
148
 
143
- **`options`** · [`VectorTextLayoutOptions`](../geometry/VectorTextLayoutOptions.md) · Required
149
+ **`options`** · [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md) · Required
144
150
 
145
- - [`fontSize`](../geometry/VectorTextLayoutOptions.md#fontsize) · `number` · Required
151
+ - [`fontSize`](VectorTextLayoutOptions.md#fontsize) · `number` · Required
146
152
 
147
153
  Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
148
154
 
149
- - [`align`](../geometry/VectorTextLayoutOptions.md#align) · `"left"` \| `"right"` \| `"center"` · Optional
155
+ - [`align`](VectorTextLayoutOptions.md#align) · `"center"` \| `"left"` \| `"right"` · Optional
150
156
 
151
157
  Place the advance's start, midpoint or end at the datum; defaults to center on arcs, otherwise left.
152
158
 
153
- - [`baseline`](../geometry/VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](../geometry/VectorTextArcBaseline.md) · Optional
159
+ - [`baseline`](VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](VectorTextArcBaseline.md) · Optional
154
160
 
155
161
  Omitted uses horizontal lines. Arcs require one line and baseline vertical alignment.
156
162
 
157
- - [`lineHeight`](../geometry/VectorTextLayoutOptions.md#lineheight) · `number` · Optional
163
+ - [`lineHeight`](VectorTextLayoutOptions.md#lineheight) · `number` · Optional
158
164
 
159
165
  Baseline spacing in ems, 0.5–5; omitted uses the selected face's natural vertical metrics.
160
166
 
161
- - [`verticalAlign`](../geometry/VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
167
+ - [`verticalAlign`](VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
162
168
 
163
169
  Place the first baseline or complete ink bounds at Y=0; arcs only accept baseline.
164
170
 
165
- - [`fontWeight`](../geometry/VectorTextLayoutOptions.md#fontweight) · `number` · Optional
171
+ - [`fontWeight`](VectorTextLayoutOptions.md#fontweight) · `number` · Optional
166
172
 
167
173
  Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
168
174
 
169
- - [`letterSpacing`](../geometry/VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
175
+ - [`letterSpacing`](VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
170
176
 
171
177
  Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
172
178
 
@@ -179,14 +185,12 @@ Serialize visible horizontal or circular outlines as bounded path-only SVG in ph
179
185
 
180
186
  ## Related APIs
181
187
 
182
- - [VectorTextLayout](../geometry/VectorTextLayout.md)
183
- - [VectorTextLayoutOptions](../geometry/VectorTextLayoutOptions.md)
184
- - [VectorTextMetrics](../geometry/VectorTextMetrics.md)
188
+ - [VectorTextLayoutOptions](VectorTextLayoutOptions.md)
185
189
 
186
- ## Supported imports
190
+ ## Import
187
191
 
188
192
  ```ts
189
193
  import type { VectorFont } from "@metamesh/modeling/text";
190
194
  ```
191
195
 
192
- Package: `@metamesh/modeling@0.19.0`.
196
+ Package: `@metamesh/modeling@0.20.0`.