@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
@@ -1,8 +1,12 @@
1
1
  # sweep
2
2
 
3
- Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam.
3
+ Sweeps one ordered point loop along a path or explicit affine placements. Path mode computes orientation and deformation, automatically matching compatible closed seams. Transform mode connects only the supplied stations, preserving profile indices without refinement.
4
4
 
5
- **sweep**(`profile`: [`Path2Input`](../geometry/Path2Input.md), `path`: [`Path3Input`](../geometry/Path3Input.md), `options?`: [`SweepOptions`](../geometry/SweepOptions.md)): [`TriangleMesh`](../geometry/TriangleMesh.md)
5
+ ## Call Signature
6
+
7
+
8
+
9
+ **sweep**(`profile`: [`Path2Input`](../geometry/Path2Input.md), `path`: [`Path3Input`](../geometry/Path3Input.md), `options?`: [`SweepOptions`](../model/SweepOptions.md)): [`TriangleMesh`](TriangleMesh.md)
6
10
 
7
11
 
8
12
 
@@ -15,78 +19,145 @@ mesh.sweep(profile, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
15
19
  });
16
20
  ```
17
21
 
18
- ## Parameters
22
+ Sweeps one ordered point loop along a path or explicit affine placements.
23
+ Path mode computes orientation and deformation, automatically matching compatible closed seams.
24
+ Transform mode connects only the supplied stations, preserving profile indices without refinement.
25
+
26
+ ### Parameters
19
27
 
20
28
  <a id="profile"></a>
21
29
 
22
30
  **`profile`** · [`Path2Input`](../geometry/Path2Input.md) · Required
23
31
 
32
+ Closed XY path or simple contour, in millimetres.
33
+
24
34
 
25
35
 
26
36
  <a id="path"></a>
27
37
 
28
38
  **`path`** · [`Path3Input`](../geometry/Path3Input.md) · Required
29
39
 
40
+ Ordered XYZ path in millimetres; a Path3 supplies its closure.
41
+
30
42
 
31
43
 
32
44
  <a id="options"></a>
33
45
 
34
- **`options`** · [`SweepOptions`](../geometry/SweepOptions.md) · Optional
46
+ **`options`** · [`SweepOptions`](../model/SweepOptions.md) · Optional
35
47
 
36
- - [`closed`](../geometry/SweepOptions.md#closed) · `boolean` · Optional
48
+ - [`closed`](../model/SweepOptions.md#closed) · `boolean` · Optional
37
49
 
38
50
  Raw point closure defaults to false; a Path3 supplies its closure and rejects conflicts.
39
51
 
40
- - [`limits`](../geometry/SweepOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
52
+ - [`limits`](../model/SweepOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
41
53
 
42
54
  Explicit output and sampling allocation ceilings.
43
55
 
44
- - [`orientation`](../geometry/SweepOptions.md#orientation) · [`SweepOrientation`](../geometry/SweepOrientation.md) · Optional
56
+ - [`orientation`](../model/SweepOptions.md#orientation) · [`SweepOrientation`](../model/SweepOrientation.md) · Optional
45
57
 
46
- Explicit frame policy; default transport minimizes rotations, initially projecting +X then +Y then +Z.
58
+ Default transport minimizes rotations, initially projecting +X then +Y then +Z.
47
59
 
48
- - [`resolution`](../geometry/SweepOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
60
+ - [`resolution`](../model/SweepOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
49
61
 
50
- Physical sampling of nonzero twist; inserted stations retain authored station controls.
62
+ Physical sampling of twist and varying scale, plus optional segment-length limits. Inserted stations retain authored controls.
51
63
 
52
- - [`twist`](../geometry/SweepOptions.md#twist) · `number` · Optional
64
+ - [`twist`](../model/SweepOptions.md#twist) · `number` · Optional
53
65
 
54
- Total additional profile rotation in degrees, with progression selected by twistBy.
66
+ Total additional profile rotation in degrees; compatible closed boundaries are aligned automatically.
55
67
 
56
- - [`twistBy`](../geometry/SweepOptions.md#twistby) · `"length"` \| `"stations"` · Optional
68
+ - [`twistBy`](../model/SweepOptions.md#twistby) · `"length"` \| `"stations"` · Optional
57
69
 
58
70
  Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap.
59
71
 
60
- - [`scale`](../geometry/SweepOptions.md#scale) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) \| readonly [`Vector2Input`](../geometry/Vector2Input.md)[] · Optional
72
+ - [`scale`](../model/SweepOptions.md#scale) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) \| readonly [`Vector2Input`](../geometry/Vector2Input.md)[] · Optional
73
+
74
+ 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.
75
+
76
+
77
+
78
+ ### Returns
79
+
80
+ [`TriangleMesh`](TriangleMesh.md)
81
+
82
+ ## Call Signature
83
+
84
+
85
+
86
+ **sweep**(`profile`: [`Path2Input`](../geometry/Path2Input.md), `transforms`: readonly [`Transform3Input`](../geometry/Transform3Input.md)[], `options?`: [`SweepTransformOptions`](../model/SweepTransformOptions.md)): [`TriangleMesh`](TriangleMesh.md)
87
+
88
+
89
+
90
+ Connects one point loop through exactly the supplied affine placements.
91
+
92
+ ### Parameters
93
+
94
+ <a id="profile-1"></a>
95
+
96
+ **`profile`** · [`Path2Input`](../geometry/Path2Input.md) · Required
97
+
98
+ Closed XY path or simple contour, in millimetres.
99
+
100
+
101
+
102
+ <a id="transforms"></a>
103
+
104
+ **`transforms`** · readonly [`Transform3Input`](../geometry/Transform3Input.md)[] · Required
105
+
106
+ Affine placements in connection order; at least two when open, three when closed.
107
+
108
+
109
+
110
+ <a id="options-1"></a>
111
+
112
+ **`options`** · [`SweepTransformOptions`](../model/SweepTransformOptions.md) · Optional
113
+
114
+ - [`closed`](../model/SweepTransformOptions.md#closed) · `boolean` · Optional
115
+
116
+ Connect the last supplied station to the first without caps. Defaults to false.
117
+
118
+ - [`limits`](../model/SweepTransformOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
119
+
120
+ Explicit output and station allocation ceilings.
121
+
122
+ - [`orientation`](../model/SweepTransformOptions.md#orientation) · `undefined` · Optional
123
+
124
+ Encoded by the explicit transforms.
125
+
126
+ - [`resolution`](../model/SweepTransformOptions.md#resolution) · `undefined` · Optional
127
+
128
+ Explicit stations are never refined.
129
+
130
+ - [`twist`](../model/SweepTransformOptions.md#twist) · `undefined` · Optional
131
+
132
+ Encoded by the explicit transforms.
133
+
134
+ - [`twistBy`](../model/SweepTransformOptions.md#twistby) · `undefined` · Optional
61
135
 
62
- Positive uniform/XY scale, or one XY pair per path station. Defaults to one.
136
+ Encoded by the explicit transforms.
63
137
 
64
- - [`seamProfileOffset`](../geometry/SweepOptions.md#seamprofileoffset) · `number` · Optional
138
+ - [`scale`](../model/SweepTransformOptions.md#scale) · `undefined` · Optional
65
139
 
66
- Corresponding point-index advance at a rotationally equivalent closed seam.
140
+ Encoded by the explicit transforms.
67
141
 
68
142
 
69
143
 
70
- ## Returns
144
+ ### Returns
71
145
 
72
- [`TriangleMesh`](../geometry/TriangleMesh.md)
146
+ [`TriangleMesh`](TriangleMesh.md)
73
147
 
74
148
 
75
149
  ## Related APIs
76
150
 
77
- - [Path2Input](../geometry/Path2Input.md)
78
- - [Path3Input](../geometry/Path3Input.md)
79
- - [SweepOptions](../geometry/SweepOptions.md)
80
- - [TriangleMesh](../geometry/TriangleMesh.md)
151
+ - [TriangleMesh](TriangleMesh.md)
81
152
 
82
153
  ## Guides
83
154
 
84
155
  - [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
85
156
 
86
- ## Supported imports
157
+ ## Import
87
158
 
88
159
  ```ts
