@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
@@ -24,7 +24,6 @@ Unspecified resolution inherits the evaluating session. Axis direction is +X wit
24
24
  Each half's `chamfer` bevels its barrel outer rims and all web edges. Consumers own plates, screw holes,
25
25
  pin retention, fit policy, and part placement. Added mounting material must preserve the bores.
26
26
  No opening range or collision freedom is implied for arbitrary caller attachments.
27
- Compiled Generator packages using this operation require runtime 10.0.0 or newer in major 10.
28
27
 
29
28
  ## Parameters
30
29
 
@@ -44,10 +43,10 @@ Compiled Generator packages using this operation require runtime 10.0.0 or newer
44
43
  - [KnuckleHinge](KnuckleHinge-type.md)
45
44
  - [KnuckleHingeOptions](KnuckleHingeOptions.md)
46
45
 
47
- ## Supported imports
46
+ ## Import
48
47
 
49
48
  ```ts
50
49
  import { knuckleHinge } from "@metamesh/modeling";
51
50
  ```
52
51
 
53
- Package: `@metamesh/modeling@0.19.0`.
52
+ Package: `@metamesh/modeling@0.20.0`.
@@ -12,10 +12,14 @@ Repeats one solid along a normalized direction.
12
12
 
13
13
  ## Example: Three copies along X
14
14
 
15
+
16
+
15
17
  ```ts
16
18
  linearPattern(box({ size: 4 }), { count: 3, spacing: 10 });
17
19
  ```
18
20
 
21
+
22
+
19
23
  Repeats one solid along a normalized direction.
20
24
 
21
25
  ### Parameters
@@ -24,6 +28,8 @@ Repeats one solid along a normalized direction.
24
28
 
25
29
  **`source`** · [`PatternSource`](PatternSource.md) · Required
26
30
 
31
+ Recipe or factory called once per copy, in zero-based order.
32
+
27
33
 
28
34
 
29
35
  <a id="options"></a>
@@ -52,6 +58,8 @@ Repeats a filled Section along an XY direction, defaulting to +X.
52
58
 
