@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
@@ -4,7 +4,7 @@ Circumferential sampling and degree sweep shared by pure and filled revolution.
4
4
 
5
5
  ## Extends
6
6
 
7
- - [`CircularPrimitiveOptions`](CircularPrimitiveOptions.md)
7
+ - [`CircularPrimitiveOptions`](../geometry/CircularPrimitiveOptions.md)
8
8
 
9
9
  ## Properties
10
10
 
@@ -18,12 +18,12 @@ Circumferential sampling and degree sweep shared by pure and filled revolution.
18
18
 
19
19
  Exact circumferential segment count from three through the configured safety limit.
20
20
 
21
- This local topology override takes precedence over [CircularPrimitiveOptions.resolution](CircularPrimitiveOptions.md#resolution)
21
+ This local topology override takes precedence over [CircularPrimitiveOptions.resolution](../geometry/CircularPrimitiveOptions.md#resolution)
22
22
  and any active model-wide resolution policy.
23
23
 
24
24
  #### Inherited from
25
25
 
26
- [`CircularPrimitiveOptions`](CircularPrimitiveOptions.md).[`segments`](CircularPrimitiveOptions.md#segments)
26
+ [`CircularPrimitiveOptions`](../geometry/CircularPrimitiveOptions.md).[`segments`](../geometry/CircularPrimitiveOptions.md#segments)
27
27
 
28
28
  ***
29
29
 
@@ -31,7 +31,7 @@ and any active model-wide resolution policy.
31
31
 
32
32
 
33
33
 
34
- `readonly` `optional` **resolution?**: [`GeometryResolution`](GeometryResolution.md)
34
+ `readonly` `optional` **resolution?**: [`GeometryResolution`](../geometry/GeometryResolution.md)
35
35
 
36
36
 
37
37
 
@@ -39,7 +39,7 @@ Operation-level physical tessellation policy over the active model-wide policy.
39
39
 
40
40
  #### Inherited from
41
41
 
42
- [`CircularPrimitiveOptions`](CircularPrimitiveOptions.md).[`resolution`](CircularPrimitiveOptions.md#resolution)
42
+ [`CircularPrimitiveOptions`](../geometry/CircularPrimitiveOptions.md).[`resolution`](../geometry/CircularPrimitiveOptions.md#resolution)
43
43
 
44
44
  ***
45
45
 
@@ -67,7 +67,7 @@ while exact counts that imply fewer intervals reject. Pure mesh.revolve supports
67
67
 
68
68
 
69
69
 
70
- `readonly` `optional` **limits?**: `Partial`\<[`ModelingLimits`](ModelingLimits.md)\>
70
+ `readonly` `optional` **limits?**: `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\>
71
71
 
72
72
 
73
73
 
@@ -75,31 +75,22 @@ Explicit output and sampling allocation ceilings.
75
75
 
76
76
  #### Overrides
77
77
 
78
- [`CircularPrimitiveOptions`](CircularPrimitiveOptions.md).[`limits`](CircularPrimitiveOptions.md#limits)
78
+ [`CircularPrimitiveOptions`](../geometry/CircularPrimitiveOptions.md).[`limits`](../geometry/CircularPrimitiveOptions.md#limits)
79
79
 
80
80
 
81
- ## Related APIs
82
-
83
- - [CircularPrimitiveOptions](CircularPrimitiveOptions.md)
84
- - [GeometryResolution](GeometryResolution.md)
85
- - [ModelingLimits](ModelingLimits.md)
86
-
87
81
  ## Guides
88
82
 
89
- - [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
83
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
84
+ - [Chamfer a twisted extrusion](../../guides/profiles-and-extrusion.md#chamfer-a-twisted-extrusion)
85
+ - [Revolve a radial profile](../../guides/profiles-and-extrusion.md#revolve-a-radial-profile)
86
+ - [Rotation-minimizing path sweep](../../guides/sweeps-and-lofts.md#rotation-minimizing-path-sweep)
87
+ - [Matched-section loft](../../guides/sweeps-and-lofts.md#matched-section-loft)
88
+ - [Choose a modeling path](../../guides/recipes.md#choose-a-technique)
90
89
 
91
- ## Supported imports
90
+ ## Import
92
91
 
93
92
  ```ts
94
93
  import type { RevolveOptions } from "@metamesh/modeling";
95
94
  ```
96
95
 
97
- ```ts
98
- import type { RevolveOptions } from "@metamesh/modeling/geometry";
99
- ```
100
-
101
- ```ts
102
- import * as mesh from "@metamesh/modeling/geometry/mesh";
103
- ```
104
-
105
- Package: `@metamesh/modeling@0.19.0`.
96
+ Package: `@metamesh/modeling@0.20.0`.
@@ -11,13 +11,18 @@ Explicit resolution settings are captured; unspecified settings inherit the eval
11
11
 
12
12
  ## Example: Extrude an outline with a border
13
13
 
14
+
15
+
14
16
  ```ts
15
17
  const body = rectangle({ size: [20, 12] })
16
18
  .subtract(rectangle({ size: [16, 8] }))
17
19
  .offset(0.5)
18
20
  .extrude({ height: 4 });
21
+ body;
19
22
  ```
20
23
 
24
+
25
+
21
26
  ## Methods
22
27
 
23
28
  ### translate()
@@ -122,7 +127,7 @@ Uniform or per-axis nonsingular scaling; negative factors reflect geometry.
122
127
 
123
128
 
124
129
 
125
- Reflection across an origin line/plane.
130
+ Reflects across a line through the XY origin.
126
131
 
127
132
  #### Parameters
128
133
 
@@ -130,6 +135,8 @@ Reflection across an origin line/plane.
130
135
 
131
136
  **`normal`** · [`Vector2Input`](../geometry/Vector2Input.md) · Required
132
137
 
138
+ Nonzero XY line normal; length has no effect.
139
+
133
140
 
134
141
 
135
142
  #### Returns
@@ -318,6 +325,8 @@ Native millimetre offset preserving holes.
318
325
 
319
326
  **`distance`** · `number` · Required
320
327
 
328
+ Millimetres: positive expands material; negative erodes it.
329
+
321
330
 
322
331
 
323
332
  <a id="options-2"></a>
@@ -352,7 +361,7 @@ Native millimetre offset preserving holes.
352
361
 
353
362
 
354
363
 
355
- **extrude**(`options`: [`ExtrudeOptions`](../geometry/ExtrudeOptions.md)): [`Solid`](Solid.md)
364
+ **extrude**(`options`: [`ExtrudeOptions`](ExtrudeOptions.md)): [`Solid`](Solid.md)
356
365
 
357
366
 
358
367
 
@@ -362,39 +371,39 @@ Extrudes along +Z with degree twist and top scaling.
362
371
 
363
372
  <a id="options-3"></a>
364
373
 
365
- **`options`** · [`ExtrudeOptions`](../geometry/ExtrudeOptions.md) · Required
374
+ **`options`** · [`ExtrudeOptions`](ExtrudeOptions.md) · Required
366
375
 
367
- - [`height`](../geometry/ExtrudeOptions.md#height) · `number` · Required
376
+ - [`height`](ExtrudeOptions.md#height) · `number` · Required
368
377
 
369
378
  Positive extrusion height in millimetres.
370
379
 
371
- - [`center`](../geometry/ExtrudeOptions.md#center) · `boolean` · Optional
380
+ - [`slices`](ExtrudeOptions.md#slices) · `number` · Optional
372
381
 
373
- Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false.
382
+ Positive longitudinal interval count; n slices create n + 1 profile layers. Overrides ordinary extrusion's physical sampling.
374
383
 
375
- - [`ends`](../geometry/ExtrudeOptions.md#ends) · [`EndTreatments`](../geometry/EndTreatments.md) · Optional
384
+ - [`limits`](ExtrudeOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
376
385
 
377
- Independent inward treatments on every material rim of a straight, topology-preserving extrusion.
386
+ Explicit output and sampling allocation ceilings.
378
387
 
379
- - [`divisions`](../geometry/ExtrudeOptions.md#divisions) · `number` · Optional
388
+ - [`resolution`](ExtrudeOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
380
389
 
381
- Exact number of intermediate profiles, nonnegative; overrides physical sampling.
390
+ Operation-level physical policy over the nearest model scope.
382
391
 
383
- - [`limits`](../geometry/ExtrudeOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
392
+ - [`scale`](ExtrudeOptions.md#scale) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) · Optional
384
393
 
385
- Explicit output and sampling allocation ceilings.
394
+ Final profile-local uniform or XY scale, interpolated from one before twisting. Both components must be positive or both zero for an apex of one simple boundary. Defaults to one.
386
395
 
387
- - [`resolution`](../geometry/ExtrudeOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
396
+ - [`twist`](ExtrudeOptions.md#twist) · `number` · Optional
388
397
 
389
- Operation-level physical policy over the nearest model scope.
398
+ Finite rotation of the top profile about +Z, in degrees; defaults to zero.
390
399
 
391
- - [`scaleTop`](../geometry/ExtrudeOptions.md#scaletop) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) · Optional
400
+ - [`ends`](ExtrudeOptions.md#ends) · [`EndTreatments`](EndTreatments.md) · Optional
392
401
 
393
- Finite uniform or XY scale of the top profile; defaults to one.
402
+ Independent inward treatments on every material rim. Twisted extrusions admit chamfers with cap and normal-section wall setbacks; other treatments require zero twist. Enabled treatments require unit scale and preserve boundary topology. The base slices grid is retained, with additional treatment/refinement rings where necessary.
394
403
 
395
- - [`twist`](../geometry/ExtrudeOptions.md#twist) · `number` · Optional
404
+ - [`center`](ExtrudeOptions.md#center) · `boolean` · Optional
396
405
 
397
- Finite rotation of the top profile about +Z, in degrees; defaults to zero.
406
+ Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false.
398
407
 
399
408
 
400
409
 
@@ -408,7 +417,7 @@ Extrudes along +Z with degree twist and top scaling.
408
417
 
409
418
 
410
419
 
411
- **revolve**(`options?`: [`RevolveOptions`](../geometry/RevolveOptions.md)): [`Solid`](Solid.md)
420
+ **revolve**(`options?`: [`RevolveOptions`](RevolveOptions.md)): [`Solid`](Solid.md)
412
421
 
413
422
 
414
423
 
@@ -418,20 +427,20 @@ Revolves a filled radial/Z shape around +Z, with caps for partial sweeps.
418
427
 
419
428
  <a id="options-4"></a>
420
429
 
421
- **`options`** · [`RevolveOptions`](../geometry/RevolveOptions.md) · Optional
430
+ **`options`** · [`RevolveOptions`](RevolveOptions.md) · Optional
422
431
 
423
- - [`segments`](../geometry/RevolveOptions.md#segments) · `number` · Optional
432
+ - [`segments`](RevolveOptions.md#segments) · `number` · Optional
424
433
 
425
434
  Exact circumferential segment count from three through the configured safety limit.
426
435
 
427
436
  This local topology override takes precedence over [CircularPrimitiveOptions.resolution](../geometry/CircularPrimitiveOptions.md#resolution)
428
437
  and any active model-wide resolution policy.
429
438
 
430
- - [`resolution`](../geometry/RevolveOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
439
+ - [`resolution`](RevolveOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
431
440
 
432
441
  Operation-level physical tessellation policy over the active model-wide policy.
433
442
 
434
- - [`degrees`](../geometry/RevolveOptions.md#degrees) · `number` · Optional · Default: `360`
443
+ - [`degrees`](RevolveOptions.md#degrees) · `number` · Optional · Default: `360`
435
444
 
436
445
  Positive sweep in degrees, no greater than 360. Defaults to a full revolution;
437
446
  smaller sweeps form partial revolutions with end caps.
@@ -439,7 +448,7 @@ Revolves a filled radial/Z shape around +Z, with caps for partial sweeps.
439
448
  revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
440
449
  while exact counts that imply fewer intervals reject. Pure mesh.revolve supports one interval.
441
450
 
442
- - [`limits`](../geometry/RevolveOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
451
+ - [`limits`](RevolveOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
443
452
 
444
453
  Explicit output and sampling allocation ceilings.
445
454
 
@@ -453,61 +462,119 @@ Revolves a filled radial/Z shape around +Z, with caps for partial sweeps.
453
462
 
454
463
  ### sweep()
455
464
 
465
+ #### Call Signature
456
466
 
457
467
 
458
- **sweep**(`path`: [`Path3Input`](../geometry/Path3Input.md), `options?`: [`SweepOptions`](../geometry/SweepOptions.md)): [`Solid`](Solid.md)
459
468
 
469
+ **sweep**(`path`: [`Path3Input`](../geometry/Path3Input.md), `options?`: [`SweepOptions`](SweepOptions.md)): [`Solid`](Solid.md)
460
470
 
461
471
 
462
- Sweeps this filled section using the selected frame policy and degree twist.
463
472
 
464
- #### Parameters
473
+ Sweeps this filled section along a path or through explicit affine placements.
474
+
475
+ ##### Parameters
465
476
 
466
477
  <a id="path"></a>
467
478
 
468
479
  **`path`** · [`Path3Input`](../geometry/Path3Input.md) · Required
469
480
 
481
+ XYZ path in millimetres.
482
+
470
483
 
471
484
 
472
485
  <a id="options-5"></a>
473
486
 
474
- **`options`** · [`SweepOptions`](../geometry/SweepOptions.md) · Optional
487
+ **`options`** · [`SweepOptions`](SweepOptions.md) · Optional
475
488
 
476
- - [`closed`](../geometry/SweepOptions.md#closed) · `boolean` · Optional
489
+ - [`closed`](SweepOptions.md#closed) · `boolean` · Optional
477
490
 
478
491
  Raw point closure defaults to false; a Path3 supplies its closure and rejects conflicts.
479
492
 
480
- - [`limits`](../geometry/SweepOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
493
+ - [`limits`](SweepOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
481
494
 
482
495
  Explicit output and sampling allocation ceilings.
483
496
 
484
- - [`orientation`](../geometry/SweepOptions.md#orientation) · [`SweepOrientation`](../geometry/SweepOrientation.md) · Optional
497
+ - [`orientation`](SweepOptions.md#orientation) · [`SweepOrientation`](SweepOrientation.md) · Optional
485
498
 
486
- Explicit frame policy; default transport minimizes rotations, initially projecting +X then +Y then +Z.
499
+ Default transport minimizes rotations, initially projecting +X then +Y then +Z.
487
500
 
488
- - [`resolution`](../geometry/SweepOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
501
+ - [`resolution`](SweepOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
489
502
 
490
- Physical sampling of nonzero twist; inserted stations retain authored station controls.
503
+ Physical sampling of twist and varying scale, plus optional segment-length limits. Inserted stations retain authored controls.
491
504
 
492
- - [`twist`](../geometry/SweepOptions.md#twist) · `number` · Optional
505
+ - [`twist`](SweepOptions.md#twist) · `number` · Optional
493
506
 
494
- Total additional profile rotation in degrees, with progression selected by twistBy.
507
+ Total additional profile rotation in degrees; compatible closed boundaries are aligned automatically.
495
508
 
496
- - [`twistBy`](../geometry/SweepOptions.md#twistby) · `"length"` \| `"stations"` · Optional
509
+ - [`twistBy`](SweepOptions.md#twistby) · `"length"` \| `"stations"` · Optional
497
510
 
498
511
  Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap.
499
512
 
500
- - [`scale`](../geometry/SweepOptions.md#scale) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) \| readonly [`Vector2Input`](../geometry/Vector2Input.md)[] · Optional
513
+ - [`scale`](SweepOptions.md#scale) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) \| readonly [`Vector2Input`](../geometry/Vector2Input.md)[] · Optional
501
514
 
502
- Positive uniform/XY scale, or one XY pair per path station. Defaults to one.
515
+ Positive final uniform/XY scale on open paths, interpolated from one by path length. Closed paths use a uniform scale. Explicit XY pairs set each original station; omitted is one.
503
516
 
504
- - [`seamProfileOffset`](../geometry/SweepOptions.md#seamprofileoffset) · `number` · Optional
505
517
 
506
- Corresponding point-index advance at a rotationally equivalent closed seam.
507
518
 
519
+ ##### Returns
508
520
 
521
+ [`Solid`](Solid.md)
509
522
 
510
- #### Returns
523
+ #### Call Signature
524
+
525
+
526
+
527
+ **sweep**(`transforms`: readonly [`Transform3Input`](../geometry/Transform3Input.md)[], `options?`: [`SweepTransformOptions`](SweepTransformOptions.md)): [`Solid`](Solid.md)
528
+
529
+
530
+
531
+ Connects this section through exactly the supplied affine placements.
532
+
533
+ ##### Parameters
534
+
535
+ <a id="transforms"></a>
536
+
537
+ **`transforms`** · readonly [`Transform3Input`](../geometry/Transform3Input.md)[] · Required
538
+
539
+ Ordered local-to-model placements.
540
+
541
+
542
+
543
+ <a id="options-6"></a>
544
+
545
+ **`options`** · [`SweepTransformOptions`](SweepTransformOptions.md) · Optional
546
+
547
+ - [`closed`](SweepTransformOptions.md#closed) · `boolean` · Optional
548
+
549
+ Connect the last supplied station to the first without caps. Defaults to false.
550
+
551
+ - [`limits`](SweepTransformOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
552
+
553
+ Explicit output and station allocation ceilings.
554
+
555
+ - [`orientation`](SweepTransformOptions.md#orientation) · `undefined` · Optional
556
+
557
+ Encoded by the explicit transforms.
558
+
559
+ - [`resolution`](SweepTransformOptions.md#resolution) · `undefined` · Optional
560
+
561
+ Explicit stations are never refined.
562
+
563
+ - [`twist`](SweepTransformOptions.md#twist) · `undefined` · Optional
564
+
565
+ Encoded by the explicit transforms.
566
+
567
+ - [`twistBy`](SweepTransformOptions.md#twistby) · `undefined` · Optional
568
+
569
+ Encoded by the explicit transforms.
570
+
571
+ - [`scale`](SweepTransformOptions.md#scale) · `undefined` · Optional
572
+
573
+ Encoded by the explicit transforms.
574
+
575
+
576
+
577
+ ##### Returns
511
578
 
512
579
  [`Solid`](Solid.md)
513
580
 
@@ -589,18 +656,13 @@ Reads a copied immutable named anchor during active synchronous model execution.
589
656
 
590
657
  ## Related APIs
591
658
 
592
- - [Anchor3](../geometry/Anchor3-type.md)
593
- - [ExtrudeOptions](../geometry/ExtrudeOptions.md)
594
- - [Path3Input](../geometry/Path3Input.md)
595
- - [Pivot2Options](../geometry/Pivot2Options.md)
596
- - [RegionData](../geometry/RegionData.md)
597
- - [RevolveOptions](../geometry/RevolveOptions.md)
659
+ - [ExtrudeOptions](ExtrudeOptions.md)
660
+ - [RevolveOptions](RevolveOptions.md)
598
661
  - [SectionInspection](SectionInspection.md)
599
662
  - [SectionOffsetOptions](SectionOffsetOptions.md)
600
663
  - [Solid](Solid.md)
601
- - [SweepOptions](../geometry/SweepOptions.md)
602
- - [Transform2Input](../geometry/Transform2Input.md)
603
- - [Vector2Input](../geometry/Vector2Input.md)
664
+ - [SweepOptions](SweepOptions.md)
665
+ - [SweepTransformOptions](SweepTransformOptions.md)
604
666
 
605
667
  ## Guides
606
668
 
@@ -608,10 +670,10 @@ Reads a copied immutable named anchor during active synchronous model execution.
608
670
  - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
609
671
  - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
610
672
 
611
- ## Supported imports
673
+ ## Import
612
674
 
613
675
  ```ts
614
676
  import type { Section } from "@metamesh/modeling";
615
677
  ```
616
678
 
617
- Package: `@metamesh/modeling@0.19.0`.
679
+ Package: `@metamesh/modeling@0.20.0`.
@@ -62,7 +62,6 @@ Section input excludes point input.
62
62
  ## Related APIs
63
63
 
64
64
  - [Section](Section.md)
65
- - [Vector2Input](../geometry/Vector2Input.md)
66
65
 
67
66
  ## Guides
68
67
 
@@ -70,10 +69,10 @@ Section input excludes point input.
70
69
  - [Primitive booleans and repeated placement](../../guides/transforms-and-placement.md#primitive-booleans-and-repeated-placement)
71
70
  - [Join an independently modeled feature](../../guides/solid-joins.md#join-an-independently-modeled-feature)
72
71
 
73
- ## Supported imports
72
+ ## Import
74
73
 
75
74
  ```ts
76
75
  import type { SectionHullOptions } from "@metamesh/modeling";
77
76
  ```
78
77
 
79
- Package: `@metamesh/modeling@0.19.0`.
78
+ Package: `@metamesh/modeling@0.20.0`.
@@ -75,18 +75,14 @@ Number of disconnected filled section components.
75
75
  Number of native section vertices.
76
76
 
77
77
 
78
- ## Related APIs
79
-
80
- - [Bounds2Data](../geometry/Bounds2Data.md)
81
-
82
78
  ## Guides
83
79
 
84
80
  - [Solid inspection](../../guides/resolution-and-inspection.md#solid-inspection)
85
81
 
86
- ## Supported imports
82
+ ## Import
87
83
 
88
84
  ```ts
89
85
  import type { SectionInspection } from "@metamesh/modeling";
90
86
  ```
91
87
 
92
- Package: `@metamesh/modeling@0.19.0`.
88
+ Package: `@metamesh/modeling@0.20.0`.
@@ -13,10 +13,10 @@ Clipper2 join styles accepted by robust region offsets.
13
13
  - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
14
14
  - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
15
15
 
16
- ## Supported imports
16
+ ## Import
17
17
 
18
18
  ```ts
19
19
  import type { SectionOffsetJoin } from "@metamesh/modeling";
20
20
  ```
21
21
 
22
- Package: `@metamesh/modeling@0.19.0`.
22
+ Package: `@metamesh/modeling@0.20.0`.
@@ -53,7 +53,6 @@ Operation-level physical tessellation policy over the active model-wide policy.
53
53
 
54
54
  ## Related APIs
55
55
 
56
- - [GeometryResolution](../geometry/GeometryResolution.md)
57
56
  - [SectionOffsetJoin](SectionOffsetJoin.md)
58
57
 
59
58
  ## Guides
@@ -62,10 +61,10 @@ Operation-level physical tessellation policy over the active model-wide policy.
62
61
  - [SVG sections: fills and strokes are different inputs](../../guides/svg-and-text.md#svg-sections-fills-and-strokes-are-different-inputs)
63
62
  - [Text and font variability](../../guides/svg-and-text.md#text-and-font-variability)
64
63
 
65
- ## Supported imports
64
+ ## Import
66
65
 
67
66
  ```ts
68
67
  import type { SectionOffsetOptions } from "@metamesh/modeling";
69
68
  ```
70
69
 
71
- Package: `@metamesh/modeling@0.19.0`.
70
+ Package: `@metamesh/modeling@0.20.0`.
@@ -11,12 +11,17 @@ A no-op may reuse the receiver; final part placement belongs in `part` options.
11
11
 
12
12
  ## Example: Shape a body with a through bore
13
13
 
14
+
15
+
14
16
  ```ts
15
17
  const body = box({ size: [30, 20, 6] })
16
18
  .subtract(cylinder({ height: 8, radius: 3 }))
17
19
  .rotate([0, 0, 45]);
20
+ body;
18
21
  ```
19
22
 
23
+
24
+
20
25
  ## Methods
21
26
 
22
27
  ### translate()
@@ -121,7 +126,7 @@ Uniform or per-axis nonsingular scaling; negative factors reflect geometry.
121
126
 
122
127
 
123
128
 
124
- Reflection across an origin line/plane.
129
+ Reflects across a plane through the origin.
125
130
 
126
131
  #### Parameters
127
132
 
@@ -129,6 +134,8 @@ Reflection across an origin line/plane.
129
134
 
130
135
  **`normal`** · [`Vector3Input`](../geometry/Vector3Input.md) · Required
131
136
 
137
+ Nonzero XYZ plane normal; length has no effect.
138
+
132
139
 
133
140
 
134
141
  #### Returns
@@ -145,7 +152,7 @@ Reflection across an origin line/plane.
145
152
 
146
153
 
147
154
 
148
- Applies a reusable XYZ placement or canonical row-major matrix.
155
+ Applies an XYZ frame, transform value, or canonical row-major affine matrix.
149
156
 
150
157
  #### Parameters
151
158
 
@@ -165,7 +172,7 @@ Applies a reusable XYZ placement or canonical row-major matrix.
165
172
 
166
173
 
167
174
 
168
- **toMesh**(): [`TriangleMesh`](../geometry/TriangleMesh.md)
175
+ **toMesh**(): [`TriangleMesh`](../mesh/TriangleMesh.md)
169
176
 
170
177
 
171
178
 
@@ -174,7 +181,7 @@ Requires an active synchronous model execution; the returned TriangleMesh is cal
174
181
 
175
182
  #### Returns
176
183
 
177
- [`TriangleMesh`](../geometry/TriangleMesh.md)
184
+ [`TriangleMesh`](../mesh/TriangleMesh.md)
178
185
 
179
186
  ***
180
187
 
@@ -221,6 +228,8 @@ The result has no inherited anchors. This is not a rolling-ball fillet.
221
228
 
222
229
  **`feature`** · `Solid` · Required
223
230
 
231
+ Positioned feature that owns the source datum.
232
+
224
233
 
225
234
 
226
235
  <a id="options-2"></a>
@@ -370,12 +379,16 @@ Places an explicit or named source anchor against an explicit target anchor.
370
379
 
371
380
  **`source`** · `string` \| [`Anchor3`](../geometry/Anchor3-type.md) · Required
372
381
 
382
+ Anchor on this solid, supplied directly or by name.
383
+
373
384
 
374
385
 
375
386
  <a id="target"></a>
376
387
 
377
388
  **`target`** · [`Anchor3`](../geometry/Anchor3-type.md) · Required
378
389
 
390
+ Anchor in shared modeling coordinates.
391
+
379
392
 
380
393
 
381
394
  <a id="options-3"></a>
@@ -589,12 +602,16 @@ Requires active synchronous model execution.
589
602
 
590
603
  **`origin`** · [`Vector3Input`](../geometry/Vector3Input.md) · Required
591
604
 
605
+ Segment start in modeling coordinates.
606
+
592
607
 
593
608
 
594
609
  <a id="endpoint"></a>
595
610
 
596
611
  **`endpoint`** · [`Vector3Input`](../geometry/Vector3Input.md) · Required
597
612
 
613
+ Segment end in modeling coordinates.
614
+
598
615
 
599
616
 
600
617
  #### Returns
@@ -655,28 +672,23 @@ readonly \[`Solid`, `Solid`\]
655
672
 
656
673
  ## Related APIs
657
674
 
658
- - [Anchor3](../geometry/Anchor3-type.md)
659
- - [AttachOptions](../geometry/AttachOptions.md)
660
675
  - [JoinOptions](JoinOptions.md)
661
- - [Pivot3Options](../geometry/Pivot3Options.md)
662
676
  - [PlaneOptions](PlaneOptions.md)
663
677
  - [Section](Section.md)
664
678
  - [SolidInspection](SolidInspection.md)
665
679
  - [SolidSegmentHit](SolidSegmentHit.md)
666
- - [Transform3Input](../geometry/Transform3Input.md)
667
- - [TriangleMesh](../geometry/TriangleMesh.md)
668
- - [Vector3Input](../geometry/Vector3Input.md)
669
680
 
670
681
  ## Guides
671
682
 
672
683
  - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
673
684
  - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
674
685
  - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
686
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
675
687
 
676
- ## Supported imports
688
+ ## Import
677
689
 
678
690
  ```ts
679
691
  import type { Solid } from "@metamesh/modeling";
680
692
  ```
681
693
 
682
- Package: `@metamesh/modeling@0.19.0`.
694
+ Package: `@metamesh/modeling@0.20.0`.
@@ -75,18 +75,14 @@ Total native surface area in square millimetres.
75
75
  Effective native geometric tolerance in millimetres.
76
76
 
77
77
 
78
- ## Related APIs
79
-
80
- - [Bounds3Data](../geometry/Bounds3Data.md)
81
-
82
78
  ## Guides
83
79
 
84
80
  - [Solid inspection](../../guides/resolution-and-inspection.md#solid-inspection)
85
81
 
86
- ## Supported imports
82
+ ## Import
87
83
 
88
84
  ```ts
89
85
  import type { SolidInspection } from "@metamesh/modeling";
90
86
  ```
91
87
 
92
- Package: `@metamesh/modeling@0.19.0`.
88
+ Package: `@metamesh/modeling@0.20.0`.
@@ -51,18 +51,14 @@ Intersection position in millimetres.
51
51
  Outward unit surface normal at the intersection.
52
52
 
53
53
 
54
- ## Related APIs
55
-
56
- - [Vector3Data](../geometry/Vector3Data.md)
57
-
58
54
  ## Guides
59
55
 
60
56
  - [Solid inspection](../../guides/resolution-and-inspection.md#solid-inspection)
61
57
 
62
- ## Supported imports
58
+ ## Import
63
59
 
64
60
  ```ts
65
61
  import type { SolidSegmentHit } from "@metamesh/modeling";
66
62
  ```
67
63
 
68
- Package: `@metamesh/modeling@0.19.0`.
64
+ Package: `@metamesh/modeling@0.20.0`.