89
160
  import * as mesh from "@metamesh/modeling/geometry/mesh";
90
161
  ```
91
162
 
92
- Package: `@metamesh/modeling@0.19.0`.
163
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Builds closed thread-ridge components with every profile locked to the shaft's radial/axial frame. The mesh is intended for union with its minor-envelope cylinder and never owns WASM objects.
4
4
 
5
- **threadRidge**(`options`: [`ThreadRidgeOptions`](../geometry/ThreadRidgeOptions.md)): [`TriangleMesh`](../geometry/TriangleMesh.md)
5
+ **threadRidge**(`options`: [`ThreadRidgeOptions`](../mechanical/ThreadRidgeOptions.md)): [`TriangleMesh`](TriangleMesh.md)
6
6
 
7
7
 
8
8
 
@@ -10,46 +10,48 @@ Builds closed thread-ridge components with every profile locked to the shaft's r
10
10
 
11
11
  <a id="options"></a>
12
12
 
13
- **`options`** · [`ThreadRidgeOptions`](../geometry/ThreadRidgeOptions.md) · Required
13
+ **`options`** · [`ThreadRidgeOptions`](../mechanical/ThreadRidgeOptions.md) · Required
14
14
 
15
- - [`length`](../geometry/ThreadRidgeOptions.md#length) · `number` · Required
15
+ Dimensions in millimetres and a validated profile; apply any fit compensation first.
16
+
17
+ - [`length`](../mechanical/ThreadRidgeOptions.md#length) · `number` · Required
16
18
 
17
19
  Total threaded axial length in millimetres.
18
20
 
19
- - [`majorDiameter`](../geometry/ThreadRidgeOptions.md#majordiameter) · `number` · Required
21
+ - [`majorDiameter`](../mechanical/ThreadRidgeOptions.md#majordiameter) · `number` · Required
20
22
 
21
- Nominal major diameter before any caller-owned fit compensation.
23
+ Major diameter in millimetres; apply any caller-owned fit compensation before construction.
22
24
 
23
- - [`profile`](../geometry/ThreadRidgeOptions.md#profile) · [`ThreadProfile`](../geometry/ThreadProfile-type.md) · Required
25
+ - [`profile`](../mechanical/ThreadRidgeOptions.md#profile) · [`ThreadProfile`](../mechanical/ThreadProfile-type.md) · Required
24
26
 
25
27
  Validated periodic profile repeated around the shaft.
26
28
 
27
- - [`ends`](../geometry/ThreadRidgeOptions.md#ends) · [`ThreadEndTreatmentOptions`](../geometry/ThreadEndTreatmentOptions.md) · Optional
29
+ - [`ends`](../mechanical/ThreadRidgeOptions.md#ends) · [`ThreadEndTreatmentOptions`](../mechanical/ThreadEndTreatmentOptions.md) · Optional
28
30
 
29
31
  Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
30
32
  BOSL2-style non-cut lead-in scaling is available on complete thread solids.
31
33
 
32
- - [`handedness`](../geometry/ThreadRidgeOptions.md#handedness) · [`ThreadHandedness`](../geometry/ThreadHandedness.md) · Optional
34
+ - [`handedness`](../mechanical/ThreadRidgeOptions.md#handedness) · [`ThreadHandedness`](../mechanical/ThreadHandedness.md) · Optional
33
35
 
34
36
  Helix direction. Default: `right`.
35
37
 
36
- - [`limits`](../geometry/ThreadRidgeOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
38
+ - [`limits`](../mechanical/ThreadRidgeOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
37
39
 
38
40
  Explicit output and circular allocation ceilings.
39
41
 
40
- - [`phase`](../geometry/ThreadRidgeOptions.md#phase) · `number` · Optional
42
+ - [`phase`](../mechanical/ThreadRidgeOptions.md#phase) · `number` · Optional
41
43
 
42
44
  Angular offset of the first start in degrees. Default: `0`.
43
45
 
44
- - [`resolution`](../geometry/ThreadRidgeOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
46
+ - [`resolution`](../mechanical/ThreadRidgeOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
45
47
 
46
48
  Optional circular-resolution policy.
47
49
 
48
- - [`starts`](../geometry/ThreadRidgeOptions.md#starts) · `number` · Optional
50
+ - [`starts`](../mechanical/ThreadRidgeOptions.md#starts) · `number` · Optional
49
51
 
50
52
  Number of evenly phased starts. Default: `1`.
51
53
 
52
- - [`tolerance`](../geometry/ThreadRidgeOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
54
+ - [`tolerance`](../mechanical/ThreadRidgeOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
53
55
 
54
56
  Optional numerical tolerance overrides.
55
57
 
@@ -57,22 +59,21 @@ Builds closed thread-ridge components with every profile locked to the shaft's r
57
59
 
58
60
  ## Returns
59
61
 
60
- [`TriangleMesh`](../geometry/TriangleMesh.md)
62
+ [`TriangleMesh`](TriangleMesh.md)
61
63
 
62
64
 
63
65
  ## Related APIs
64
66
 
65
- - [ThreadRidgeOptions](../geometry/ThreadRidgeOptions.md)
66
- - [TriangleMesh](../geometry/TriangleMesh.md)
67
+ - [TriangleMesh](TriangleMesh.md)
67
68
 
68
69
  ## Guides
69
70
 
70
71
  - [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
71
72
 
72
- ## Supported imports
73
+ ## Import
73
74
 
74
75
  ```ts