53
59
  **`source`** · [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\> · Required
54
60
 
61
+ Recipe or factory called once per copy, in zero-based order.
62
+
55
63
 
56
64
 
57
65
  <a id="options-1"></a>
@@ -67,7 +75,6 @@ readonly [`Section`](Section.md)[]
67
75
 
68
76
  ## Related APIs
69
77
 
70
- - [LinearPatternOptions](../geometry/LinearPatternOptions.md)
71
78
  - [PatternSource](PatternSource.md)
72
79
  - [Section](Section.md)
73
80
  - [Solid](Solid.md)
@@ -76,12 +83,12 @@ readonly [`Section`](Section.md)[]
76
83
 
77
84
  - [Named anchors and custom frames](../../guides/transforms-and-placement.md#named-anchors-and-custom-frames)
78
85
  - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
79
- - [Fluent values and standalone algorithms](../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
86
+ - [Fluent values and standalone algorithms](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
80
87
 
81
- ## Supported imports
88
+ ## Import
82
89
 
83
90
  ```ts
84
91
  import { linearPattern } from "@metamesh/modeling";
85
92
  ```
86
93
 
87
- Package: `@metamesh/modeling@0.19.0`.
94
+ Package: `@metamesh/modeling@0.20.0`.
@@ -1,12 +1,12 @@
1
1
  # loft
2
2
 
3
- Lofts Sections and point loops at z heights or frames. Known primitive landmarks are retained; other profiles default to direct correspondence, preserving their supplied seams.
3
+ Lofts Sections and point contours at z heights or affine transforms. Known primitive landmarks are retained; other profiles default to direct correspondence, preserving their supplied seams.
4
4
 
5
5
  ## Call Signature
6
6
 
7
7
 
8
8
 
9
- **loft**(`stations`: readonly [`LoftStation`](LoftStation.md)[], `options?`: [`LoftOptions`](../geometry/LoftOptions.md)): [`Solid`](Solid.md)
9
+ **loft**(`stations`: readonly [`LoftStation`](LoftStation.md)[], `options?`: [`LoftOptions`](LoftOptions.md)): [`Solid`](Solid.md)
10
10
 
11
11
 
12
12
 
@@ -23,7 +23,7 @@ loft([
23
23
 
24
24
 
25
25
 
26
- Lofts Sections and point loops at z heights or frames. Known primitive landmarks are retained;
26
+ Lofts Sections and point contours at z heights or affine transforms. Known primitive landmarks are retained;
27
27
  other profiles default to direct correspondence, preserving their supplied seams.
28
28
 
29
29
  ### Parameters
@@ -32,33 +32,35 @@ other profiles default to direct correspondence, preserving their supplied seams
32
32
 
33
33
  **`stations`** · readonly [`LoftStation`](LoftStation.md)[] · Required
34
34
 
35
+ Ordered profiles at millimetre Z heights or affine placements.
36
+
35
37
 
36
38
 
37
39
  <a id="options"></a>
38
40
 
39
- **`options`** · [`LoftOptions`](../geometry/LoftOptions.md) · Optional
41
+ **`options`** · [`LoftOptions`](LoftOptions.md) · Optional
40
42
 
41
- - [`correspondence`](../geometry/LoftOptions.md#correspondence) · [`LoftCorrespondence`](../geometry/LoftCorrespondence.md) \| readonly [`LoftCorrespondence`](../geometry/LoftCorrespondence.md)[] · Optional
43
+ - [`correspondence`](LoftOptions.md#correspondence) · [`LoftCorrespondence`](LoftCorrespondence.md) \| readonly [`LoftCorrespondence`](LoftCorrespondence.md)[] · Optional
42
44
 
43
45
  One method or one per consecutive station gap. Omitted preserves known primitive landmarks, including circle/ellipse-to-rectangle corners, and otherwise uses direct correspondence with the supplied seams.
44
46
 
45
- - [`distribution`](../geometry/LoftOptions.md#distribution) · `"perimeter"` \| `"segments"` · Optional
47
+ - [`distribution`](LoftOptions.md#distribution) · `"perimeter"` \| `"segments"` · Optional
46
48
 
47
49
  Extra points follow edge length or distribute equally across existing segments. Defaults to perimeter for direct/reindex, or segments when any distance method is selected; distance methods require segments.
48
50
 
49
- - [`refine`](../geometry/LoftOptions.md#refine) · `number` \| readonly `number`[] · Optional
51
+ - [`refine`](LoftOptions.md#refine) · `number` \| readonly `number`[] · Optional
50
52
 
51
53
  Positive integer point-density multiplier, uniformly or per input profile. Original vertices are retained. Defaults to one.
52
54
 
53
- - [`slices`](../geometry/LoftOptions.md#slices) · `number` \| readonly `number`[] · Optional
55
+ - [`slices`](LoftOptions.md#slices) · `number` \| readonly `number`[] · Optional
54
56
 
55
- Nonnegative count of world-linearly interpolated profiles, uniformly or per gap. Defaults to zero.
57
+ Positive longitudinal interval count, uniformly or per supplied station gap. Each gap with n slices has n - 1 inserted profiles. Defaults to one; placed world vertices interpolate linearly.
56
58
 
57
- - [`resolution`](../geometry/LoftOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
59
+ - [`resolution`](LoftOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
58
60
 
59
61
  Physical curve policy for retained primitives, and maximum edge length for point data. Exact primitive curve counts take precedence.
60
62
 
61
- - [`limits`](../geometry/LoftOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
63
+ - [`limits`](LoftOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
62
64
 
63
65
  Explicit output and sampling budgets; native operations may only lower host ceilings.
64
66
 
@@ -72,7 +74,7 @@ other profiles default to direct correspondence, preserving their supplied seams
72
74
 
73
75
 
74
76
 
75
- **loft**(`stations`: readonly [`CorrespondingProfileStation`](../geometry/CorrespondingProfileStation.md)[], `options?`: [`LoftOptions`](../geometry/LoftOptions.md)): [`Solid`](Solid.md)
77
+ **loft**(`stations`: readonly [`CorrespondingProfileStation`](../geometry/CorrespondingProfileStation.md)[], `options?`: [`LoftOptions`](LoftOptions.md)): [`Solid`](Solid.md)
76
78
 
77
79
 
78
80
 
@@ -84,33 +86,35 @@ Lofts explicit corresponding contours, including holes and collapsed logical slo
84
86
 
85
87
  **`stations`** · readonly [`CorrespondingProfileStation`](../geometry/CorrespondingProfileStation.md)[] · Required
86
88
 
89
+ Ordered profiles at millimetre Z heights or affine placements.
90
+
87
91
 
88
92
 
89
93
  <a id="options-1"></a>
90
94
 
91
- **`options`** · [`LoftOptions`](../geometry/LoftOptions.md) · Optional
95
+ **`options`** · [`LoftOptions`](LoftOptions.md) · Optional
92
96
 
93
- - [`correspondence`](../geometry/LoftOptions.md#correspondence) · [`LoftCorrespondence`](../geometry/LoftCorrespondence.md) \| readonly [`LoftCorrespondence`](../geometry/LoftCorrespondence.md)[] · Optional
97
+ - [`correspondence`](LoftOptions.md#correspondence) · [`LoftCorrespondence`](LoftCorrespondence.md) \| readonly [`LoftCorrespondence`](LoftCorrespondence.md)[] · Optional
94
98
 
95
99
  One method or one per consecutive station gap. Omitted preserves known primitive landmarks, including circle/ellipse-to-rectangle corners, and otherwise uses direct correspondence with the supplied seams.
96
100
 
97
- - [`distribution`](../geometry/LoftOptions.md#distribution) · `"perimeter"` \| `"segments"` · Optional
101
+ - [`distribution`](LoftOptions.md#distribution) · `"perimeter"` \| `"segments"` · Optional
98
102
 
99
103
  Extra points follow edge length or distribute equally across existing segments. Defaults to perimeter for direct/reindex, or segments when any distance method is selected; distance methods require segments.
100
104
 
101
- - [`refine`](../geometry/LoftOptions.md#refine) · `number` \| readonly `number`[] · Optional
105
+ - [`refine`](LoftOptions.md#refine) · `number` \| readonly `number`[] · Optional
102
106
 
103
107
  Positive integer point-density multiplier, uniformly or per input profile. Original vertices are retained. Defaults to one.
104
108
 
105
- - [`slices`](../geometry/LoftOptions.md#slices) · `number` \| readonly `number`[] · Optional
109
+ - [`slices`](LoftOptions.md#slices) · `number` \| readonly `number`[] · Optional
106
110
 
107
- Nonnegative count of world-linearly interpolated profiles, uniformly or per gap. Defaults to zero.
111
+ Positive longitudinal interval count, uniformly or per supplied station gap. Each gap with n slices has n - 1 inserted profiles. Defaults to one; placed world vertices interpolate linearly.
108
112
 
109
- - [`resolution`](../geometry/LoftOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
113
+ - [`resolution`](LoftOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
110
114
 
111
115
  Physical curve policy for retained primitives, and maximum edge length for point data. Exact primitive curve counts take precedence.
112
116
 
113
- - [`limits`](../geometry/LoftOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
117
+ - [`limits`](LoftOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
114
118
 
115
119
  Explicit output and sampling budgets; native operations may only lower host ceilings.
116
120
 
@@ -123,23 +127,23 @@ Lofts explicit corresponding contours, including holes and collapsed logical slo
123
127
 
124
128
  ## Related APIs
125
129
 
126
- - [CorrespondingProfileStation](../geometry/CorrespondingProfileStation.md)
127
- - [LoftOptions](../geometry/LoftOptions.md)
130
+ - [LoftOptions](LoftOptions.md)
128
131
  - [LoftStation](LoftStation.md)
129
132
  - [Solid](Solid.md)
130
133
 
131
134
  ## Guides
132
135
 
133
136
  - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
137
+ - [Chamfer a twisted extrusion](../../guides/profiles-and-extrusion.md#chamfer-a-twisted-extrusion)
134
138
  - [Revolve a radial profile](../../guides/profiles-and-extrusion.md#revolve-a-radial-profile)
135
139
  - [Rotation-minimizing path sweep](../../guides/sweeps-and-lofts.md#rotation-minimizing-path-sweep)
136
140
  - [Matched-section loft](../../guides/sweeps-and-lofts.md#matched-section-loft)
137
141
  - [Choose a modeling path](../../guides/recipes.md#choose-a-technique)
138
142
 
139
- ## Supported imports
143
+ ## Import
140
144
 
141
145
  ```ts
142
146
  import { loft } from "@metamesh/modeling";
143
147
  ```
144
148
 
145
- Package: `@metamesh/modeling@0.19.0`.
149
+ Package: `@metamesh/modeling@0.20.0`.
@@ -1,6 +1,6 @@
1
1
  # minkowskiSum
2
2
 
3
- Three-dimensional Minkowski sum.
3
+ Declares the three-dimensional Minkowski sum of two Solid recipes.
4
4
 
5
5
  **minkowskiSum**(`a`: [`Solid`](Solid.md), `b`: [`Solid`](Solid.md)): [`Solid`](Solid.md)
6
6
 
@@ -35,10 +35,10 @@ Three-dimensional Minkowski sum.
35
35
  - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
36
36
  - [Join an independently modeled feature](../../guides/solid-joins.md#join-an-independently-modeled-feature)
37
37
 
38
- ## Supported imports
38
+ ## Import
39
39
 
40
40
  ```ts
41
41
  import { minkowskiSum } from "@metamesh/modeling";
42
42
  ```
43
43
 
44
- Package: `@metamesh/modeling@0.19.0`.
44
+ Package: `@metamesh/modeling@0.20.0`.
@@ -12,10 +12,14 @@ Physical arc-length copies along a sampled path, with optional tangent orientati
12
12
 
13
13
  ## Example: Copies along a bent path
14
14
 
15
+
16
+
15
17
  ```ts
16
18
  pathPattern(box({ size: 4 }), [[0, 0, 0], [20, 0, 0], [20, 20, 0]], { count: 5 });
17
19
  ```
18
20
 
21
+
22
+
19
23
  Physical arc-length copies along a sampled path, with optional tangent orientation.
20
24
 
21
25
  ### Parameters
@@ -24,12 +28,16 @@ Physical arc-length copies along a sampled path, with optional tangent orientati
24
28
 
25
29
  **`source`** · [`PatternSource`](PatternSource.md) · Required
26
30
 
31
+ Recipe or factory called once per copy, in zero-based order.
32
+
27
33
 
28
34
 
29
35
  <a id="path"></a>
30
36
 
31
37
  **`path`** · [`Path3Input`](../geometry/Path3Input.md) · Required
32
38
 
39
+ Path in millimetres; spacing uses arc length.
40
+
33
41
 
34
42
 
35
43
  <a id="options"></a>
@@ -46,7 +54,7 @@ Physical arc-length copies along a sampled path, with optional tangent orientati
46
54
 
47
55
  - [`orientation`](../geometry/PathPatternOptions.md#orientation) · `"fixed"` \| `"tangent"` · Optional
48
56
 
49
- Preserve orientation, or align local +X for Sections / +Z for Solids to the tangent. Defaults to fixed.
57
+ Preserve orientation, or align local +X for Sections / +Z for Solids to the outgoing edge tangent. An open final endpoint uses its incoming edge. Defaults to fixed.
50
58
 
51
59
 
52
60
 
@@ -71,12 +79,16 @@ to the path tangent counterclockwise, preserving the XY plane.
71
79
 
72
80
  **`source`** · [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\> · Required
73
81
 
82
+ Recipe or factory called once per copy, in zero-based order.
83
+
74
84
 
75
85
 
76
86
  <a id="path-1"></a>
77
87
 
78
88
  **`path`** · [`Path2Input`](../geometry/Path2Input.md) · Required
79
89
 
90
+ Path in millimetres; spacing uses arc length.
91
+
80
92
 
81
93
 
82
94
  <a id="options-1"></a>
@@ -93,7 +105,7 @@ to the path tangent counterclockwise, preserving the XY plane.
93
105
 
94
106
  - [`orientation`](../geometry/PathPatternOptions.md#orientation) · `"fixed"` \| `"tangent"` · Optional
95
107
 
96
- Preserve orientation, or align local +X for Sections / +Z for Solids to the tangent. Defaults to fixed.
108
+ Preserve orientation, or align local +X for Sections / +Z for Solids to the outgoing edge tangent. An open final endpoint uses its incoming edge. Defaults to fixed.
97
109
 
98
110
 
99
111
 
@@ -104,9 +116,6 @@ readonly [`Section`](Section.md)[]
104
116
 
105
117
  ## Related APIs
106
118
 
107
- - [Path2Input](../geometry/Path2Input.md)
108
- - [Path3Input](../geometry/Path3Input.md)
109
- - [PathPatternOptions](../geometry/PathPatternOptions.md)
110
119
  - [PatternSource](PatternSource.md)
111
120
  - [Section](Section.md)
112
121
  - [Solid](Solid.md)
@@ -115,12 +124,12 @@ readonly [`Section`](Section.md)[]
115
124
 
116
125
  - [Named anchors and custom frames](../../guides/transforms-and-placement.md#named-anchors-and-custom-frames)
117
126
  - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
118
- - [Fluent values and standalone algorithms](../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
127
+ - [Fluent values and standalone algorithms](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
119
128
 
120
- ## Supported imports
129
+ ## Import
121
130
 
122
131
  ```ts
123
132
  import { pathPattern } from "@metamesh/modeling";
124
133
  ```
125
134
 
126
- Package: `@metamesh/modeling@0.19.0`.
135
+ Package: `@metamesh/modeling@0.20.0`.
@@ -8,10 +8,14 @@ Fills one closed millimetre XY outline, explicit outer/hole topology, or compoun
8
8
 
9
9
  ## Example: Extrude a triangular plate
10
10
 
11
+
12
+
11
13
  ```ts
12
14
  polygon([[0, 0], [20, 0], [10, 12]]).extrude({ height: 3 });
13
15
  ```
14
16
 
17
+
18
+
15
19
  Closing edges are implicit. Compound contours use nonzero fill unless selected otherwise.
16
20
  Explicit topology must be simple and disjoint; compound winding may resolve overlaps.
17
21
 
@@ -21,6 +25,8 @@ Explicit topology must be simple and disjoint; compound winding may resolve over
21
25
 
22
26
  **`input`** · [`Path2Input`](../geometry/Path2Input.md) \| [`PolygonOptions`](PolygonOptions.md) · Required
23
27
 
28
+ XY outline in millimetres, or explicit or compound topology.
29
+
24
30
 
25
31
 
26
32
  ## Returns
@@ -30,7 +36,6 @@ Explicit topology must be simple and disjoint; compound winding may resolve over
30
36
 
31
37
  ## Related APIs
32
38
 
33
- - [Path2Input](../geometry/Path2Input.md)
34
39
  - [PolygonOptions](PolygonOptions.md)
35
40
  - [Section](Section.md)
36
41
 
@@ -40,10 +45,10 @@ Explicit topology must be simple and disjoint; compound winding may resolve over
40
45
  - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
41
46
  - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
42
47
 
43
- ## Supported imports
48
+ ## Import
44
49
 
45
50
  ```ts
46
51
  import { polygon } from "@metamesh/modeling";
47
52
  ```
48
53
 
49
- Package: `@metamesh/modeling@0.19.0`.
54
+ Package: `@metamesh/modeling@0.20.0`.
@@ -12,11 +12,15 @@ Repeats one solid about an axis.
12
12
 
13
13
  ## Example: Six copies around Z
14
14
 
15
+
16
+
15
17
  ```ts
16
18
  const pin = cylinder({ height: 6, radius: 2 }).translate([12, 0, 0]);
17
19
  radialPattern(pin, { count: 6, axis: [0, 0, 1], angle: 60 });
18
20
  ```
19
21
 
22
+
23
+
20
24
  Repeats one solid about an axis.
21
25
 
22
26
  ### Parameters
@@ -25,6 +29,8 @@ Repeats one solid about an axis.
25
29
 
26
30
  **`source`** · [`PatternSource`](PatternSource.md) · Required
27
31
 
32
+ Recipe or factory called once per copy, in zero-based order.
33
+
28
34
 
29
35
 
30
36
  <a id="options"></a>
@@ -53,6 +59,8 @@ Repeats a filled Section counterclockwise about a fixed XY pivot, using the impl
53
59
 
54
60
  **`source`** · [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\> · Required
55
61
 
62
+ Recipe or factory called once per copy, in zero-based order.
63
+
56
64
 
57
65
 
58
66
  <a id="options-1"></a>
@@ -69,7 +77,6 @@ readonly [`Section`](Section.md)[]
69
77
  ## Related APIs
70
78
 
71
79
  - [PatternSource](PatternSource.md)
72
- - [RadialPatternOptions](../geometry/RadialPatternOptions.md)
73
80
  - [Section](Section.md)
74
81
  - [Solid](Solid.md)
75
82
 
@@ -77,12 +84,12 @@ readonly [`Section`](Section.md)[]
77
84
 
78
85
  - [Named anchors and custom frames](../../guides/transforms-and-placement.md#named-anchors-and-custom-frames)
79
86
  - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
80
- - [Fluent values and standalone algorithms](../../guides/geometry-values.md#choose-fluent-values-or-standalone-algorithms)
87
+ - [Fluent values and standalone algorithms](../../guides/geometry-values.md#fluent-values-plain-data-and-descriptors)
81
88
 
82
- ## Supported imports
89
+ ## Import
83
90
 
84
91
  ```ts
85
92
  import { radialPattern } from "@metamesh/modeling";
86
93
  ```
87
94
 
88
- Package: `@metamesh/modeling@0.19.0`.
95
+ Package: `@metamesh/modeling@0.20.0`.
@@ -8,10 +8,14 @@ Filled rectangular section with uniform or independently treated corners.
8
8
 
9
9
  ## Example: Round the corners
10
10
 
11
+
12
+
11
13
  ```ts
12
- rectangle({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
14
+ rectangle({ size: [30, 20], treatment: { kind: "round", radius: 3 } }).extrude({ height: 3 });
13
15
  ```
14
16
 
17
+
18
+
15
19
  Use [rectangleContour](../geometry/rectangleContour.md) for sampled boundary coordinates,
16
20
  or [rectangleProfile](../geometry/rectangleProfile.md) to retain identified loft landmarks.
17
21
 
@@ -25,10 +29,6 @@ or [rectangleProfile](../geometry/rectangleProfile.md) to retain identified loft
25
29
 
26
30
  Positive uniform size or explicit XY extents in millimetres.
27
31
 
28
- - [`attachment`](RectangleOptions.md#attachment) · [`PrimitiveAttachmentOptions`](../geometry/PrimitiveAttachmentOptions.md) · Optional
29
-
30
- Applied after local construction; Section attachment must preserve the XY plane.
31
-
32
32
  - [`center`](RectangleOptions.md#center) · `boolean` · Optional
33
33
 
34
34
  Center on XY; otherwise the minimum corner is the origin. Defaults to true.
@@ -41,6 +41,10 @@ or [rectangleProfile](../geometry/rectangleProfile.md) to retain identified loft
41
41
 
42
42
  Explicit sampling ceiling for the complete output profile.
43
43
 
44
+ - [`attachment`](RectangleOptions.md#attachment) · [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md) · Optional
45
+
46
+ Applied after local construction; Section attachment must preserve the XY plane.
47
+
44
48
 
45
49
 
46
50
  ## Returns
@@ -59,10 +63,10 @@ or [rectangleProfile](../geometry/rectangleProfile.md) to retain identified loft
59
63
  - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
60
64
  - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
61
65
 
62
- ## Supported imports
66
+ ## Import
63
67
 
64
68
  ```ts
65
69
  import { rectangle } from "@metamesh/modeling";
66
70
  ```
67
71
 
68
- Package: `@metamesh/modeling@0.19.0`.
72
+ Package: `@metamesh/modeling@0.20.0`.
@@ -8,10 +8,14 @@ Regular polygon with a vertex on +X.
8
8
 
9
9
  ## Example: Hexagonal section
10
10
 
11
+
12
+
11
13
  ```ts
12
- regularPolygon({ radius: 10, sides: 6, sizing: "face" });
14
+ regularPolygon({ radius: 10, sides: 6, sizing: "face" }).extrude({ height: 3 });
13
15
  ```
14
16
 
17
+
18
+
15
19
  ## Parameters
16
20
 
17
21
  <a id="options"></a>
@@ -36,10 +40,10 @@ regularPolygon({ radius: 10, sides: 6, sizing: "face" });
36
40
  - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
37
41
  - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
38
42
 
39
- ## Supported imports
43
+ ## Import
40
44
 
41
45
  ```ts
42
46
  import { regularPolygon } from "@metamesh/modeling";
43
47
  ```
44
48
 
45
- Package: `@metamesh/modeling@0.19.0`.
49
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,45 +2,51 @@
2
2
 
3
3
  Revolves a filled Section or explicit corresponding radial/Z contours around +Z, with caps for partial sweeps. Use `section.revolve(options)` in fluent sequences, or this function for generic profile inputs.
4
4
 
5
- **revolve**(`shape`: [`Section`](Section.md) \| [`CorrespondingProfile`](../geometry/CorrespondingProfile.md), `options?`: [`RevolveOptions`](../geometry/RevolveOptions.md)): [`Solid`](Solid.md)
5
+ **revolve**(`shape`: [`Section`](Section.md) \| [`CorrespondingProfile`](../geometry/CorrespondingProfile.md), `options?`: [`RevolveOptions`](RevolveOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
9
9
  ## Example: Revolve
10
10
 
11
+
12
+
11
13
  ```ts
12
- import { matchProfiles, revolve } from "@metamesh/modeling";
13
- import { rectangleProfile } from "@metamesh/modeling/geometry";
14
+ import { revolve } from "@metamesh/modeling";
15
+ import { matchProfiles, rectangleProfile } from "@metamesh/modeling/geometry";
14
16
 
15
17
  // Contour coordinates are [radius, Z].
16
18
  const [profile] = matchProfiles([rectangleProfile({ size: [4, 16], center: false })]);
17
19
  revolve(profile!, { degrees: 270 });
18
20
  ```
19
21
 
22
+
23
+
20
24
  ## Parameters
21
25
 
22
26
  <a id="shape"></a>
23
27
 
24
28
  **`shape`** · [`Section`](Section.md) \| [`CorrespondingProfile`](../geometry/CorrespondingProfile.md) · Required
25
29
 
30
+ Profile coordinates are [radius, Z] in millimetres.
31
+
26
32
 
27
33
 
28
34
  <a id="options"></a>
29
35
 
30
- **`options`** · [`RevolveOptions`](../geometry/RevolveOptions.md) · Optional
36
+ **`options`** · [`RevolveOptions`](RevolveOptions.md) · Optional
31
37
 
32
- - [`segments`](../geometry/RevolveOptions.md#segments) · `number` · Optional
38
+ - [`segments`](RevolveOptions.md#segments) · `number` · Optional
33
39
 
34
40
  Exact circumferential segment count from three through the configured safety limit.
35
41
 
36
42
  This local topology override takes precedence over [CircularPrimitiveOptions.resolution](../geometry/CircularPrimitiveOptions.md#resolution)
37
43
  and any active model-wide resolution policy.
38
44
 
39
- - [`resolution`](../geometry/RevolveOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
45
+ - [`resolution`](RevolveOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
40
46
 
41
47
  Operation-level physical tessellation policy over the active model-wide policy.
42
48
 
43
- - [`degrees`](../geometry/RevolveOptions.md#degrees) · `number` · Optional · Default: `360`
49
+ - [`degrees`](RevolveOptions.md#degrees) · `number` · Optional · Default: `360`
44
50
 
45
51
  Positive sweep in degrees, no greater than 360. Defaults to a full revolution;
46
52
  smaller sweeps form partial revolutions with end caps.
@@ -48,7 +54,7 @@ revolve(profile!, { degrees: 270 });
48
54
  revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
49
55
  while exact counts that imply fewer intervals reject. Pure mesh.revolve supports one interval.
50
56
 
51
- - [`limits`](../geometry/RevolveOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
57
+ - [`limits`](RevolveOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
52
58
 
53
59
  Explicit output and sampling allocation ceilings.
54
60
 
@@ -61,23 +67,23 @@ revolve(profile!, { degrees: 270 });
61
67
 
62
68
  ## Related APIs
63
69
 
64
- - [CorrespondingProfile](../geometry/CorrespondingProfile.md)
65
- - [RevolveOptions](../geometry/RevolveOptions.md)
70
+ - [RevolveOptions](RevolveOptions.md)
66
71
  - [Section](Section.md)
67
72
  - [Solid](Solid.md)
68
73
 
69
74
  ## Guides
70
75
 
71
76
  - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
77
+ - [Chamfer a twisted extrusion](../../guides/profiles-and-extrusion.md#chamfer-a-twisted-extrusion)
72
78
  - [Revolve a radial profile](../../guides/profiles-and-extrusion.md#revolve-a-radial-profile)
73
79
  - [Rotation-minimizing path sweep](../../guides/sweeps-and-lofts.md#rotation-minimizing-path-sweep)
74
80
  - [Matched-section loft](../../guides/sweeps-and-lofts.md#matched-section-loft)
75
81
  - [Choose a modeling path](../../guides/recipes.md#choose-a-technique)
76
82
 
77
- ## Supported imports
83
+ ## Import
78
84
 
79
85
  ```ts
80
86
  import { revolve } from "@metamesh/modeling";
81
87
  ```
82
88
 
83
- Package: `@metamesh/modeling@0.19.0`.
89
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,12 +2,14 @@
2
2
 
3
3
  Imports a bounded closed indexed mesh.
4
4
 
5
- **solidFromMesh**(`mesh`: [`TriangleMesh`](../geometry/TriangleMesh.md) \| [`ImmutableTriangleMesh`](../geometry/ImmutableTriangleMesh.md)): [`Solid`](Solid.md)
5
+ **solidFromMesh**(`mesh`: [`TriangleMesh`](../mesh/TriangleMesh.md) \| [`ImmutableTriangleMesh`](../mesh/ImmutableTriangleMesh.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
9
9
  ## Example: Mesh import
10
10
 
11
+
12
+
11
13
  ```ts
12
14
  import { solidFromMesh } from "@metamesh/modeling";
13
15
  import * as mesh from "@metamesh/modeling/geometry/mesh";
@@ -17,11 +19,15 @@ const plate = mesh.extrude(rectangleContour({ size: [20, 12] }), { height: 6 });
17
19
  solidFromMesh(plate);
18
20
  ```
19
21
 
22
+
23
+
20
24
  ## Parameters
21
25
 
22
26
  <a id="mesh"></a>
23
27
 
24
- **`mesh`** · [`TriangleMesh`](../geometry/TriangleMesh.md) \| [`ImmutableTriangleMesh`](../geometry/ImmutableTriangleMesh.md) · Required
28
+ **`mesh`** · [`TriangleMesh`](../mesh/TriangleMesh.md) \| [`ImmutableTriangleMesh`](../mesh/ImmutableTriangleMesh.md) · Required
29
+
30
+ Closed, oriented mesh in millimetres; ownership stays with the caller.
25
31
 
26
32
 
27
33
 
@@ -32,18 +38,16 @@ solidFromMesh(plate);
32
38
 
33
39
  ## Related APIs
34
40
 
35
- - [ImmutableTriangleMesh](../geometry/ImmutableTriangleMesh.md)
36
41
  - [Solid](Solid.md)
37
- - [TriangleMesh](../geometry/TriangleMesh.md)
38
42
 
39
43
  ## Guides
40
44
 
41
45
  - [Solid inspection](../../guides/resolution-and-inspection.md#solid-inspection)
42
46
 
43
- ## Supported imports
47
+ ## Import
44
48
 
45
49
  ```ts
46
50
  import { solidFromMesh } from "@metamesh/modeling";
47
51
  ```
48
52
 
49
- Package: `@metamesh/modeling@0.19.0`.
53
+ Package: `@metamesh/modeling@0.20.0`.