75
76
  import * as mesh from "@metamesh/modeling/geometry/mesh";
76
77
  ```
77
78
 
78
- Package: `@metamesh/modeling@0.19.0`.
79
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Builds one closed threaded cylinder without a ridge/core Boolean seam.
4
4
 
5
- **threadSolid**(`options`: [`ThreadSolidOptions`](../geometry/ThreadSolidOptions.md)): [`TriangleMesh`](../geometry/TriangleMesh.md)
5
+ **threadSolid**(`options`: [`ThreadSolidOptions`](../mechanical/ThreadSolidOptions.md)): [`TriangleMesh`](TriangleMesh.md)
6
6
 
7
7
 
8
8
 
@@ -16,58 +16,60 @@ arrays.
16
16
 
17
17
  <a id="options"></a>
18
18
 
19
- **`options`** · [`ThreadSolidOptions`](../geometry/ThreadSolidOptions.md) · Required
19
+ **`options`** · [`ThreadSolidOptions`](../mechanical/ThreadSolidOptions.md) · Required
20
20
 
21
- - [`length`](../geometry/ThreadSolidOptions.md#length) · `number` · Required
21
+ Dimensions in millimetres and a validated profile; apply any fit compensation first.
22
+
23
+ - [`length`](../mechanical/ThreadSolidOptions.md#length) · `number` · Required
22
24
 
23
25
  Total threaded axial length in millimetres.
24
26
 
25
- - [`majorDiameter`](../geometry/ThreadSolidOptions.md#majordiameter) · `number` · Required
27
+ - [`majorDiameter`](../mechanical/ThreadSolidOptions.md#majordiameter) · `number` · Required
26
28
 
27
- Nominal major diameter before any caller-owned fit compensation.
29
+ Major diameter in millimetres; apply any caller-owned fit compensation before construction.
28
30
 
29
- - [`profile`](../geometry/ThreadSolidOptions.md#profile) · [`ThreadProfile`](../geometry/ThreadProfile-type.md) · Required
31
+ - [`profile`](../mechanical/ThreadSolidOptions.md#profile) · [`ThreadProfile`](../mechanical/ThreadProfile-type.md) · Required
30
32
 
31
33
  Validated periodic profile repeated around the shaft.
32
34
 
33
- - [`ends`](../geometry/ThreadSolidOptions.md#ends) · [`ThreadEndTreatmentOptions`](../geometry/ThreadEndTreatmentOptions.md) · Optional
35
+ - [`ends`](../mechanical/ThreadSolidOptions.md#ends) · [`ThreadEndTreatmentOptions`](../mechanical/ThreadEndTreatmentOptions.md) · Optional
34
36
 
35
37
  Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
36
38
  BOSL2-style non-cut lead-in scaling is available on complete thread solids.
37
39
 
38
- - [`handedness`](../geometry/ThreadSolidOptions.md#handedness) · [`ThreadHandedness`](../geometry/ThreadHandedness.md) · Optional
40
+ - [`handedness`](../mechanical/ThreadSolidOptions.md#handedness) · [`ThreadHandedness`](../mechanical/ThreadHandedness.md) · Optional
39
41
 
40
42
  Helix direction. Default: `right`.
41
43
 
42
- - [`limits`](../geometry/ThreadSolidOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
44
+ - [`limits`](../mechanical/ThreadSolidOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
43
45
 
44
46
  Explicit output and circular allocation ceilings.
45
47
 
46
- - [`phase`](../geometry/ThreadSolidOptions.md#phase) · `number` · Optional
48
+ - [`phase`](../mechanical/ThreadSolidOptions.md#phase) · `number` · Optional
47
49
 
48
50
  Angular offset of the first start in degrees. Default: `0`.
49
51
 
50
- - [`resolution`](../geometry/ThreadSolidOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
52
+ - [`resolution`](../mechanical/ThreadSolidOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
51
53
 
52
54
  Optional circular-resolution policy.
53
55
 
54
- - [`starts`](../geometry/ThreadSolidOptions.md#starts) · `number` · Optional
56
+ - [`starts`](../mechanical/ThreadSolidOptions.md#starts) · `number` · Optional
55
57
 
56
58
  Number of evenly phased starts. Default: `1`.
57
59
 
58
- - [`tolerance`](../geometry/ThreadSolidOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
60
+ - [`tolerance`](../mechanical/ThreadSolidOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
59
61
 
60
62
  Optional numerical tolerance overrides.
61
63
 
62
- - [`bevel`](../geometry/ThreadSolidOptions.md#bevel) · [`Bevel`](../geometry/Bevel.md) · Optional
64
+ - [`bevel`](../mechanical/ThreadSolidOptions.md#bevel) · [`Bevel`](../mechanical/Bevel.md) · Optional
63
65
 
64
66
  Independent 45-degree bottom/top bevels; omitted disables both. Auto uses profile depth.
65
67
 
66
- - [`bevelOffset`](../geometry/ThreadSolidOptions.md#beveloffset) · `number` · Optional
68
+ - [`bevelOffset`](../mechanical/ThreadSolidOptions.md#beveloffset) · `number` · Optional
67
69
 
68
- Distance of each bevel target face inward from the corresponding mesh end.
70
+ Distance in millimetres of each bevel target face inward from the corresponding mesh end.
69
71
 
70
- - [`bevelMode`](../geometry/ThreadSolidOptions.md#bevelmode) · `"inset"` \| `"outset"` · Optional
72
+ - [`bevelMode`](../mechanical/ThreadSolidOptions.md#bevelmode) · `"inset"` \| `"outset"` · Optional
71
73
 
72
74
  `inset` trims an external rod; `outset` expands an internal cutter.
73
75
 
@@ -75,22 +77,21 @@ arrays.
75
77
 
76
78
  ## Returns
77
79
 
78
- [`TriangleMesh`](../geometry/TriangleMesh.md)
80
+ [`TriangleMesh`](TriangleMesh.md)
79
81
 
80
82
 
81
83
  ## Related APIs
82
84
 
83
- - [ThreadSolidOptions](../geometry/ThreadSolidOptions.md)
84
- - [TriangleMesh](../geometry/TriangleMesh.md)
85
+ - [TriangleMesh](TriangleMesh.md)
85
86
 
86
87
  ## Guides
87
88
 
88
89
  - [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
89
90
 
90
- ## Supported imports
91
+ ## Import
91
92
 
92
93
  ```ts
93
94
  import * as mesh from "@metamesh/modeling/geometry/mesh";
94
95
  ```
95
96
 
96
- Package: `@metamesh/modeling@0.19.0`.
97
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Applies an affine transform to a mesh and preserves outward face orientation.
4
4
 
5
- **transform**(`mesh`: [`TriangleMeshInput`](../geometry/TriangleMeshInput.md), `placement`: [`Transform3Input`](../geometry/Transform3Input.md)): [`TriangleMesh`](../geometry/TriangleMesh.md)
5
+ **transform**(`mesh`: [`TriangleMeshInput`](TriangleMeshInput.md), `placement`: [`Transform3Input`](../geometry/Transform3Input.md)): [`TriangleMesh`](TriangleMesh.md)
6
6
 
7
7
 
8
8
 
@@ -13,7 +13,7 @@ automatically reverses every triangle. Singular transforms are rejected.
13
13
 
14
14
  <a id="mesh"></a>
15
15
 
16
- **`mesh`** · [`TriangleMeshInput`](../geometry/TriangleMeshInput.md) · Required
16
+ **`mesh`** · [`TriangleMeshInput`](TriangleMeshInput.md) · Required
17
17
 
18
18
  Mesh to transform without mutation.
19
19
 
@@ -23,31 +23,30 @@ Mesh to transform without mutation.
23
23
 
24
24
  **`placement`** · [`Transform3Input`](../geometry/Transform3Input.md) · Required
25
25
 
26
- Immutable spatial placement or canonical row-major affine matrix.
26
+ Frame, fluent transform, or row-major affine matrix.
27
27
 
28
28
 
29
29
 
30
30
  ## Returns
31
31
 
32
- [`TriangleMesh`](../geometry/TriangleMesh.md)
32
+ [`TriangleMesh`](TriangleMesh.md)
33
33
 
34
34
  A mesh with fresh transformed positions and copied or reversed indices.
35
35
 
36
36
 
37
37
  ## Related APIs
38
38
 
39
- - [Transform3Input](../geometry/Transform3Input.md)
40
- - [TriangleMesh](../geometry/TriangleMesh.md)
41
- - [TriangleMeshInput](../geometry/TriangleMeshInput.md)
39
+ - [TriangleMesh](TriangleMesh.md)
40
+ - [TriangleMeshInput](TriangleMeshInput.md)
42
41
 
43
42
  ## Guides
44
43
 
45
44
  - [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
46
45
 
47
- ## Supported imports
46
+ ## Import
48
47
 
49
48
  ```ts
50
49
  import * as mesh from "@metamesh/modeling/geometry/mesh";
51
50
  ```
52
51
 
53
- Package: `@metamesh/modeling@0.19.0`.
52
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Validates mesh buffers, indices, triangle area, and optionally closed topology.
4
4
 
5
- **validate**\<`T` *extends* [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)\>(`mesh`: `T`, `options?`: [`TriangleMeshValidationOptions`](../geometry/TriangleMeshValidationOptions.md)): `T`
5
+ **validate**\<`T` *extends* [`TriangleMeshInput`](TriangleMeshInput.md)\>(`mesh`: `T`, `options?`: [`TriangleMeshValidationOptions`](TriangleMeshValidationOptions.md)): `T`
6
6
 
7
7
 
8
8
 
@@ -14,7 +14,7 @@ self-intersections between faces. The mesh is neither mutated nor copied.
14
14
 
15
15
  ### T
16
16
 
17
- `T` *extends* [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)
17
+ `T` *extends* [`TriangleMeshInput`](TriangleMeshInput.md)
18
18
 
19
19
  ## Parameters
20
20
 
@@ -22,25 +22,25 @@ self-intersections between faces. The mesh is neither mutated nor copied.
22
22
 
23
23
  **`mesh`** · `T` · Required
24
24
 
25
- Mesh to inspect.
25
+ Raw or captured indexed buffers with complete finite XYZ vertices.
26
26
 
27
27
 
28
28
 
29
29
  <a id="options"></a>
30
30
 
31
- **`options`** · [`TriangleMeshValidationOptions`](../geometry/TriangleMeshValidationOptions.md) · Optional
31
+ **`options`** · [`TriangleMeshValidationOptions`](TriangleMeshValidationOptions.md) · Optional
32
32
 
33
33
  Empty-mesh, topology, and tolerance policy.
34
34
 
35
- - [`allowEmpty`](../geometry/TriangleMeshValidationOptions.md#allowempty) · `boolean` · Optional
35
+ - [`allowEmpty`](TriangleMeshValidationOptions.md#allowempty) · `boolean` · Optional
36
36
 
37
37
  Permit an empty position and index buffer. Defaults to `false`.
38
38
 
39
- - [`requireClosed`](../geometry/TriangleMeshValidationOptions.md#requireclosed) · `boolean` · Optional
39
+ - [`requireClosed`](TriangleMeshValidationOptions.md#requireclosed) · `boolean` · Optional
40
40
 
41
41
  Require two oppositely wound faces per edge; geometric self-intersections are not detected.
42
42
 
43
- - [`tolerance`](../geometry/TriangleMeshValidationOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
43
+ - [`tolerance`](TriangleMeshValidationOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
44
44
 
45
45
  Numeric comparison overrides used for zero-area triangle detection.
46
46
 
@@ -59,17 +59,17 @@ The original mesh after successful validation.
59
59
 
60
60
  ## Related APIs
61
61
 
62
- - [TriangleMeshInput](../geometry/TriangleMeshInput.md)
63
- - [TriangleMeshValidationOptions](../geometry/TriangleMeshValidationOptions.md)
62
+ - [TriangleMeshInput](TriangleMeshInput.md)
63
+ - [TriangleMeshValidationOptions](TriangleMeshValidationOptions.md)
64
64
 
65
65
  ## Guides
66
66
 
67
67
  - [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
68
68
 
69
- ## Supported imports
69
+ ## Import
70
70
 
71
71
  ```ts
72
72
  import * as mesh from "@metamesh/modeling/geometry/mesh";
73
73
  ```
74
74
 
75
- Package: `@metamesh/modeling@0.19.0`.
75
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Checks closed indexed topology, triangle intersections, and alternating nested shell orientation.
4
4
 
5
- **validateSolid**\<`T` *extends* [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)\>(`mesh`: `T`, `options?`: [`SolidMeshValidationOptions`](../geometry/SolidMeshValidationOptions.md)): `T`
5
+ **validateSolid**\<`T` *extends* [`TriangleMeshInput`](TriangleMeshInput.md)\>(`mesh`: `T`, `options?`: [`SolidMeshValidationOptions`](SolidMeshValidationOptions.md)): `T`
6
6
 
7
7
 
8
8
 
@@ -18,7 +18,7 @@ Input buffers are freshly inspected and never modified; units are millimetres.
18
18
 
19
19
  ### T
20
20
 
21
- `T` *extends* [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)
21
+ `T` *extends* [`TriangleMeshInput`](TriangleMeshInput.md)
22
22
 
23
23
  ## Parameters
24
24
 
@@ -32,15 +32,15 @@ Closed triangle mesh to inspect.
32
32
 
33
33
  <a id="options"></a>
34
34
 
35
- **`options`** · [`SolidMeshValidationOptions`](../geometry/SolidMeshValidationOptions.md) · Optional
35
+ **`options`** · [`SolidMeshValidationOptions`](SolidMeshValidationOptions.md) · Optional
36
36
 
37
- Optional lower work ceiling and numeric comparison policy.
37
+ Lower work limit and tolerance for numeric comparisons.
38
38
 
39
- - [`maxTests`](../geometry/SolidMeshValidationOptions.md#maxtests) · `number` · Optional
39
+ - [`maxTests`](SolidMeshValidationOptions.md#maxtests) · `number` · Optional
40
40
 
41
41
  Work ceiling for spatial comparisons and containment tests; defaults to 2,000,000 and may only lower it.
42
42
 
43
- - [`tolerance`](../geometry/SolidMeshValidationOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
43
+ - [`tolerance`](SolidMeshValidationOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
44
44
 
45
45
  Distance comparison policy in millimetres; near contacts reject conservatively.
46
46
 
@@ -55,17 +55,17 @@ The original mesh after every requested check succeeds.
55
55
 
56
56
  ## Related APIs
57
57
 
58
- - [SolidMeshValidationOptions](../geometry/SolidMeshValidationOptions.md)
59
- - [TriangleMeshInput](../geometry/TriangleMeshInput.md)
58
+ - [SolidMeshValidationOptions](SolidMeshValidationOptions.md)
59
+ - [TriangleMeshInput](TriangleMeshInput.md)
60
60
 
61
61
  ## Guides
62
62
 
63
63
  - [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
64
64
 
65
- ## Supported imports
65
+ ## Import
66
66
 
67
67
  ```ts
68
68
  import * as mesh from "@metamesh/modeling/geometry/mesh";
69
69
  ```
70
70
 
71
- Package: `@metamesh/modeling@0.19.0`.
71
+ Package: `@metamesh/modeling@0.20.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Construct, transform, inspect, and process triangle buffers without a native engine.
4
4
 
5
- Use `@metamesh/modeling/geometry/mesh` to construct and process ordinary `TriangleMesh` values. Import the module directly so bundlers can remove unused operations and their dependencies. Mesh option and result types are exported beside their operations; profile helpers and transforms live in `/geometry`.
5
+ Use `@metamesh/modeling/geometry/mesh` to construct and process ordinary `TriangleMesh` values. Import the module directly so bundlers can remove unused operations and their dependencies. Mesh-specific option and result types live in this entry. Shared construction options keep their owning import: `LoftOptions` comes from `@metamesh/modeling`, while `ThreadSolidOptions` comes from `/geometry/mechanical`. Profile helpers and transforms live in `/geometry`.
6
6
 
7
7
  ```ts
8
8
  import { rectangleContour, transform3 } from "@metamesh/modeling/geometry";
@@ -18,4 +18,10 @@ Operations return copied buffers or their documented measurement and processing
18
18
 
19
19
  - [Mesh operations](mesh/categories/operations.md) — Construct, transform, validate, analyze, and optimize indexed meshes.
20
20
 
21
- Package: `@metamesh/modeling@0.19.0`.
21
+ ## Import
22
+
23
+ ```ts
24
+ import * as mesh from "@metamesh/modeling/geometry/mesh";
25
+ ```
26
+
27
+ Package: `@metamesh/modeling@0.20.0`.
@@ -0,0 +1,23 @@
1
+ # BoxEdge
2
+
3
+ Box edges use +Z top, +Y front and +X right; vertical names list front/back first.
4
+
5
+ **BoxEdge** = `"top-front"` \| `"top-back"` \| `"top-left"` \| `"top-right"` \| `"bottom-front"` \| `"bottom-back"` \| `"bottom-left"` \| `"bottom-right"` \| `"front-left"` \| `"front-right"` \| `"back-left"` \| `"back-right"`
6
+
7
+
8
+
9
+
10
+ ## Guides
11
+
12
+ - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
13
+ - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
14
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
15
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
16
+
17
+ ## Import
18
+
19
+ ```ts
20
+ import type { BoxEdge } from "@metamesh/modeling";
21
+ ```
22
+
23
+ Package: `@metamesh/modeling@0.20.0`.
@@ -0,0 +1,27 @@
1
+ # BoxEdgeSelection
2
+
3
+ Named individual edges or top/bottom rims and all four vertical edges.
4
+
5
+ **BoxEdgeSelection** = [`BoxEdge`](BoxEdge.md) \| `"top"` \| `"bottom"` \| `"vertical"`
6
+
7
+
8
+
9
+
10
+ ## Related APIs
11
+
12
+ - [BoxEdge](BoxEdge.md)
13
+
14
+ ## Guides
15
+
16
+ - [Choose a primitive](../../guides/profiles-and-extrusion.md#choose-a-primitive)
17
+ - [Treated boxes, frustums, and mirrored arrays](../../guides/profiles-and-extrusion.md#treated-boxes-frustums-and-mirrored-arrays)
18
+ - [Finish a profile with a hole](../../guides/profiles-and-extrusion.md#finish-a-profile-with-a-hole)
19
+ - [Shape openings and local edges](../../guides/profiles-and-extrusion.md#shape-openings-and-local-edges)
20
+
21
+ ## Import
22
+
23
+ ```ts
24
+ import type { BoxEdgeSelection } from "@metamesh/modeling";
25
+ ```
26
+
27
+ Package: `@metamesh/modeling@0.20.0`.