@metamesh/modeling 0.16.0 → 0.18.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 (881) hide show
  1. package/CHANGELOG.md +193 -0
  2. package/README.md +137 -142
  3. package/dist/api/engine.d.ts +128 -65
  4. package/dist/api/geometry.d.ts +327 -483
  5. package/dist/api/index.d.ts +537 -415
  6. package/dist/api/mesh.d.ts +460 -0
  7. package/dist/api/text.d.ts +1 -1
  8. package/dist/docs/guides/concepts.md +130 -87
  9. package/dist/docs/guides/fonts.md +11 -10
  10. package/dist/docs/guides/fundamentals.md +30 -29
  11. package/dist/docs/guides/generation.md +44 -31
  12. package/dist/docs/guides/hosting.md +122 -46
  13. package/dist/docs/guides/recipes.md +94 -56
  14. package/dist/docs/guides/standalone-model.md +8 -7
  15. package/dist/docs/manifest.json +2941 -968
  16. package/dist/docs/reference/engine/Export3mfOptions.md +19 -2
  17. package/dist/docs/reference/engine/ExportMeshPart.md +5 -39
  18. package/dist/docs/reference/engine/GenerationOptions.md +4 -3
  19. package/dist/docs/reference/engine/GeometryResource.md +13 -13
  20. package/dist/docs/reference/engine/ModelDependencies.md +1 -1
  21. package/dist/docs/reference/engine/ModelEngine.md +26 -23
  22. package/dist/docs/reference/engine/ModelEngineOptions.md +6 -1
  23. package/dist/docs/reference/engine/ModelPart.md +108 -0
  24. package/dist/docs/reference/engine/ModelResult.md +175 -0
  25. package/dist/docs/reference/engine/ModelRunArguments.md +28 -0
  26. package/dist/docs/reference/engine/ModelRunOptions.md +104 -0
  27. package/dist/docs/reference/engine/ModelSession.md +16 -16
  28. package/dist/docs/reference/engine/ModelingLimits.md +121 -0
  29. package/dist/docs/reference/engine/SessionOptions.md +13 -8
  30. package/dist/docs/reference/engine/categories/host-lifecycle.md +25 -15
  31. package/dist/docs/reference/engine/checkModel.md +43 -0
  32. package/dist/docs/reference/engine/createModelEngine.md +4 -13
  33. package/dist/docs/reference/engine/defaultModelingLimits.md +8 -1
  34. package/dist/docs/reference/engine/export3mf.md +55 -0
  35. package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
  36. package/dist/docs/reference/engine.md +8 -15
  37. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
  38. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +1 -1
  39. package/dist/docs/reference/geometry/Anchor3-type.md +1 -1
  40. package/dist/docs/reference/geometry/ArcCurve2.md +1 -1
  41. package/dist/docs/reference/geometry/ArcCurve3.md +1 -1
  42. package/dist/docs/reference/geometry/AttachOptions.md +1 -1
  43. package/dist/docs/reference/geometry/AxisAngleRotation3.md +1 -1
  44. package/dist/docs/reference/geometry/Bevel.md +18 -0
  45. package/dist/docs/reference/geometry/BevelSize.md +14 -0
  46. package/dist/docs/reference/geometry/Bounds2-type.md +1 -1
  47. package/dist/docs/reference/geometry/Bounds2Data.md +1 -1
  48. package/dist/docs/reference/geometry/Bounds2Input.md +1 -1
  49. package/dist/docs/reference/geometry/Bounds2Options.md +112 -0
  50. package/dist/docs/reference/geometry/Bounds3-type.md +1 -1
  51. package/dist/docs/reference/geometry/Bounds3Data.md +1 -1
  52. package/dist/docs/reference/geometry/Bounds3Input.md +1 -1
  53. package/dist/docs/reference/geometry/Bounds3Options.md +112 -0
  54. package/dist/docs/reference/geometry/BoundsFit2.md +1 -1
  55. package/dist/docs/reference/geometry/BoundsFit3.md +1 -1
  56. package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
  57. package/dist/docs/reference/geometry/BoxAnchorFace.md +1 -1
  58. package/dist/docs/reference/geometry/BoxAnchorOptions.md +4 -4
  59. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  60. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  61. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  62. package/dist/docs/reference/geometry/BoxOptions.md +3 -3
  63. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
  64. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
  65. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  66. package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
  67. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -3
  68. package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
  69. package/dist/docs/reference/geometry/CircularSampling.md +41 -0
  70. package/dist/docs/reference/geometry/CircularSamplingOptions.md +14 -0
  71. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
  72. package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
  73. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
  74. package/dist/docs/reference/geometry/Contour.md +1 -1
  75. package/dist/docs/reference/geometry/ContourCurve.md +1 -1
  76. package/dist/docs/reference/geometry/ContourPoint.md +1 -1
  77. package/dist/docs/reference/geometry/ContourSegment.md +1 -1
  78. package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
  79. package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
  80. package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
  81. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
  82. package/dist/docs/reference/geometry/CubicBezierCurve2.md +1 -1
  83. package/dist/docs/reference/geometry/CubicBezierCurve3.md +1 -1
  84. package/dist/docs/reference/geometry/Curve2.md +1 -1
  85. package/dist/docs/reference/geometry/Curve3.md +1 -1
  86. package/dist/docs/reference/geometry/CurveSamplingOptions.md +1 -1
  87. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +1 -1
  88. package/dist/docs/reference/geometry/CylinderAnchorFace.md +1 -1
  89. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +3 -3
  90. package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
  91. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
  92. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
  93. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
  94. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +1 -1
  95. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
  96. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
  97. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
  98. package/dist/docs/reference/geometry/CylindricalGearSpec.md +1 -1
  99. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  100. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  101. package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
  102. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  103. package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +130 -0
  104. package/dist/docs/reference/geometry/ExtrudeOptions.md +17 -9
  105. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +3 -3
  106. package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
  107. package/dist/docs/reference/geometry/Frame3.md +1 -1
  108. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  109. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  110. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  111. package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
  112. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
  113. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  114. package/dist/docs/reference/geometry/GridPatternOptions.md +1 -1
  115. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
  116. package/dist/docs/reference/geometry/HeightfieldOptions.md +3 -2
  117. package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
  118. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +1 -1
  119. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +108 -0
  120. package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +43 -0
  121. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +52 -83
  122. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +1 -1
  123. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +1 -1
  124. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +1 -1
  125. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +1 -1
  126. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +1 -1
  127. package/dist/docs/reference/geometry/LineCurve2.md +1 -1
  128. package/dist/docs/reference/geometry/LineCurve3.md +1 -1
  129. package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
  130. package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
  131. package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
  132. package/dist/docs/reference/geometry/LoftOptions.md +3 -3
  133. package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
  134. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
  135. package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
  136. package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
  137. package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
  138. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
  139. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
  140. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  141. package/dist/docs/reference/geometry/NumericArray.md +14 -0
  142. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
  143. package/dist/docs/reference/geometry/Path2-type.md +1 -1
  144. package/dist/docs/reference/geometry/Path2Data.md +1 -1
  145. package/dist/docs/reference/geometry/Path2Input.md +1 -1
  146. package/dist/docs/reference/geometry/Path3-type.md +1 -1
  147. package/dist/docs/reference/geometry/Path3Data.md +1 -1
  148. package/dist/docs/reference/geometry/Path3Input.md +1 -1
  149. package/dist/docs/reference/geometry/PathFrame.md +1 -1
  150. package/dist/docs/reference/geometry/PathLocation.md +1 -1
  151. package/dist/docs/reference/geometry/PathNormalGuide.md +1 -1
  152. package/dist/docs/reference/geometry/PathOptions.md +1 -1
  153. package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
  154. package/dist/docs/reference/geometry/PathPlacement.md +1 -1
  155. package/dist/docs/reference/geometry/PathResamplingOptions.md +1 -1
  156. package/dist/docs/reference/geometry/Pivot2Options.md +1 -1
  157. package/dist/docs/reference/geometry/Pivot3Options.md +1 -1
  158. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
  159. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +1 -1
  160. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
  161. package/dist/docs/reference/geometry/PlanarPatchQuality.md +1 -1
  162. package/dist/docs/reference/geometry/PolygonData.md +1 -1
  163. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +1 -1
  164. package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -3
  165. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
  166. package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
  167. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
  168. package/dist/docs/reference/geometry/Profile.md +1 -1
  169. package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
  170. package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
  171. package/dist/docs/reference/geometry/ProfileSpan2.md +1 -1
  172. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +1 -1
  173. package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
  174. package/dist/docs/reference/geometry/RackPitchSpec.md +1 -1
  175. package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
  176. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  177. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  178. package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
  179. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
  180. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
  181. package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
  182. package/dist/docs/reference/geometry/RegionData.md +1 -1
  183. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +1 -1
  184. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  185. package/dist/docs/reference/geometry/RevolveOptions.md +2 -2
  186. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  187. package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
  188. package/dist/docs/reference/geometry/SampleContourOptions.md +1 -1
  189. package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
  190. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
  191. package/dist/docs/reference/geometry/SampledCurve2.md +1 -1
  192. package/dist/docs/reference/geometry/SampledCurve3.md +1 -1
  193. package/dist/docs/reference/geometry/SampledThreadHelices.md +1 -1
  194. package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
  195. package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
  196. package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
  197. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  198. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +1 -1
  199. package/dist/docs/reference/geometry/SphereOptions.md +1 -1
  200. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
  201. package/dist/docs/reference/geometry/StarContourOptions.md +74 -0
  202. package/dist/docs/reference/geometry/StrokeCap.md +1 -1
  203. package/dist/docs/reference/geometry/StrokeJoin.md +1 -1
  204. package/dist/docs/reference/geometry/StrokeOptions.md +1 -1
  205. package/dist/docs/reference/geometry/SvgImportOptions.md +16 -1
  206. package/dist/docs/reference/geometry/SvgRegionPreflight.md +16 -1
  207. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +1 -1
  208. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
  209. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
  210. package/dist/docs/reference/geometry/SweepOptions.md +1 -1
  211. package/dist/docs/reference/geometry/SweepOrientation.md +1 -1
  212. package/dist/docs/reference/geometry/ThreadBevelOptions.md +7 -30
  213. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +1 -1
  214. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
  215. package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
  216. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
  217. package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
  218. package/dist/docs/reference/geometry/ThreadHelixOptions.md +1 -1
  219. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
  220. package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
  221. package/dist/docs/reference/geometry/ThreadProfile-type.md +2 -2
  222. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
  223. package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
  224. package/dist/docs/reference/geometry/{HelicalThreadRidgeMeshOptions.md → ThreadRidgeOptions.md} +4 -4
  225. package/dist/docs/reference/geometry/ThreadRole.md +1 -1
  226. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshOptions.md → ThreadSolidOptions.md} +18 -65
  227. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +2 -2
  228. package/dist/docs/reference/geometry/ThreadedNutOptions.md +75 -86
  229. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +18 -6
  230. package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
  231. package/dist/docs/reference/geometry/ThreadedRodOptions.md +52 -83
  232. package/dist/docs/reference/geometry/TorusOptions.md +1 -1
  233. package/dist/docs/reference/geometry/Transform2-type.md +1 -1
  234. package/dist/docs/reference/geometry/Transform2Data.md +1 -1
  235. package/dist/docs/reference/geometry/Transform2Input.md +1 -1
  236. package/dist/docs/reference/geometry/Transform3-type.md +1 -1
  237. package/dist/docs/reference/geometry/Transform3Data.md +1 -1
  238. package/dist/docs/reference/geometry/Transform3Input.md +1 -1
  239. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +1 -1
  240. package/dist/docs/reference/geometry/TriangleMesh.md +3 -8
  241. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +10 -4
  242. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +2 -2
  243. package/dist/docs/reference/geometry/TriangleMeshInput.md +19 -0
  244. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
  245. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +1 -1
  246. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
  247. package/dist/docs/reference/geometry/TriangleMeshSignature.md +3 -3
  248. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
  249. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
  250. package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +131 -0
  251. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
  252. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
  253. package/dist/docs/reference/geometry/TubeOptions.md +10 -86
  254. package/dist/docs/reference/geometry/Vector2-type.md +1 -1
  255. package/dist/docs/reference/geometry/Vector2Data.md +1 -1
  256. package/dist/docs/reference/geometry/Vector2Input.md +1 -1
  257. package/dist/docs/reference/geometry/Vector3-type.md +1 -1
  258. package/dist/docs/reference/geometry/Vector3Data.md +1 -1
  259. package/dist/docs/reference/geometry/Vector3Input.md +1 -1
  260. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +1 -1
  261. package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
  262. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
  263. package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
  264. package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
  265. package/dist/docs/reference/geometry/add2.md +1 -1
  266. package/dist/docs/reference/geometry/add3.md +1 -1
  267. package/dist/docs/reference/geometry/anchor3.md +1 -1
  268. package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
  269. package/dist/docs/reference/geometry/applyTransformDirection3.md +1 -1
  270. package/dist/docs/reference/geometry/applyTransformPoint3.md +1 -1
  271. package/dist/docs/reference/geometry/attachmentTransform3.md +1 -1
  272. package/dist/docs/reference/geometry/bounds2.md +7 -6
  273. package/dist/docs/reference/geometry/bounds3.md +7 -6
  274. package/dist/docs/reference/geometry/boundsCenter.md +1 -1
  275. package/dist/docs/reference/geometry/boundsSize.md +1 -1
  276. package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
  277. package/dist/docs/reference/geometry/categories/bounds-layout.md +8 -9
  278. package/dist/docs/reference/geometry/categories/curves-paths.md +2 -2
  279. package/dist/docs/reference/geometry/categories/mechanical.md +8 -10
  280. package/dist/docs/reference/geometry/categories/meshes.md +19 -32
  281. package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
  282. package/dist/docs/reference/geometry/categories/primitive-options.md +3 -3
  283. package/dist/docs/reference/geometry/categories/profiles-regions.md +5 -4
  284. package/dist/docs/reference/geometry/categories/resolution-errors.md +7 -4
  285. package/dist/docs/reference/geometry/categories/transforms-math.md +3 -2
  286. package/dist/docs/reference/geometry/categories/vector-import.md +3 -3
  287. package/dist/docs/reference/geometry/circleContour.md +1 -1
  288. package/dist/docs/reference/geometry/closeToAxis.md +1 -1
  289. package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
  290. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
  291. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
  292. package/dist/docs/reference/geometry/composeTransform3.md +1 -1
  293. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +1 -1
  294. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +1 -1
  295. package/dist/docs/reference/geometry/contourContainsPoint.md +1 -1
  296. package/dist/docs/reference/geometry/cross2.md +1 -1
  297. package/dist/docs/reference/geometry/cross3.md +1 -1
  298. package/dist/docs/reference/geometry/cylinderAnchor3.md +2 -2
  299. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
  300. package/dist/docs/reference/geometry/distance2.md +1 -1
  301. package/dist/docs/reference/geometry/distance3.md +1 -1
  302. package/dist/docs/reference/geometry/distributeAlongPath.md +1 -1
  303. package/dist/docs/reference/geometry/dot2.md +1 -1
  304. package/dist/docs/reference/geometry/dot3.md +1 -1
  305. package/dist/docs/reference/geometry/ellipseContour.md +1 -1
  306. package/dist/docs/reference/geometry/eulerTransform3.md +1 -1
  307. package/dist/docs/reference/geometry/fitBounds.md +1 -1
  308. package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
  309. package/dist/docs/reference/geometry/frameTransform3.md +1 -1
  310. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +1 -1
  311. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
  312. package/dist/docs/reference/geometry/gridPatternTransforms.md +1 -1
  313. package/dist/docs/reference/geometry/immutableBuffer.md +49 -0
  314. package/dist/docs/reference/geometry/inverseTransform3.md +1 -1
  315. package/dist/docs/reference/geometry/isGeometryError.md +1 -1
  316. package/dist/docs/reference/geometry/layoutRow.md +1 -1
  317. package/dist/docs/reference/geometry/length2.md +1 -1
  318. package/dist/docs/reference/geometry/length3.md +1 -1
  319. package/dist/docs/reference/geometry/lerp2.md +1 -1
  320. package/dist/docs/reference/geometry/lerp3.md +1 -1
  321. package/dist/docs/reference/geometry/linearPatternTransforms.md +1 -1
  322. package/dist/docs/reference/geometry/matchProfiles.md +1 -1
  323. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +1 -1
  324. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
  325. package/dist/docs/reference/geometry/normalize2.md +1 -1
  326. package/dist/docs/reference/geometry/normalize3.md +1 -1
  327. package/dist/docs/reference/geometry/normalizeContour.md +1 -1
  328. package/dist/docs/reference/geometry/normalizePolygon.md +1 -1
  329. package/dist/docs/reference/geometry/normalizeRegion.md +1 -1
  330. package/dist/docs/reference/geometry/path2.md +1 -1
  331. package/dist/docs/reference/geometry/path3.md +1 -1
  332. package/dist/docs/reference/geometry/pathPatternTransforms.md +1 -1
  333. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +18 -25
  334. package/dist/docs/reference/geometry/preflightSvgRegion.md +12 -3
  335. package/dist/docs/reference/geometry/preflightThreadedNut.md +24 -26
  336. package/dist/docs/reference/geometry/preflightThreadedRod.md +18 -25
  337. package/dist/docs/reference/geometry/projectOntoPlane3.md +1 -1
  338. package/dist/docs/reference/geometry/radialPatternTransforms.md +1 -1
  339. package/dist/docs/reference/geometry/rectangleContour.md +10 -5
  340. package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
  341. package/dist/docs/reference/geometry/regionArea.md +1 -1
  342. package/dist/docs/reference/geometry/regionBounds.md +1 -1
  343. package/dist/docs/reference/geometry/regularPolygonContour.md +2 -2
  344. package/dist/docs/reference/geometry/resamplePolyline2.md +1 -1
  345. package/dist/docs/reference/geometry/resamplePolyline3.md +1 -1
  346. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
  347. package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
  348. package/dist/docs/reference/geometry/resolveCircularSampling.md +40 -0
  349. package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
  350. package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
  351. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
  352. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +1 -1
  353. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
  354. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  355. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +1 -1
  356. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
  357. package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
  358. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +1 -1
  359. package/dist/docs/reference/geometry/rotate2.md +1 -1
  360. package/dist/docs/reference/geometry/rotationTransform3.md +1 -1
  361. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +1 -1
  362. package/dist/docs/reference/geometry/sampleContour.md +1 -1
  363. package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
  364. package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
  365. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
  366. package/dist/docs/reference/geometry/sampleHelix.md +1 -1
  367. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
  368. package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
  369. package/dist/docs/reference/geometry/sampleSideProfile.md +1 -1
  370. package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
  371. package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
  372. package/dist/docs/reference/geometry/scale2.md +1 -1
  373. package/dist/docs/reference/geometry/scale3.md +1 -1
  374. package/dist/docs/reference/geometry/scaleTransform3.md +1 -1
  375. package/dist/docs/reference/geometry/signedContourArea.md +1 -1
  376. package/dist/docs/reference/geometry/starContour.md +17 -15
  377. package/dist/docs/reference/geometry/strokeRegionData.md +1 -1
  378. package/dist/docs/reference/geometry/subtract2.md +1 -1
  379. package/dist/docs/reference/geometry/subtract3.md +1 -1
  380. package/dist/docs/reference/geometry/threadProfile.md +1 -1
  381. package/dist/docs/reference/geometry/transform2.md +1 -1
  382. package/dist/docs/reference/geometry/transform3.md +1 -1
  383. package/dist/docs/reference/geometry/transformDeterminant3.md +1 -1
  384. package/dist/docs/reference/geometry/transformRegionData.md +1 -1
  385. package/dist/docs/reference/geometry/translationTransform3.md +1 -1
  386. package/dist/docs/reference/geometry/triangulateContour.md +1 -1
  387. package/dist/docs/reference/geometry/validateRigidTransform3.md +35 -0
  388. package/dist/docs/reference/geometry/validateTransform3.md +1 -1
  389. package/dist/docs/reference/geometry/vector2.md +1 -1
  390. package/dist/docs/reference/geometry/vector3.md +1 -1
  391. package/dist/docs/reference/geometry.md +9 -9
  392. package/dist/docs/reference/mesh/AcmeThreadProfileSpec.md +79 -0
  393. package/dist/docs/reference/mesh/Bevel.md +18 -0
  394. package/dist/docs/reference/mesh/BevelSize.md +14 -0
  395. package/dist/docs/reference/mesh/Bounds2.md +125 -0
  396. package/dist/docs/reference/mesh/Bounds2Data.md +43 -0
  397. package/dist/docs/reference/mesh/Bounds2Input.md +19 -0
  398. package/dist/docs/reference/mesh/Bounds3.md +125 -0
  399. package/dist/docs/reference/mesh/Bounds3Data.md +43 -0
  400. package/dist/docs/reference/mesh/Bounds3Input.md +19 -0
  401. package/dist/docs/reference/mesh/ButtressPressureFlankSide.md +14 -0
  402. package/dist/docs/reference/mesh/ButtressThreadProfileSpec.md +97 -0
  403. package/dist/docs/reference/mesh/CircularPrimitiveOptions.md +60 -0
  404. package/dist/docs/reference/mesh/CurveSamplingOptions.md +69 -0
  405. package/dist/docs/reference/mesh/CustomThreadProfileSpec.md +77 -0
  406. package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +129 -0
  407. package/dist/docs/reference/mesh/ExtrusionSamplingOptions.md +81 -0
  408. package/dist/docs/reference/mesh/Frame3.md +62 -0
  409. package/dist/docs/reference/mesh/GeometryResolution.md +74 -0
  410. package/dist/docs/reference/mesh/GeometrySamplingLimits.md +66 -0
  411. package/dist/docs/reference/mesh/GeometryToleranceOptions.md +46 -0
  412. package/dist/docs/reference/mesh/HeightfieldMeshLimits.md +18 -0
  413. package/dist/docs/reference/mesh/HeightfieldOptions.md +72 -0
  414. package/dist/docs/reference/mesh/HeightfieldPreflight.md +58 -0
  415. package/dist/docs/reference/mesh/ImmutableBuffer.md +108 -0
  416. package/dist/docs/reference/mesh/ImmutableTriangleMesh.md +43 -0
  417. package/dist/docs/reference/mesh/LoftCorrespondence.md +24 -0
  418. package/dist/docs/reference/mesh/LoftMeshStation.md +31 -0
  419. package/dist/docs/reference/mesh/LoftOptions.md +88 -0
  420. package/dist/docs/reference/mesh/LoftPlacement.md +70 -0
  421. package/dist/docs/reference/mesh/ModelingLimits.md +130 -0
  422. package/dist/docs/reference/mesh/NumericArray.md +14 -0
  423. package/dist/docs/reference/mesh/Path2.md +197 -0
  424. package/dist/docs/reference/mesh/Path2Data.md +50 -0
  425. package/dist/docs/reference/mesh/Path2Input.md +20 -0
  426. package/dist/docs/reference/mesh/Path3.md +197 -0
  427. package/dist/docs/reference/mesh/Path3Data.md +50 -0
  428. package/dist/docs/reference/mesh/Path3Input.md +20 -0
  429. package/dist/docs/reference/mesh/PathLocation.md +69 -0
  430. package/dist/docs/reference/mesh/PathNormalGuide.md +43 -0
  431. package/dist/docs/reference/mesh/PathResamplingOptions.md +84 -0
  432. package/dist/docs/reference/mesh/Pivot2Options.md +26 -0
  433. package/dist/docs/reference/mesh/Pivot3Options.md +26 -0
  434. package/dist/docs/reference/mesh/PlanarMeshOptimizationFallbackReason.md +14 -0
  435. package/dist/docs/reference/mesh/PlanarMeshOptimizationOptions.md +160 -0
  436. package/dist/docs/reference/mesh/PlanarMeshOptimizationResult.md +124 -0
  437. package/dist/docs/reference/mesh/PlanarPatchQuality.md +194 -0
  438. package/dist/docs/reference/mesh/RevolveOptions.md +91 -0
  439. package/dist/docs/reference/mesh/SolidMeshValidationOptions.md +38 -0
  440. package/dist/docs/reference/mesh/SquareThreadProfileSpec.md +79 -0
  441. package/dist/docs/reference/mesh/SweepOptions.md +113 -0
  442. package/dist/docs/reference/mesh/SweepOrientation.md +113 -0
  443. package/dist/docs/reference/mesh/ThreadEndStyle.md +14 -0
  444. package/dist/docs/reference/mesh/ThreadEndTreatmentOptions.md +117 -0
  445. package/dist/docs/reference/mesh/ThreadHandedness.md +14 -0
  446. package/dist/docs/reference/mesh/ThreadLeadInEnvelope.md +14 -0
  447. package/dist/docs/reference/mesh/ThreadLeadInShape.md +14 -0
  448. package/dist/docs/reference/mesh/ThreadProfile.md +86 -0
  449. package/dist/docs/reference/mesh/ThreadProfileBaseSpec.md +53 -0
  450. package/dist/docs/reference/mesh/ThreadProfileSpec.md +23 -0
  451. package/dist/docs/reference/{model/HelicalThreadRidgeMeshOptions.md → mesh/ThreadRidgeOptions.md} +14 -10
  452. package/dist/docs/reference/mesh/ThreadSolidOptions.md +222 -0
  453. package/dist/docs/reference/mesh/ThreadSolidPreflight.md +58 -0
  454. package/dist/docs/reference/mesh/Transform2.md +256 -0
  455. package/dist/docs/reference/mesh/Transform2Data.md +14 -0
  456. package/dist/docs/reference/mesh/Transform2Input.md +19 -0
  457. package/dist/docs/reference/mesh/Transform3.md +296 -0
  458. package/dist/docs/reference/mesh/Transform3Data.md +17 -0
  459. package/dist/docs/reference/mesh/Transform3Input.md +19 -0
  460. package/dist/docs/reference/mesh/TrapezoidalThreadProfileSpec.md +96 -0
  461. package/dist/docs/reference/mesh/TriangleMesh.md +34 -0
  462. package/dist/docs/reference/mesh/TriangleMeshAnalysis.md +129 -0
  463. package/dist/docs/reference/mesh/TriangleMeshAnalysisOptions.md +79 -0
  464. package/dist/docs/reference/mesh/TriangleMeshInput.md +19 -0
  465. package/dist/docs/reference/mesh/TriangleMeshMeasurements.md +79 -0
  466. package/dist/docs/reference/mesh/TriangleMeshQualityOptions.md +43 -0
  467. package/dist/docs/reference/mesh/TriangleMeshQualityReport.md +194 -0
  468. package/dist/docs/reference/mesh/TriangleMeshSignature.md +111 -0
  469. package/dist/docs/reference/mesh/TriangleMeshSignatureOptions.md +46 -0
  470. package/dist/docs/reference/mesh/TriangleMeshSignatureTolerances.md +34 -0
  471. package/dist/docs/reference/mesh/TriangleMeshTopologyAnalysis.md +131 -0
  472. package/dist/docs/reference/mesh/TriangleMeshValidationOptions.md +55 -0
  473. package/dist/docs/reference/mesh/TriangularThreadProfileSpec.md +95 -0
  474. package/dist/docs/reference/mesh/Vector2.md +270 -0
  475. package/dist/docs/reference/mesh/Vector2Data.md +14 -0
  476. package/dist/docs/reference/mesh/Vector2Input.md +19 -0
  477. package/dist/docs/reference/mesh/Vector3.md +282 -0
  478. package/dist/docs/reference/mesh/Vector3Data.md +14 -0
  479. package/dist/docs/reference/mesh/Vector3Input.md +19 -0
  480. package/dist/docs/reference/mesh/analyze.md +96 -0
  481. package/dist/docs/reference/{geometry/analyzeTriangleMeshQuality.md → mesh/analyzeQuality.md} +9 -9
  482. package/dist/docs/reference/mesh/bounds.md +39 -0
  483. package/dist/docs/reference/mesh/categories/operations.md +147 -0
  484. package/dist/docs/reference/{geometry/computeTriangleMeshCentroid.md → mesh/centroid.md} +7 -7
  485. package/dist/docs/reference/mesh/extrude.md +73 -0
  486. package/dist/docs/reference/{geometry/heightfieldMesh.md → mesh/heightfield.md} +7 -8
  487. package/dist/docs/reference/mesh/immutable.md +47 -0
  488. package/dist/docs/reference/{geometry/joinTriangleMeshes.md → mesh/join.md} +7 -6
  489. package/dist/docs/reference/{geometry/loftMesh.md → mesh/loft.md} +15 -15
  490. package/dist/docs/reference/mesh/optimizePlanarPatches.md +96 -0
  491. package/dist/docs/reference/{geometry → mesh}/preflightHeightfield.md +5 -6
  492. package/dist/docs/reference/mesh/preflightThreadSolid.md +90 -0
  493. package/dist/docs/reference/{geometry/reverseTriangleMesh.md → mesh/reverse.md} +6 -5
  494. package/dist/docs/reference/{geometry/revolveMesh.md → mesh/revolve.md} +13 -13
  495. package/dist/docs/reference/{geometry/computeTriangleMeshSignature.md → mesh/signature.md} +11 -11
  496. package/dist/docs/reference/mesh/sweep.md +86 -0
  497. package/dist/docs/reference/mesh/threadRidge.md +72 -0
  498. package/dist/docs/reference/mesh/threadSolid.md +90 -0
  499. package/dist/docs/reference/{geometry/transformTriangleMesh.md → mesh/transform.md} +7 -6
  500. package/dist/docs/reference/{geometry/validateTriangleMesh.md → mesh/validate.md} +17 -11
  501. package/dist/docs/reference/{geometry/validateSolidMesh.md → mesh/validateSolid.md} +15 -9
  502. package/dist/docs/reference/mesh.md +21 -0
  503. package/dist/docs/reference/model/AcmeThreadProfileSpec.md +80 -0
  504. package/dist/docs/reference/model/Anchor3.md +1 -1
  505. package/dist/docs/reference/model/AttachOptions.md +1 -1
  506. package/dist/docs/reference/model/Bevel.md +19 -0
  507. package/dist/docs/reference/model/{ThreadedNutBevel.md → BevelSize.md} +4 -4
  508. package/dist/docs/reference/model/Bounds2-type.md +1 -1
  509. package/dist/docs/reference/model/Bounds2Data.md +1 -1
  510. package/dist/docs/reference/model/Bounds2Input.md +1 -1
  511. package/dist/docs/reference/model/Bounds2Options.md +110 -0
  512. package/dist/docs/reference/model/Bounds3-type.md +1 -1
  513. package/dist/docs/reference/model/Bounds3Data.md +1 -1
  514. package/dist/docs/reference/model/Bounds3Input.md +1 -1
  515. package/dist/docs/reference/model/Bounds3Options.md +110 -0
  516. package/dist/docs/reference/model/BoxEdge.md +1 -1
  517. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  518. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  519. package/dist/docs/reference/model/BoxOptions.md +3 -3
  520. package/dist/docs/reference/model/ButtressPressureFlankSide.md +15 -0
  521. package/dist/docs/reference/model/ButtressThreadProfileSpec.md +98 -0
  522. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  523. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  524. package/dist/docs/reference/model/CircleOptions.md +1 -1
  525. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -3
  526. package/dist/docs/reference/model/Computed.md +7 -3
  527. package/dist/docs/reference/model/ComputedValue.md +1 -1
  528. package/dist/docs/reference/model/Contour.md +1 -1
  529. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  530. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  531. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  532. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  533. package/dist/docs/reference/model/CurveSamplingOptions.md +68 -0
  534. package/dist/docs/reference/model/CustomThreadProfileSpec.md +78 -0
  535. package/dist/docs/reference/model/CylinderOptions.md +1 -1
  536. package/dist/docs/reference/model/DiagnosticOptions.md +15 -1
  537. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  538. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  539. package/dist/docs/reference/model/EllipseOptions.md +1 -1
  540. package/dist/docs/reference/model/EndTreatments.md +1 -1
  541. package/dist/docs/reference/model/ExtrudeMeshOptions.md +133 -0
  542. package/dist/docs/reference/model/ExtrudeOptions.md +17 -8
  543. package/dist/docs/reference/model/ExtrusionSamplingOptions.md +84 -0
  544. package/dist/docs/reference/model/Frame3.md +1 -1
  545. package/dist/docs/reference/model/GenerateCallback.md +5 -5
  546. package/dist/docs/reference/model/GenerateContext.md +15 -63
  547. package/dist/docs/reference/model/GenerationDiagnostic.md +13 -1
  548. package/dist/docs/reference/model/GenerationError.md +1 -1
  549. package/dist/docs/reference/model/GeometryError.md +102 -0
  550. package/dist/docs/reference/model/GeometryErrorCode.md +15 -0
  551. package/dist/docs/reference/model/GeometryErrorContext.md +35 -0
  552. package/dist/docs/reference/model/GeometryResolution.md +1 -1
  553. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  554. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  555. package/dist/docs/reference/model/GridPatternOptions.md +1 -1
  556. package/dist/docs/reference/model/HeightfieldOptions.md +3 -2
  557. package/dist/docs/reference/model/HoleCutterOptions.md +77 -0
  558. package/dist/docs/reference/model/HoleCutterOverrun.md +35 -0
  559. package/dist/docs/reference/model/HoleCutterRecess.md +87 -0
  560. package/dist/docs/reference/model/HullOptions.md +1 -1
  561. package/dist/docs/reference/model/ImmutableBuffer-type.md +27 -3
  562. package/dist/docs/reference/model/ImmutableTriangleMesh.md +8 -3
  563. package/dist/docs/reference/model/ImmutableValue.md +20 -0
  564. package/dist/docs/reference/model/ImplicitOptions.md +1 -1
  565. package/dist/docs/reference/model/InternalThreadCutterOptions.md +54 -84
  566. package/dist/docs/reference/model/KnuckleHinge-type.md +1 -1
  567. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +1 -1
  568. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +9 -5
  569. package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -3
  570. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +1 -1
  571. package/dist/docs/reference/model/KnuckleHingeSpec.md +1 -1
  572. package/dist/docs/reference/model/KnuckleHingeWeb.md +2 -2
  573. package/dist/docs/reference/model/LinearPatternOptions.md +1 -1
  574. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  575. package/dist/docs/reference/model/LoftOptions.md +3 -3
  576. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  577. package/dist/docs/reference/model/LoftStation.md +1 -1
  578. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  579. package/dist/docs/reference/model/ModelProgram.md +2 -2
  580. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  581. package/dist/docs/reference/model/NumericArray.md +1 -1
  582. package/dist/docs/reference/model/{GeneratedPart.md → PartDeclaration.md} +8 -23
  583. package/dist/docs/reference/model/PartGeometry.md +2 -2
  584. package/dist/docs/reference/model/PartOptions.md +8 -19
  585. package/dist/docs/reference/model/Path2-type.md +1 -1
  586. package/dist/docs/reference/model/Path2Data.md +1 -1
  587. package/dist/docs/reference/model/Path2Input.md +1 -1
  588. package/dist/docs/reference/model/Path3-type.md +1 -1
  589. package/dist/docs/reference/model/Path3Data.md +1 -1
  590. package/dist/docs/reference/model/Path3Input.md +1 -1
  591. package/dist/docs/reference/model/PathLocation.md +1 -1
  592. package/dist/docs/reference/model/PathNormalGuide.md +1 -1
  593. package/dist/docs/reference/model/PathOptions.md +1 -1
  594. package/dist/docs/reference/model/PathPatternOptions.md +1 -1
  595. package/dist/docs/reference/model/PathResamplingOptions.md +7 -6
  596. package/dist/docs/reference/model/PatternSource.md +1 -1
  597. package/dist/docs/reference/model/Pivot2Options.md +1 -1
  598. package/dist/docs/reference/model/Pivot3Options.md +1 -1
  599. package/dist/docs/reference/model/PlaneOptions.md +1 -1
  600. package/dist/docs/reference/model/PolygonData.md +1 -1
  601. package/dist/docs/reference/model/PolygonOptions.md +1 -1
  602. package/dist/docs/reference/model/PrimitiveAttachment.md +1 -3
  603. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +1 -1
  604. package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
  605. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
  606. package/dist/docs/reference/model/Profile.md +1 -1
  607. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  608. package/dist/docs/reference/model/ProfileContour2.md +1 -1
  609. package/dist/docs/reference/model/ProfileSpan2.md +1 -1
  610. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +1 -1
  611. package/dist/docs/reference/model/RadialPatternOptions.md +1 -1
  612. package/dist/docs/reference/model/RadialSizing.md +1 -1
  613. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  614. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  615. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  616. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  617. package/dist/docs/reference/model/RectangleOptions.md +3 -3
  618. package/dist/docs/reference/model/RegionData.md +1 -1
  619. package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
  620. package/dist/docs/reference/model/RevolveOptions.md +2 -2
  621. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  622. package/dist/docs/reference/model/Section.md +131 -6
  623. package/dist/docs/reference/model/SectionHullOptions.md +1 -1
  624. package/dist/docs/reference/model/SectionInspection.md +5 -17
  625. package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
  626. package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
  627. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  628. package/dist/docs/reference/model/Solid.md +245 -8
  629. package/dist/docs/reference/model/SolidInspection.md +5 -17
  630. package/dist/docs/reference/model/SolidSegmentHit.md +5 -1
  631. package/dist/docs/reference/model/SphereOptions.md +1 -1
  632. package/dist/docs/reference/model/SquareThreadProfileSpec.md +80 -0
  633. package/dist/docs/reference/model/StarContourOptions.md +81 -0
  634. package/dist/docs/reference/model/StarOptions.md +38 -16
  635. package/dist/docs/reference/model/StrokeCap.md +1 -1
  636. package/dist/docs/reference/model/StrokeJoin.md +1 -1
  637. package/dist/docs/reference/model/StrokeOptions.md +1 -1
  638. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  639. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  640. package/dist/docs/reference/model/SvgSectionOptions.md +14 -1
  641. package/dist/docs/reference/model/SweepOptions.md +1 -1
  642. package/dist/docs/reference/model/SweepOrientation.md +1 -1
  643. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  644. package/dist/docs/reference/model/ThreadBevelOptions.md +35 -0
  645. package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
  646. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
  647. package/dist/docs/reference/model/ThreadHandedness.md +1 -1
  648. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
  649. package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
  650. package/dist/docs/reference/model/ThreadProfile.md +2 -2
  651. package/dist/docs/reference/model/ThreadProfileBaseSpec.md +54 -0
  652. package/dist/docs/reference/model/ThreadProfileSpec.md +24 -0
  653. package/dist/docs/reference/model/ThreadRidgeOptions.md +126 -4
  654. package/dist/docs/reference/model/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +2 -2
  655. package/dist/docs/reference/model/ThreadedNutOptions.md +75 -86
  656. package/dist/docs/reference/model/ThreadedNutPreflight.md +18 -6
  657. package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
  658. package/dist/docs/reference/model/ThreadedRodOptions.md +54 -84
  659. package/dist/docs/reference/model/TorusOptions.md +1 -1
  660. package/dist/docs/reference/model/Transform2-type.md +1 -1
  661. package/dist/docs/reference/model/Transform2Data.md +1 -1
  662. package/dist/docs/reference/model/Transform2Input.md +1 -1
  663. package/dist/docs/reference/model/Transform3-type.md +1 -1
  664. package/dist/docs/reference/model/Transform3Data.md +1 -1
  665. package/dist/docs/reference/model/Transform3Input.md +1 -1
  666. package/dist/docs/reference/model/TrapezoidalThreadProfileSpec.md +97 -0
  667. package/dist/docs/reference/model/TriangleMesh.md +3 -11
  668. package/dist/docs/reference/model/TriangleMeshAnalysis.md +10 -4
  669. package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
  670. package/dist/docs/reference/model/TriangleMeshTopologyAnalysis.md +131 -0
  671. package/dist/docs/reference/model/TriangularThreadProfileSpec.md +96 -0
  672. package/dist/docs/reference/model/TubeOptions.md +10 -86
  673. package/dist/docs/reference/model/Vector2-type.md +1 -1
  674. package/dist/docs/reference/model/Vector2Data.md +1 -1
  675. package/dist/docs/reference/model/Vector2Input.md +1 -1
  676. package/dist/docs/reference/model/Vector3-type.md +1 -1
  677. package/dist/docs/reference/model/Vector3Data.md +1 -1
  678. package/dist/docs/reference/model/Vector3Input.md +1 -1
  679. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  680. package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
  681. package/dist/docs/reference/model/bounds2.md +7 -6
  682. package/dist/docs/reference/model/bounds3.md +7 -6
  683. package/dist/docs/reference/model/box.md +2 -2
  684. package/dist/docs/reference/model/categories/boolean-operations.md +6 -10
  685. package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -1
  686. package/dist/docs/reference/model/categories/bounds.md +6 -4
  687. package/dist/docs/reference/model/categories/contracts.md +3 -5
  688. package/dist/docs/reference/model/categories/core-values-errors.md +17 -3
  689. package/dist/docs/reference/model/categories/explicit-profiles.md +1 -1
  690. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +10 -8
  691. package/dist/docs/reference/model/categories/generation.md +8 -8
  692. package/dist/docs/reference/model/categories/hinges.md +2 -2
  693. package/dist/docs/reference/model/categories/mesh-inspection.md +15 -6
  694. package/dist/docs/reference/model/categories/paths.md +4 -3
  695. package/dist/docs/reference/model/categories/primitives.md +8 -4
  696. package/dist/docs/reference/model/categories/resolution.md +1 -1
  697. package/dist/docs/reference/model/categories/sections.md +4 -3
  698. package/dist/docs/reference/model/categories/threads.md +16 -6
  699. package/dist/docs/reference/model/categories/transforms-placement.md +2 -3
  700. package/dist/docs/reference/model/circle.md +1 -1
  701. package/dist/docs/reference/model/cylinder.md +1 -1
  702. package/dist/docs/reference/model/ellipse.md +1 -1
  703. package/dist/docs/reference/model/extrude.md +5 -4
  704. package/dist/docs/reference/model/generate.md +4 -4
  705. package/dist/docs/reference/model/gridPattern.md +1 -1
  706. package/dist/docs/reference/model/heightfield.md +1 -1
  707. package/dist/docs/reference/model/holeCutter.md +55 -0
  708. package/dist/docs/reference/model/hull.md +1 -1
  709. package/dist/docs/reference/model/immutableBuffer.md +5 -4
  710. package/dist/docs/reference/model/implicit.md +1 -1
  711. package/dist/docs/reference/model/internalThreadCutter.md +12 -20
  712. package/dist/docs/reference/model/intersect.md +3 -3
  713. package/dist/docs/reference/model/isGeometryError.md +34 -0
  714. package/dist/docs/reference/model/knuckleHinge.md +3 -3
  715. package/dist/docs/reference/model/linearPattern.md +1 -1
  716. package/dist/docs/reference/model/loft.md +6 -5
  717. package/dist/docs/reference/model/matchProfiles.md +1 -1
  718. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  719. package/dist/docs/reference/model/path2.md +1 -1
  720. package/dist/docs/reference/model/path3.md +1 -1
  721. package/dist/docs/reference/model/pathPattern.md +1 -1
  722. package/dist/docs/reference/model/polygon.md +1 -1
  723. package/dist/docs/reference/model/preflightInternalThreadCutter.md +15 -23
  724. package/dist/docs/reference/model/preflightThreadedNut.md +22 -25
  725. package/dist/docs/reference/model/preflightThreadedRod.md +15 -23
  726. package/dist/docs/reference/model/radialPattern.md +1 -1
  727. package/dist/docs/reference/model/rectangle.md +2 -2
  728. package/dist/docs/reference/model/regularPolygon.md +1 -1
  729. package/dist/docs/reference/model/revolve.md +6 -5
  730. package/dist/docs/reference/model/solidFromMesh.md +7 -6
  731. package/dist/docs/reference/model/sphere.md +1 -1
  732. package/dist/docs/reference/model/star.md +7 -7
  733. package/dist/docs/reference/model/stroke.md +1 -1
  734. package/dist/docs/reference/model/svgPathSection.md +1 -1
  735. package/dist/docs/reference/model/svgSection.md +5 -1
  736. package/dist/docs/reference/model/sweep.md +5 -4
  737. package/dist/docs/reference/model/textSection.md +1 -1
  738. package/dist/docs/reference/model/threadRidge.md +14 -14
  739. package/dist/docs/reference/model/threadedNut.md +22 -25
  740. package/dist/docs/reference/model/threadedRod.md +12 -20
  741. package/dist/docs/reference/model/torus.md +1 -1
  742. package/dist/docs/reference/model/transform2.md +1 -1
  743. package/dist/docs/reference/model/transform3.md +1 -1
  744. package/dist/docs/reference/model/tube.md +1 -36
  745. package/dist/docs/reference/model/union.md +3 -3
  746. package/dist/docs/reference/model/vector2.md +1 -1
  747. package/dist/docs/reference/model/vector3.md +1 -1
  748. package/dist/docs/reference/model.md +15 -19
  749. package/dist/docs/reference/text/Bounds2Data.md +1 -1
  750. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
  751. package/dist/docs/reference/text/Vector2Data.md +1 -1
  752. package/dist/docs/reference/text/VectorFont.md +1 -1
  753. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  754. package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
  755. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  756. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  757. package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
  758. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  759. package/dist/docs/reference/text/categories/font-preparation.md +3 -3
  760. package/dist/docs/reference/text/prepareVectorFont.md +1 -1
  761. package/dist/docs/reference/text.md +4 -4
  762. package/dist/engine/execution.js +10 -6
  763. package/dist/engine/export-3mf.js +22 -115
  764. package/dist/engine/finalization.js +10 -10
  765. package/dist/engine/index.js +25 -31
  766. package/dist/engine/model-parts.js +8 -0
  767. package/dist/engine/model-summary.js +5 -5
  768. package/dist/engine/native/index.js +1 -1
  769. package/dist/engine/native/material-components.js +3 -3
  770. package/dist/engine/native/operations.js +0 -7
  771. package/dist/engine/native/scoped-primitives.js +5 -4
  772. package/dist/engine/native/threads.js +14 -14
  773. package/dist/engine/{construction-operations.js → operations/construction.js} +25 -23
  774. package/dist/engine/{modeling-context.js → operations/context.js} +21 -9
  775. package/dist/engine/{operation-environment.js → operations/environment.js} +2 -2
  776. package/dist/engine/{extrusion-finishing.js → operations/extrusion-finishing.js} +8 -35
  777. package/dist/engine/operations/hole-cutter.js +148 -0
  778. package/dist/engine/{inspection-operations.js → operations/inspection.js} +6 -6
  779. package/dist/engine/operations/knuckle-hinge.js +128 -0
  780. package/dist/engine/{loft-operations.js → operations/loft.js} +13 -12
  781. package/dist/engine/{mechanical-operations.js → operations/mechanical.js} +2 -2
  782. package/dist/engine/{pattern-operations.js → operations/patterns.js} +4 -4
  783. package/dist/engine/{primitive-anchors.js → operations/primitives/anchors.js} +9 -4
  784. package/dist/engine/{primitive-operations.js → operations/primitives/construction.js} +36 -24
  785. package/dist/engine/{primitive-correspondence.js → operations/primitives/correspondence.js} +4 -4
  786. package/dist/engine/{profile-mesh.js → operations/primitives/profile-mesh.js} +12 -12
  787. package/dist/engine/{primitive-profiles.js → operations/primitives/profiles.js} +7 -7
  788. package/dist/engine/{section-operations.js → operations/sections.js} +9 -9
  789. package/dist/engine/{transform-operations.js → operations/transforms.js} +8 -8
  790. package/dist/engine/placement.js +3 -4
  791. package/dist/engine/recipe-realization.js +1 -1
  792. package/dist/engine/serialize-3mf.js +116 -0
  793. package/dist/engine/{deferred-context.js → session/deferred-context.js} +4 -4
  794. package/dist/engine/{model-dependencies.js → session/dependencies.js} +1 -1
  795. package/dist/engine/{session-graph.js → session/graph.js} +13 -11
  796. package/dist/engine/{session-native.js → session/native-cache.js} +1 -1
  797. package/dist/engine/{session.js → session/session.js} +16 -10
  798. package/dist/engine/{session-snapshot.js → session/snapshot-cache.js} +29 -59
  799. package/dist/geometry/anchors.js +4 -11
  800. package/dist/geometry/bounds-value.js +49 -11
  801. package/dist/geometry/bounds.js +0 -17
  802. package/dist/geometry/circular-sampling.js +45 -0
  803. package/dist/geometry/convex-offset.js +41 -0
  804. package/dist/geometry/heightfield.js +10 -12
  805. package/dist/{model → geometry}/immutable-buffer.js +28 -7
  806. package/dist/geometry/index.js +18 -23
  807. package/dist/geometry/loft/loft.js +11 -6
  808. package/dist/geometry/math/immutable-value.js +1 -1
  809. package/dist/geometry/mechanical/index.js +5 -5
  810. package/dist/geometry/mechanical/threads/bevel.js +24 -0
  811. package/dist/geometry/mechanical/{threads.js → threads/fit.js} +4 -4
  812. package/dist/geometry/mechanical/{thread-helices.js → threads/helices.js} +3 -3
  813. package/dist/geometry/mechanical/{thread-mesh-plan.js → threads/mesh-plan.js} +38 -53
  814. package/dist/geometry/mechanical/{thread-mesh.js → threads/mesh.js} +9 -9
  815. package/dist/geometry/mechanical/{thread-profiles.js → threads/profiles.js} +3 -3
  816. package/dist/geometry/mechanical/{thread-solids.js → threads/solids.js} +58 -89
  817. package/dist/geometry/mechanical/{thread-surface.js → threads/surface.js} +7 -8
  818. package/dist/geometry/mesh/mesh-centroid.js +3 -2
  819. package/dist/geometry/mesh/mesh-planar.js +27 -8
  820. package/dist/geometry/mesh/mesh-quality.js +2 -1
  821. package/dist/geometry/mesh/mesh-signature.js +7 -6
  822. package/dist/geometry/mesh/mesh-solid.js +2 -3
  823. package/dist/geometry/mesh/mesh-types.js +1 -0
  824. package/dist/geometry/mesh/mesh.js +13 -22
  825. package/dist/geometry/mesh-api.js +14 -0
  826. package/dist/geometry/primitive-resolvers.js +42 -14
  827. package/dist/geometry/profiles/primitives/circle.js +19 -0
  828. package/dist/geometry/profiles/{shapes.js → primitives/ellipse.js} +6 -10
  829. package/dist/geometry/profiles/{rectangle.js → primitives/rectangle.js} +14 -12
  830. package/dist/geometry/profiles/primitives/regular-polygon.js +33 -0
  831. package/dist/geometry/profiles/primitives/star.js +28 -0
  832. package/dist/geometry/revolve/revolve-mesh.js +1 -1
  833. package/dist/geometry/{svg-import.js → svg/import.js} +141 -59
  834. package/dist/geometry/svg/matrix.js +21 -0
  835. package/dist/geometry/sweeps/sweep-mesh.js +1 -1
  836. package/dist/geometry/transform3.js +29 -0
  837. package/dist/index.js +2 -1
  838. package/dist/model/diagnostic-path.js +26 -0
  839. package/dist/model/execution-binding.js +3 -3
  840. package/dist/model/generation.js +8 -2
  841. package/dist/model/geometry-recipes.js +1 -1
  842. package/dist/model/hole-cutter.js +1 -0
  843. package/dist/model/immutable-generation-data.js +33 -2
  844. package/dist/model/operations.js +35 -144
  845. package/dist/model/recipe-declaration.js +7 -2
  846. package/dist/model/shape-handles.js +30 -7
  847. package/dist/text/index.js +1 -1
  848. package/package.json +21 -11
  849. package/dist/docs/reference/engine/ModelSnapshot.md +0 -184
  850. package/dist/docs/reference/engine/SnapshotPart.md +0 -133
  851. package/dist/docs/reference/engine/validateModel.md +0 -48
  852. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +0 -24
  853. package/dist/docs/reference/geometry/ThreadedNutBevel.md +0 -14
  854. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +0 -61
  855. package/dist/docs/reference/geometry/boundsFromSize.md +0 -84
  856. package/dist/docs/reference/geometry/containsBounds.md +0 -73
  857. package/dist/docs/reference/geometry/extrudeMesh.md +0 -77
  858. package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +0 -72
  859. package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +0 -106
  860. package/dist/docs/reference/geometry/meshBounds.md +0 -39
  861. package/dist/docs/reference/geometry/optimizePlanarPatches.md +0 -95
  862. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +0 -105
  863. package/dist/docs/reference/geometry/sweepMesh.md +0 -86
  864. package/dist/docs/reference/model/FinalizedModel.md +0 -131
  865. package/dist/docs/reference/model/FinalizedPart.md +0 -87
  866. package/dist/docs/reference/model/anchor.md +0 -47
  867. package/dist/docs/reference/model/castSegment.md +0 -40
  868. package/dist/docs/reference/model/categories/inspection.md +0 -29
  869. package/dist/docs/reference/model/components.md +0 -71
  870. package/dist/docs/reference/model/compose.md +0 -31
  871. package/dist/docs/reference/model/distance.md +0 -45
  872. package/dist/docs/reference/model/immutableMesh.md +0 -44
  873. package/dist/docs/reference/model/inspectSection.md +0 -38
  874. package/dist/docs/reference/model/inspectSolid.md +0 -38
  875. package/dist/docs/reference/model/isEmpty.md +0 -39
  876. package/dist/docs/reference/model/split.md +0 -54
  877. package/dist/docs/reference/model/splitByPlane.md +0 -66
  878. package/dist/engine/knuckle-hinge-operation.js +0 -85
  879. package/dist/geometry/profiles/profiles.js +0 -91
  880. /package/dist/engine/{primitive-profile-types.js → operations/primitives/profile-types.js} +0 -0
  881. /package/dist/geometry/profiles/{matched.js → match-profiles.js} +0 -0
@@ -50,37 +50,6 @@ export declare interface AlignedCircularSegmentsOptions {
50
50
  readonly resolution?: GeometryResolution;
51
51
  }
52
52
 
53
- /**
54
- * Validates and measures a mesh in one position and one triangle traversal.
55
- *
56
- * Bounds, area in square model units and signed volume in cubic model units are computed without
57
- * copying or changing the input buffers. Volume is meaningful for consistently wound closed
58
- * geometry; `requireClosed` checks oriented edge closure. Optional indexed topology counts require
59
- * every position vertex to be referenced and do not establish freedom from self-intersections.
60
- * Results and nested bounds are immutable snapshots. Caller-owned mutable meshes are freshly
61
- * inspected on every call, never cached.
62
- */
63
- export declare function analyzeTriangleMesh(
64
- mesh: TriangleMesh,
65
- options?: TriangleMeshAnalysisOptions,
66
- ): TriangleMeshAnalysis;
67
-
68
- /**
69
- * Measures triangle shape, edge topology, vertex concentration, and connected planar patches.
70
- *
71
- * Positions are never welded: valence and manifold status describe the supplied indexed topology.
72
- * Degenerate triangles are reported rather than rejected, while malformed buffers, non-finite
73
- * positions, missing vertex references, and the configured complexity limit throw.
74
- *
75
- * @param mesh - Indexed triangle mesh in arbitrary consistent model units.
76
- * @param options - Scale-aware tolerance and analysis budget.
77
- * @returns A deterministic report without mutating or copying the mesh.
78
- */
79
- export declare function analyzeTriangleMeshQuality(
80
- mesh: TriangleMesh,
81
- options?: TriangleMeshQualityOptions,
82
- ): TriangleMeshQualityReport;
83
-
84
53
  /**
85
54
  * An attachment pose on a solid or assembly.
86
55
  *
@@ -235,6 +204,13 @@ export declare type AxisAngleRotation3 =
235
204
  readonly degrees?: never;
236
205
  };
237
206
 
207
+ /** One size for both ends, or independent sizes in bottom/top order. Zero disables an end. */
208
+ export declare type Bevel =
209
+ BevelSize | readonly [bottom: BevelSize, top: BevelSize];
210
+
211
+ /** Nonnegative 45-degree axial/radial bevel size in millimetres, or factory automatic sizing. */
212
+ export declare type BevelSize = number | "auto";
213
+
238
214
  /** Immutable finite XY bounds in millimetres, with tuple coordinates for data interoperability. */
239
215
  export declare interface Bounds2 extends Bounds2Data {
240
216
  /** Returns nonnegative X/Y dimensions in millimetres, including zero extents. */
@@ -248,14 +224,15 @@ export declare interface Bounds2 extends Bounds2Data {
248
224
  }
249
225
 
250
226
  /**
251
- * Snapshots finite ordered XY bounds in millimetres as an immutable fluent value.
227
+ * Constructs immutable finite XY bounds from ordered extrema or nonnegative size in millimetres.
252
228
  *
253
229
  * Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
254
230
  * overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
231
+ * Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
255
232
  * Compiled Generator packages passing these values to host recipes or computed data require
256
- * runtime 8.0.0 or newer in major 8.
233
+ * runtime 10.0.0 or newer in major 10.
257
234
  */
258
- export declare function bounds2(input: Bounds2Input): Bounds2;
235
+ export declare function bounds2(input: Bounds2Options | Bounds2): Bounds2;
259
236
 
260
237
  /** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
261
238
  export declare interface Bounds2Data {
@@ -268,6 +245,29 @@ export declare interface Bounds2Data {
268
245
  /** An immutable XY bounds value or its plain min/max representation. */
269
246
  export declare type Bounds2Input = Bounds2 | Bounds2Data;
270
247
 
248
+ /** XY bounds construction from existing extrema or nonnegative dimensions, never both. */
249
+ export declare type Bounds2Options =
250
+ | {
251
+ /** Inclusive minimum XY coordinates in millimetres. */
252
+ readonly min: Vector2Input;
253
+ /** Inclusive maximum XY coordinates in millimetres. */
254
+ readonly max: Vector2Input;
255
+ /** Size construction cannot be combined with extrema. */
256
+ readonly size?: never;
257
+ /** Center applies only to size construction. */
258
+ readonly center?: never;
259
+ }
260
+ | {
261
+ /** Nonnegative XY dimensions in millimetres. */
262
+ readonly size: Vector2Input;
263
+ /** Center on the origin; false starts at the origin. Defaults to true. */
264
+ readonly center?: boolean;
265
+ /** Minimum coordinates are unavailable when size is supplied. */
266
+ readonly min?: never;
267
+ /** Maximum coordinates are unavailable when size is supplied. */
268
+ readonly max?: never;
269
+ };
270
+
271
271
  /** Immutable finite XYZ bounds in millimetres, with tuple coordinates for data interoperability. */
272
272
  export declare interface Bounds3 extends Bounds3Data {
273
273
  /** Returns nonnegative X/Y/Z dimensions in millimetres, including zero extents. */
@@ -281,14 +281,15 @@ export declare interface Bounds3 extends Bounds3Data {
281
281
  }
282
282
 
283
283
  /**
284
- * Snapshots finite ordered XYZ bounds in millimetres as an immutable fluent value.
284
+ * Constructs immutable finite XYZ bounds from ordered extrema or nonnegative size in millimetres.
285
285
  *
286
286
  * Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
287
287
  * overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
288
+ * Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
288
289
  * Compiled Generator packages passing these values to host recipes or computed data require
289
- * runtime 8.0.0 or newer in major 8.
290
+ * runtime 10.0.0 or newer in major 10.
290
291
  */
291
- export declare function bounds3(input: Bounds3Input): Bounds3;
292
+ export declare function bounds3(input: Bounds3Options | Bounds3): Bounds3;
292
293
 
293
294
  /** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
294
295
  export declare interface Bounds3Data {
@@ -301,6 +302,29 @@ export declare interface Bounds3Data {
301
302
  /** An immutable XYZ bounds value or its plain min/max representation. */
302
303
  export declare type Bounds3Input = Bounds3 | Bounds3Data;
303
304
 
305
+ /** XYZ bounds construction from existing extrema or nonnegative dimensions, never both. */
306
+ export declare type Bounds3Options =
307
+ | {
308
+ /** Inclusive minimum XYZ coordinates in millimetres. */
309
+ readonly min: Vector3Input;
310
+ /** Inclusive maximum XYZ coordinates in millimetres. */
311
+ readonly max: Vector3Input;
312
+ /** Size construction cannot be combined with extrema. */
313
+ readonly size?: never;
314
+ /** Center applies only to size construction. */
315
+ readonly center?: never;
316
+ }
317
+ | {
318
+ /** Nonnegative XYZ dimensions in millimetres. */
319
+ readonly size: Vector3Input;
320
+ /** Center on the origin; false starts at the origin. Defaults to true. */
321
+ readonly center?: boolean;
322
+ /** Minimum coordinates are unavailable when size is supplied. */
323
+ readonly min?: never;
324
+ /** Maximum coordinates are unavailable when size is supplied. */
325
+ readonly max?: never;
326
+ };
327
+
304
328
  /** Midpoint of finite XY bounds in millimetres. */
305
329
  export declare function boundsCenter(bounds: Bounds2Data): Vector2Data;
306
330
 
@@ -333,24 +357,6 @@ export declare interface BoundsFitOptions {
333
357
  readonly maxScale?: number;
334
358
  }
335
359
 
336
- /** Creates immutable centered XY bounds from nonnegative dimensions in millimetres. */
337
- export declare function boundsFromSize(
338
- size: Vector2Data,
339
- options?: BoundsFromSizeOptions,
340
- ): Bounds2Data;
341
-
342
- /** Creates immutable centered XYZ bounds from nonnegative dimensions in millimetres. */
343
- export declare function boundsFromSize(
344
- size: Vector3Data,
345
- options?: BoundsFromSizeOptions,
346
- ): Bounds3Data;
347
-
348
- /** Placement of bounds constructed from nonnegative millimetre dimensions. */
349
- export declare interface BoundsFromSizeOptions {
350
- /** Center on the origin; false starts at the origin. Defaults to true. */
351
- readonly center?: boolean;
352
- }
353
-
354
360
  /** Inclusive XY dimensions in millimetres; zero extents are retained. */
355
361
  export declare function boundsSize(bounds: Bounds2Data): Vector2Data;
356
362
 
@@ -370,13 +376,13 @@ export declare type BoxAnchorFace =
370
376
  /** Box dimensions and construction origin for one named face anchor. */
371
377
  export declare interface BoxAnchorOptions {
372
378
  /** XYZ dimensions, or one uniform dimension, in millimetres. */
373
- readonly size: number | Vector3Data;
379
+ readonly size: number | Vector3Input;
374
380
  /** Named outward face whose center is the attachment point. */
375
381
  readonly face: BoxAnchorFace;
376
382
  /** Centers the box around its construction origin; defaults to true, matching box(). */
377
383
  readonly center?: boolean;
378
384
  /** Construction origin; centered-box center or noncentered minimum corner. Defaults to zero. */
379
- readonly origin?: Vector3Data;
385
+ readonly origin?: Vector3Input;
380
386
  }
381
387
 
382
388
  /** Box edges use +Z top, +Y front and +X right; vertical names list front/back first. */
@@ -414,7 +420,7 @@ export declare interface BoxOptions extends PrimitiveAttachment {
414
420
  */
415
421
  readonly center?: boolean;
416
422
  /** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
417
- readonly size: number | Vector3Data;
423
+ readonly size: number | Vector3Input;
418
424
  /** Uniform treatment or independent disjoint nominal edge/group treatments. */
419
425
  readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
420
426
  }
@@ -459,20 +465,18 @@ export declare interface ChamferedEdgeTreatment {
459
465
  */
460
466
  export declare const circleContour: (options: CircleContourOptions) => Contour;
461
467
 
462
- /**
463
- * Circular profile dimensions with exactly one radius or diameter and explicit sampling.
464
- */
468
+ /** Circular profile dimensions with exactly one radius or diameter and explicit sampling. */
465
469
  export declare type CircleContourOptions = CircularPrimitiveOptions &
466
470
  RadialSizingOptions &
467
471
  (
468
472
  | {
469
- /** Positive nominal radius in millimetres; mutually exclusive with diameter. */
473
+ /** Positive nominal radius in millimetres. */
470
474
  readonly radius: number;
471
- /** Full diameter is unavailable when radius is supplied. */
475
+ /** Diameter is unavailable when radius is supplied. */
472
476
  readonly diameter?: never;
473
477
  }
474
478
  | {
475
- /** Positive full diameter in millimetres; mutually exclusive with radius. */
479
+ /** Positive nominal diameter in millimetres. */
476
480
  readonly diameter: number;
477
481
  /** Radius is unavailable when diameter is supplied. */
478
482
  readonly radius?: never;
@@ -502,6 +506,19 @@ export declare interface CircularResolutionOptions extends GeometryResolution {
502
506
  readonly sizing?: RadialSizing;
503
507
  }
504
508
 
509
+ /** Full-circle count and radial envelopes of its regular sampled polygon, in millimetres. */
510
+ export declare interface CircularSampling {
511
+ /** Exact resolved full-circle segment count. */
512
+ readonly segments: number;
513
+ /** Distance from the origin to every sampled vertex. */
514
+ readonly vertexRadius: number;
515
+ /** Minimum distance from the origin to each straight sampled edge. */
516
+ readonly faceRadius: number;
517
+ }
518
+
519
+ /** Nominal circle size and explicit physical sampling; supply exactly one radius or diameter. */
520
+ export declare type CircularSamplingOptions = CircleContourOptions;
521
+
505
522
  /** Close, normal, and loose metric clearance-hole diameters in millimetres. */
506
523
  export declare interface ClearanceHoleDimensions {
507
524
  /** Close-fit clearance-hole diameter. */
@@ -627,49 +644,6 @@ export declare const computeParallelTransportFrames: (
627
644
  limits?: Partial<GeometrySamplingLimits>,
628
645
  ) => readonly PathFrame[];
629
646
 
630
- /**
631
- * Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells.
632
- *
633
- * Coordinates are millimetres. Indexed closure and positive aggregate volume are required; callers
634
- * may use validateSolidMesh first when geometric intersections and shell orientation are untrusted.
635
- * Fresh mutable input is inspected on every call, and buffers are never changed.
636
- *
637
- * @param mesh - Consistently oriented closed mesh with positive enclosed volume.
638
- * @returns A fresh immutable XYZ volume centroid.
639
- */
640
- export declare function computeTriangleMeshCentroid(
641
- mesh: TriangleMesh,
642
- ): Vector3Data;
643
-
644
- /**
645
- * Creates an order-independent regression signature for a manufacturing mesh.
646
- *
647
- * The input must be non-empty, closed, consistently wound, and have no unreferenced vertices.
648
- * Vertex and triangle order do not affect the fingerprint; winding, quantized geometry, and
649
- * connectivity metrics do. The fingerprint is a regression aid, not a cryptographic digest.
650
- *
651
- * @param mesh - Closed oriented mesh to measure without mutation.
652
- * @param options - Absolute quantization and complexity limits.
653
- * @returns Compact counts, bounds, volume, topology, tolerances, and canonical fingerprint.
654
- * @throws {@link GeometryError} When validation, topology, tolerance, or complexity checks fail.
655
- */
656
- export declare function computeTriangleMeshSignature(
657
- mesh: TriangleMesh,
658
- options?: TriangleMeshSignatureOptions,
659
- ): TriangleMeshSignature;
660
-
661
- /** Tests actual XY containment, including touching boundaries; dimensions must match. */
662
- export declare function containsBounds(
663
- outer: Bounds2Data,
664
- inner: Bounds2Data,
665
- ): boolean;
666
-
667
- /** Tests actual XYZ containment, including touching boundaries; dimensions must match. */
668
- export declare function containsBounds(
669
- outer: Bounds3Data,
670
- inner: Bounds3Data,
671
- ): boolean;
672
-
673
647
  /**
674
648
  * A sampled closed two-dimensional boundary whose first point is not repeated at the end.
675
649
  *
@@ -854,7 +828,7 @@ export declare interface CylinderAnchorOptions {
854
828
  /** Centers the cylinder along Z; defaults to true, matching cylinder(). */
855
829
  readonly center?: boolean;
856
830
  /** Construction origin; centered-axis midpoint or noncentered bottom axis. Defaults to zero. */
857
- readonly origin?: Vector3Data;
831
+ readonly origin?: Vector3Input;
858
832
  }
859
833
 
860
834
  /**
@@ -1091,13 +1065,13 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
1091
1065
  (
1092
1066
  | {
1093
1067
  /** Positive XY radii in millimetres; mutually exclusive with size. */
1094
- readonly radius: Vector2Data;
1068
+ readonly radius: Vector2Input;
1095
1069
  /** Full XY extents are unavailable when radius is supplied. */
1096
1070
  readonly size?: never;
1097
1071
  }
1098
1072
  | {
1099
1073
  /** Positive full XY extents in millimetres; mutually exclusive with radius. */
1100
- readonly size: Vector2Data;
1074
+ readonly size: Vector2Input;
1101
1075
  /** XY radii are unavailable when size is supplied. */
1102
1076
  readonly radius?: never;
1103
1077
  }
@@ -1129,28 +1103,17 @@ export declare function eulerTransform3(
1129
1103
  ): Transform3Data;
1130
1104
 
1131
1105
  /**
1132
- * Linearly extrudes one simple profile along +Z with robust ear-clipped caps.
1133
- * Path2 profiles must be closed; raw point collections have an implicit closing edge.
1134
- *
1135
- * @example Extrude point data without an engine
1136
- * ```ts
1137
- * const outline = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
1138
- * extrudeMesh(outline, { height: 8 });
1139
- * ```
1106
+ * Dimensions and sampling for pure +Z mesh extrusion, without end treatments.
1140
1107
  */
1141
- export declare function extrudeMesh(
1142
- input: Path2Input,
1143
- options: ExtrudeOptions,
1144
- ): TriangleMesh;
1145
-
1146
- /**
1147
- * Dimensions and sampling shared by native and pure +Z extrusion.
1148
- */
1149
- export declare interface ExtrudeOptions extends ExtrusionSamplingOptions {
1108
+ export declare interface ExtrudeMeshOptions extends ExtrusionSamplingOptions {
1150
1109
  /** Positive extrusion height in millimetres. */
1151
1110
  readonly height: number;
1152
1111
  /** Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false. */
1153
1112
  readonly center?: boolean;
1113
+ }
1114
+
1115
+ /** Native +Z extrusion with optional inward end treatments. */
1116
+ export declare interface ExtrudeOptions extends ExtrudeMeshOptions {
1154
1117
  /** Independent inward end treatments on straight convex single-contour extrusions. */
1155
1118
  readonly ends?: EndTreatments;
1156
1119
  }
@@ -1370,28 +1333,6 @@ export declare function gridPatternTransforms(
1370
1333
  options: GridPatternOptions,
1371
1334
  ): readonly Transform3Data[];
1372
1335
 
1373
- /**
1374
- * Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base.
1375
- *
1376
- * Heights run once per grid point after preflight; center-error adds one evaluation per cell.
1377
- * Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit
1378
- * Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks.
1379
- *
1380
- * @see {@link preflightHeightfield}
1381
- *
1382
- * @example Sample a closed wavy mesh
1383
- * ```ts
1384
- * heightfieldMesh({
1385
- * size: [30, 20], segments: [24, 16],
1386
- * height: ([x, y]) => 3 + Math.cos(x / 5) * Math.cos(y / 5),
1387
- * });
1388
- * ```
1389
- */
1390
- export declare function heightfieldMesh(
1391
- options: HeightfieldOptions,
1392
- limits?: HeightfieldMeshLimits,
1393
- ): TriangleMesh;
1394
-
1395
1336
  /** Trusted output ceilings for pure construction; omitted fields use engine defaults. */
1396
1337
  export declare type HeightfieldMeshLimits = Partial<
1397
1338
  Pick<ModelingLimits, "maxVertices" | "maxTriangles" | "maxBytes">
@@ -1421,11 +1362,11 @@ export declare type HeightfieldOptions = {
1421
1362
  } & (
1422
1363
  | {
1423
1364
  /** Positive XY footprint for uniform sampling. */
1424
- readonly size: Vector2Data;
1365
+ readonly size: Vector2Input;
1425
1366
  /** Exact positive integer X/Y interval counts. */
1426
1367
  readonly segments: readonly [x: number, y: number];
1427
1368
  /** Lower-left footprint XY. Omitted centers the footprint on XY. */
1428
- readonly origin?: Vector2Data;
1369
+ readonly origin?: Vector2Input;
1429
1370
  /** Explicit coordinates cannot be combined with uniform sampling. */
1430
1371
  readonly coordinates?: never;
1431
1372
  }
@@ -1461,93 +1402,55 @@ export declare interface HeightfieldPreflight {
1461
1402
  readonly byteCount: number;
1462
1403
  }
1463
1404
 
1464
- /**
1465
- * Builds closed thread-ridge components with every profile locked to the
1466
- * shaft's radial/axial frame. The mesh is intended for union with its
1467
- * minor-envelope cylinder and never owns WASM objects.
1468
- */
1469
- export declare function helicalThreadRidgeMesh(
1470
- options: HelicalThreadRidgeMeshOptions,
1471
- ): TriangleMesh;
1405
+ /** Identity transform, safe to share because it is frozen. */
1406
+ export declare const IDENTITY_TRANSFORM3: Transform3Data;
1472
1407
 
1473
- /** Runtime-neutral options for the dedicated helical ridge mesher. */
1474
- export declare interface HelicalThreadRidgeMeshOptions {
1475
- /**
1476
- * Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
1477
- * BOSL2-style non-cut lead-in scaling is available on complete thread solids.
1478
- */
1479
- readonly ends?: ThreadEndTreatmentOptions;
1480
- /** Helix direction. Default: `right`. */
1481
- readonly handedness?: ThreadHandedness;
1482
- /** Total threaded axial length in millimetres. */
1408
+ /** Owned immutable numeric data. Iterate without copying; use copy() for mutable storage. */
1409
+ export declare interface ImmutableBuffer<
1410
+ T extends NumericArray,
1411
+ > extends Iterable<number> {
1412
+ /** Opaque element-storage brand; construct buffers with immutableBuffer(). */
1413
+ readonly [immutableBufferBrand]: T;
1414
+ /** Number of numeric elements, independent of their byte width. */
1483
1415
  readonly length: number;
1484
- /** Explicit output and circular allocation ceilings. */
1485
- readonly limits?: Partial<ModelingLimits>;
1486
- /** Nominal major diameter before any caller-owned fit compensation. */
1487
- readonly majorDiameter: number;
1488
- /** Angular offset of the first start in degrees. Default: `0`. */
1489
- readonly phase?: number;
1490
- /** Validated periodic profile repeated around the shaft. */
1491
- readonly profile: ThreadProfile;
1492
- /** Optional circular-resolution policy. */
1493
- readonly resolution?: GeometryResolution;
1494
- /** Number of evenly phased starts. Default: `1`. */
1495
- readonly starts?: number;
1496
- /** Optional numerical tolerance overrides. */
1497
- readonly tolerance?: GeometryToleranceOptions;
1416
+ /** Reads an integer offset; negative offsets count from the end. Invalid offsets return undefined. */
1417
+ at(this: void, index: number): number | undefined;
1418
+ /** Returns a fresh mutable array of the original numeric type; never exposes cached storage. */
1419
+ copy(this: void): T;
1420
+ /** Returns an independent read-only iterator over the numeric elements without copying them. */
1421
+ [Symbol.iterator](this: void): IterableIterator<number>;
1498
1422
  }
1499
1423
 
1500
1424
  /**
1501
- * Builds one closed threaded cylinder without a ridge/core Boolean seam.
1502
- *
1503
- * Each circular facet includes its exact phase-shifted profile breakpoints, including duplicate-Z
1504
- * samples for vertical flanks and blunt transitions. Adjacent variable grids are stitched as a
1505
- * monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
1506
- * conservative pre-allocation estimate rejects excessive meshes before constructing position
1507
- * arrays.
1425
+ * Copies numeric data once into private storage. This pure helper needs no active generation.
1426
+ * @example
1427
+ * ```ts
1428
+ * import { immutableBuffer } from "@metamesh/modeling";
1429
+ * const heights = immutableBuffer(new Float32Array([2, 4, 6]));
1430
+ * const count = heights.length;
1431
+ * const first = heights.at(0);
1432
+ * const doubled = Array.from(heights, (height) => height * 2);
1433
+ * const editable = heights.copy();
1434
+ * editable[0] = 8; // heights still contains 2, 4, 6.
1435
+ * ```
1508
1436
  */
1509
- export declare function helicalThreadSolidMesh(
1510
- options: HelicalThreadSolidMeshOptions,
1511
- ): TriangleMesh;
1437
+ export declare function immutableBuffer<T extends NumericArray>(
1438
+ source: T,
1439
+ ): ImmutableBuffer<T>;
1512
1440
 
1513
- /** Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. */
1514
- export declare interface HelicalThreadSolidMeshOptions extends HelicalThreadRidgeMeshOptions {
1515
- /** Apply a 45-degree radial bevel at the lower target face. */
1516
- readonly bevelBottom?: boolean;
1517
- /** Lower bevel size override. Takes precedence over `bevelSize`. */
1518
- readonly bevelBottomSize?: number;
1519
- /** Distance of each bevel target face inward from the corresponding mesh end. */
1520
- readonly bevelOffset?: number;
1521
- /** `inset` trims an external rod; `outset` expands an internal cutter. */
1522
- readonly bevelMode?: "inset" | "outset";
1523
- /** Axial and radial bevel size. Defaults to the profile depth. */
1524
- readonly bevelSize?: number;
1525
- /** Apply a 45-degree radial bevel at the upper target face. */
1526
- readonly bevelTop?: boolean;
1527
- /** Upper bevel size override. Takes precedence over `bevelSize`. */
1528
- readonly bevelTopSize?: number;
1529
- }
1441
+ declare const immutableBufferBrand: unique symbol;
1530
1442
 
1531
- /** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
1532
- export declare interface HelicalThreadSolidMeshPreflight {
1533
- /** Uniform axial intervals required only by a requested physical segment-length limit. */
1534
- readonly axialIntervals: number;
1535
- /** Start-aligned full-circle segment count used by the surface mesh. */
1536
- readonly circularSegments: number;
1537
- /** Conservative surface-row count across profile breaks, ends, and bevel stations. */
1538
- readonly estimatedRows: number;
1539
- /** Conservative triangle count used by the selected output allocation policy. */
1540
- readonly estimatedTriangles: number;
1443
+ /** Immutable local XYZ positions and triangle indices, suitable for a computed value or part. */
1444
+ export declare interface ImmutableTriangleMesh {
1445
+ /** Packed XYZ coordinates in millimetres. */
1446
+ readonly positions: ImmutableBuffer<Float32Array>;
1447
+ /** Zero-based vertex indices, three per triangle. */
1448
+ readonly indices: ImmutableBuffer<Uint32Array>;
1541
1449
  }
1542
1450
 
1543
- /** Identity transform, safe to share because it is frozen. */
1544
- export declare const IDENTITY_TRANSFORM3: Transform3Data;
1545
-
1546
1451
  /** Options for a compensated internal-thread subtraction tool along +Z. */
1547
1452
  export declare interface InternalThreadCutterOptions
1548
- extends
1549
- Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
1550
- ThreadBevelOptions {
1453
+ extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
1551
1454
  /** Printable fit or caller-calibrated allowances. Default: `normal`. */
1552
1455
  readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
1553
1456
  /** Nominal major diameter before female compensation and faceting correction. */
@@ -1572,19 +1475,6 @@ export declare function inverseTransform3(
1572
1475
  */
1573
1476
  export declare function isGeometryError(value: unknown): value is GeometryError;
1574
1477
 
1575
- /**
1576
- * Concatenates meshes into one indexed mesh without welding coincident vertices.
1577
- *
1578
- * Inputs are validated and never mutated. Face order and winding remain stable.
1579
- *
1580
- * @param meshes - One or more meshes to concatenate.
1581
- * @returns Fresh typed arrays with indices offset to their source vertex ranges.
1582
- * @throws {@link GeometryError} When no mesh is supplied or an input is invalid.
1583
- */
1584
- export declare function joinTriangleMeshes(
1585
- meshes: readonly TriangleMesh[],
1586
- ): TriangleMesh;
1587
-
1588
1478
  /** Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. */
1589
1479
  export declare interface KnuckleHingeBaseSpec {
1590
1480
  /** Total extent along the +X pin axis, centered at the origin. */
@@ -1783,28 +1673,6 @@ export declare interface LineCurve3 {
1783
1673
  export declare type LoftCorrespondence =
1784
1674
  "direct" | "reindex" | "fast-distance" | "distance";
1785
1675
 
1786
- /**
1787
- * Lofts simple point loops at z heights or explicit right-handed frames, in input order.
1788
- *
1789
- * An explicit correspondence method is required. CCW-normalized loops retain their
1790
- * seam and original vertices; unequal counts gain subdivisions or repeated fan slots.
1791
- * Both ends use ear-clipped caps, supporting concave profiles without center fans.
1792
- * Intermediate slices interpolate placed world vertices, never frame axes.
1793
- * Transformed coordinates must fit finite Float32 mesh storage.
1794
- * Path2 profiles must be closed; raw point collections are interpreted as closed.
1795
- *
1796
- * @example Loft with explicit point correspondence
1797
- * ```ts
1798
- * const bottom = rectangleContour({ size: [20, 12] });
1799
- * const top = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
1800
- * loftMesh([{ profile: bottom, z: 0 }, { profile: top, z: 30 }], { correspondence: "reindex" });
1801
- * ```
1802
- */
1803
- export declare function loftMesh(
1804
- stations: readonly LoftMeshStation[],
1805
- options: LoftOptions,
1806
- ): TriangleMesh;
1807
-
1808
1676
  /** One point-data profile at a height or explicit right-handed spatial frame. */
1809
1677
  export declare type LoftMeshStation = LoftPlacement & {
1810
1678
  /** Closed Path2 or ordered finite XY boundary points with an implicit closing edge. */
@@ -1812,10 +1680,10 @@ export declare type LoftMeshStation = LoftPlacement & {
1812
1680
  };
1813
1681
 
1814
1682
  /**
1815
- * Shared controls for native and pure lofts. Point data and arbitrary Sections require explicit correspondence.
1683
+ * Shared controls for native and pure lofts. Point data and arbitrary Sections default to direct correspondence.
1816
1684
  */
1817
1685
  export declare interface LoftOptions {
1818
- /** One method or one per consecutive station gap. Omitted preserves known landmarks, including circle/ellipse-to-rectangle corners, or maps other unlike primitive seams directly. */
1686
+ /** One method or one per consecutive station gap. Omitted preserves known primitive landmarks, including circle/ellipse-to-rectangle corners, and otherwise uses direct correspondence with the supplied seams. */
1819
1687
  readonly correspondence?: LoftCorrespondence | readonly LoftCorrespondence[];
1820
1688
  /** Extra points follow edge length or distribute equally across existing segments. Defaults to perimeter for direct/reindex, or segments when any distance method is selected; distance methods require segments. */
1821
1689
  readonly distribution?: "perimeter" | "segments";
@@ -1889,15 +1757,6 @@ export declare function measureInternalCylindricalGearPairMotion(
1889
1757
  options?: CylindricalGearPairMotionOptions,
1890
1758
  ): CylindricalGearPairMotionReport;
1891
1759
 
1892
- /**
1893
- * Computes axis-aligned bounds for a non-empty mesh.
1894
- *
1895
- * @param mesh - Mesh whose finite complete vertices will be measured.
1896
- * @returns Fresh immutable minimum and maximum XYZ tuples.
1897
- * @throws {@link GeometryError} When the mesh is structurally invalid.
1898
- */
1899
- export declare const meshBounds: (mesh: TriangleMesh) => Bounds3Data;
1900
-
1901
1760
  /**
1902
1761
  * Curated metric modeling dimensions for clearance holes, regular hex nuts,
1903
1762
  * and socket-head cap screws.
@@ -2042,23 +1901,9 @@ export declare function normalizeRegion(
2042
1901
  tolerance?: GeometryToleranceOptions,
2043
1902
  ): RegionData;
2044
1903
 
2045
- /**
2046
- * Improves pathological planar triangulation with bounded legal diagonal flips.
2047
- *
2048
- * The operation changes indices only: it never moves, adds, welds, or removes vertices; never
2049
- * crosses a coplanar-patch boundary; and never changes the face count. Each accepted flip improves
2050
- * a deterministic ordering of triangle angles, aspect ratio, diagonal locality, and local
2051
- * incidence/valence concentration. Unsupported input or a failed final integrity check returns the
2052
- * exact original mesh object. Malformed buffers and the configured analysis complexity limit throw.
2053
- *
2054
- * @param mesh - Closed, consistently wound indexed triangle mesh in arbitrary consistent units.
2055
- * @param options - Patch eligibility, numeric tolerance, and deterministic work bounds.
2056
- * @returns Optimized connectivity and before/after diagnostics, or an unchanged safe fallback.
2057
- */
2058
- export declare function optimizePlanarPatches(
2059
- mesh: TriangleMesh,
2060
- options?: PlanarMeshOptimizationOptions,
2061
- ): PlanarMeshOptimizationResult;
1904
+ /** Numeric storage supported by immutable generation buffers. */
1905
+ export declare type NumericArray =
1906
+ Float32Array | Float64Array | Uint32Array | Uint8Array | Int32Array;
2062
1907
 
2063
1908
  /** Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. */
2064
1909
  export declare interface Path2 {
@@ -2360,33 +2205,6 @@ export declare interface PolylineResamplingOptions extends CurveSamplingOptions
2360
2205
  readonly closed?: boolean;
2361
2206
  }
2362
2207
 
2363
- /**
2364
- * Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts.
2365
- *
2366
- * This pure operation needs no engine and neither evaluates `height` nor allocates mesh buffers.
2367
- * Successful preflight leaves height values, Float32 base storage, and generated mesh validity to
2368
- * construction. `byteCount` covers position and index buffers, not total working memory.
2369
- *
2370
- * @see {@link heightfieldMesh}
2371
- */
2372
- export declare function preflightHeightfield(
2373
- options: HeightfieldOptions,
2374
- limits?: HeightfieldMeshLimits,
2375
- ): HeightfieldPreflight;
2376
-
2377
- /**
2378
- * Checks thread dimensions, profile, end treatments, sampling, and conservative estimates against output limits.
2379
- *
2380
- * This pure operation needs no engine and constructs planning data without vertex or index buffers.
2381
- * `circularSegments` is the selected count; row and triangle counts are conservative estimates.
2382
- * Successful preflight leaves generated coordinate and topology checks to mesh construction.
2383
- *
2384
- * @see {@link helicalThreadSolidMesh}
2385
- */
2386
- export declare function preflightHelicalThreadSolidMesh(
2387
- options: HelicalThreadSolidMeshOptions,
2388
- ): HelicalThreadSolidMeshPreflight;
2389
-
2390
2208
  /**
2391
2209
  * Resolves compensated cutter dimensions and checks extended mesh estimates against output limits.
2392
2210
  *
@@ -2395,20 +2213,23 @@ export declare function preflightHelicalThreadSolidMesh(
2395
2213
  * creates planning data without mesh buffers or native objects. Row and triangle counts are
2396
2214
  * estimates; mesh validity and native construction are checked later.
2397
2215
  *
2398
- * @see {@link preflightHelicalThreadSolidMesh}
2399
- * @see {@link helicalThreadSolidMesh}
2216
+ * See `mesh.preflightThreadSolid` for standalone mesh estimates.
2217
+ * See `mesh.threadSolid` for standalone mesh construction.
2400
2218
  */
2401
2219
  export declare function preflightInternalThreadCutter(
2402
2220
  options: InternalThreadCutterOptions,
2403
- ): HelicalThreadSolidMeshPreflight;
2221
+ ): ThreadSolidPreflight;
2404
2222
 
2405
2223
  /**
2406
2224
  * Parses and validates bounded SVG input, constructing its normalized sampled region and diagnostics.
2407
2225
  *
2408
2226
  * This pure operation performs curve flattening, fill and stroke construction, and polygon union;
2409
2227
  * it needs no browser or engine. Geometry counts measure the returned region at the selected
2410
- * resolution, rather than predicting later mesh allocation. The region may be empty; tiny-island
2411
- * and short-edge indicators do not establish manufacturability or later solid validity.
2228
+ * resolution, rather than predicting later mesh allocation. With `fit`, painted bounds are
2229
+ * uniformly centered inside the target and adaptive sampling remains in final millimetres.
2230
+ * Refinement runs at most eight bounded import passes; exact circular counts retain precedence.
2231
+ * Without `fit` the region may be empty. Tiny-island and short-edge indicators do not establish
2232
+ * manufacturability or later solid validity.
2412
2233
  *
2413
2234
  * @param svg - Complete SVG XML source, limited to 256 KiB of UTF-8.
2414
2235
  * @param options - Physical flattening and viewport-origin controls.
@@ -2428,7 +2249,7 @@ export declare function preflightSvgRegion(
2428
2249
  * `thread` contains conservative cutter estimates, excluding the body and Boolean result.
2429
2250
  * Successful preflight leaves mesh validity, native construction, and manufacturing fit to later checks.
2430
2251
  *
2431
- * @see {@link preflightHelicalThreadSolidMesh}
2252
+ * See `mesh.preflightThreadSolid` for standalone mesh estimates.
2432
2253
  */
2433
2254
  export declare function preflightThreadedNut(
2434
2255
  options: ThreadedNutOptions,
@@ -2441,12 +2262,12 @@ export declare function preflightThreadedNut(
2441
2262
  * host execution. It creates planning data without mesh buffers or native objects; returned row
2442
2263
  * and triangle counts are estimates. Mesh validity and native construction are checked later.
2443
2264
  *
2444
- * @see {@link preflightHelicalThreadSolidMesh}
2445
- * @see {@link helicalThreadSolidMesh}
2265
+ * See `mesh.preflightThreadSolid` for standalone mesh estimates.
2266
+ * See `mesh.threadSolid` for standalone mesh construction.
2446
2267
  */
2447
2268
  export declare function preflightThreadedRod(
2448
2269
  options: ThreadedRodOptions,
2449
- ): HelicalThreadSolidMeshPreflight;
2270
+ ): ThreadSolidPreflight;
2450
2271
 
2451
2272
  /** Anchor attachment shared by solid and filled-section factories. */
2452
2273
  export declare interface PrimitiveAttachment {
@@ -2672,7 +2493,11 @@ export declare interface RadialSizingOptions {
2672
2493
  }
2673
2494
 
2674
2495
  /**
2675
- * Creates an immutable sampled CCW rectangle boundary. Round radius zero is square; tangent saturated endpoints occur once.
2496
+ * Creates an immutable sampled CCW rectangle boundary.
2497
+ *
2498
+ * @remarks
2499
+ * A zero round radius leaves square corners. When rounded corners meet, their shared endpoints
2500
+ * appear once.
2676
2501
  *
2677
2502
  * Use [rectangle](/docs/reference/model/rectangle) for a filled Section.
2678
2503
  *
@@ -2692,7 +2517,7 @@ export declare function rectangleContour(
2692
2517
  */
2693
2518
  export declare interface RectangleContourOptions {
2694
2519
  /** Positive uniform size or explicit XY extents in millimetres. */
2695
- readonly size: number | Vector2Data;
2520
+ readonly size: number | Vector2Input;
2696
2521
  /** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
2697
2522
  readonly center?: boolean;
2698
2523
  /** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
@@ -2764,7 +2589,7 @@ export declare function regionBounds(region: RegionData): Bounds2Data;
2764
2589
  export declare type RegionData = readonly PolygonData[];
2765
2590
 
2766
2591
  /**
2767
- * Creates a centered CCW point loop with vertex or face radial sizing and an implicit seam.
2592
+ * Creates an immutable centered CCW point loop with vertex or face radial sizing and an implicit seam.
2768
2593
  *
2769
2594
  * @example Hexagon sized to its faces
2770
2595
  * ```ts
@@ -2865,6 +2690,25 @@ export declare function resolveArcSegments(
2865
2690
  limits?: Partial<GeometrySamplingLimits>,
2866
2691
  ): number;
2867
2692
 
2693
+ /**
2694
+ * Resolves circular sampling and its actual radial envelopes without allocating boundary points.
2695
+ *
2696
+ * Vertex sizing retains the nominal vertex radius; face sizing retains the nominal face radius.
2697
+ * Exact `segments` override resolution, while allocation ceilings still apply. Adaptive sampling
2698
+ * uses the same count calculation as `resolveCircularSegments` and `circleContour` and rejects
2699
+ * exhausted limits rather than coarsening. The returned record is immutable and needs no engine.
2700
+ *
2701
+ * @example Check a nominal 8 mm face-sized bore
2702
+ * ```ts
2703
+ * const bore = resolveCircularSampling({ diameter: 8, segments: 64, sizing: "face" });
2704
+ * bore.faceRadius; // 4 mm
2705
+ * bore.vertexRadius; // slightly larger than 4 mm
2706
+ * ```
2707
+ */
2708
+ export declare function resolveCircularSampling(
2709
+ options: CircularSamplingOptions,
2710
+ ): CircularSampling;
2711
+
2868
2712
  /**
2869
2713
  * Resolves a deterministic full-circle segment count for one radius.
2870
2714
  *
@@ -3007,40 +2851,6 @@ export declare function resolveThreadCircularSegments(
3007
2851
  options: ThreadCircularSegmentsOptions,
3008
2852
  ): number;
3009
2853
 
3010
- /**
3011
- * Returns a copy of a mesh with every triangle winding reversed.
3012
- *
3013
- * @param mesh - Mesh to copy and reverse.
3014
- * @returns Fresh position and index buffers; the input remains unchanged.
3015
- */
3016
- export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
3017
-
3018
- /**
3019
- * Revolves a non-duplicated closed `[radius, z]` profile around +Z.
3020
- *
3021
- * The profile is ordered counter-clockwise when radius points right and Z
3022
- * points up. Angular and profile seams wrap by index. A profile point on the
3023
- * axis is emitted once and joined as a triangle fan, avoiding coincident seam
3024
- * vertices and zero-area quads. Profile edges that lie entirely on the axis
3025
- * collapse to the solid's interior and are intentionally omitted.
3026
- * Profile coordinates must fit finite Float32 mesh storage.
3027
- * Path2 profiles must be closed; raw point collections have an implicit closing edge.
3028
- *
3029
- * @param profile - Closed CCW `[radius, z]` profile without a duplicated seam point.
3030
- * @param options - Optional physical or exact circumferential sampling controls. Defaults to `{}`.
3031
- * @returns A closed indexed triangle mesh revolved counter-clockwise around +Z.
3032
- *
3033
- * @example Partial revolution with end caps
3034
- * ```ts
3035
- * // Each point is [radius, Z]; the profile seam is implicit.
3036
- * revolveMesh([[0, 0], [12, 0], [8, 20], [0, 20]], { degrees: 270 });
3037
- * ```
3038
- */
3039
- export declare const revolveMesh: (
3040
- input: Path2Input,
3041
- options?: RevolveOptions,
3042
- ) => TriangleMesh;
3043
-
3044
2854
  /**
3045
2855
  * Circumferential sampling and degree sweep shared by pure and filled revolution.
3046
2856
  */
@@ -3050,7 +2860,7 @@ export declare interface RevolveOptions extends CircularPrimitiveOptions {
3050
2860
  * smaller sweeps form partial revolutions with end caps.
3051
2861
  * Segment counts describe a complete circle and scale to this angular span. Native filled
3052
2862
  * revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
3053
- * while exact counts that imply fewer intervals reject. Pure revolveMesh supports one interval.
2863
+ * while exact counts that imply fewer intervals reject. Pure mesh.revolve supports one interval.
3054
2864
  * @defaultValue `360`
3055
2865
  */
3056
2866
  readonly degrees?: number;
@@ -3473,20 +3283,31 @@ export declare interface SquareThreadProfileSpec extends ThreadProfileBaseSpec {
3473
3283
  }
3474
3284
 
3475
3285
  /**
3476
- * Creates a centered CCW alternating-radius star within the selected profile sampling ceiling.
3286
+ * Creates an immutable centered CCW alternating-radius star within the selected profile sampling ceiling.
3477
3287
  *
3478
3288
  * @example Five-point outline
3479
3289
  * ```ts
3480
- * starContour(12, 5, 6);
3290
+ * starContour({ outerRadius: 12, innerRadius: 6, points: 5 });
3481
3291
  * ```
3482
3292
  */
3483
3293
  export declare const starContour: (
3484
- outerRadius: number,
3485
- points: number,
3486
- innerRadius?: number,
3487
- limits?: Partial<GeometrySamplingLimits>,
3294
+ options: StarContourOptions,
3488
3295
  ) => readonly Vector2Data[];
3489
3296
 
3297
+ /** Alternating vertex radii and exact point count for a centered XY star. */
3298
+ export declare interface StarContourOptions {
3299
+ /** Positive outer vertex radius in millimetres. */
3300
+ readonly outerRadius: number;
3301
+ /** Positive inner vertex radius in millimetres, smaller than the outer radius. */
3302
+ readonly innerRadius: number;
3303
+ /** Integer outer point count, at least three; output contains twice as many vertices. */
3304
+ readonly points: number;
3305
+ /** Counterclockwise rotation in degrees; defaults to zero with an outer vertex on +X. */
3306
+ readonly rotation?: number;
3307
+ /** Explicit sampling ceilings, bounded by the host policy during modeling. */
3308
+ readonly limits?: Partial<GeometrySamplingLimits>;
3309
+ }
3310
+
3490
3311
  /** End-cap treatment for an open stroked path. */
3491
3312
  export declare type StrokeCap = "butt" | "round" | "square";
3492
3313
 
@@ -3536,6 +3357,12 @@ export declare const subtract3: (a: Vector3Data, b: Vector3Data) => Vector3Data;
3536
3357
 
3537
3358
  /** Sampling controls for deterministic SVG-to-region conversion. */
3538
3359
  export declare interface SvgImportOptions {
3360
+ /**
3361
+ * Uniformly fit painted bounds inside this positioned XY target in millimetres.
3362
+ * Adaptive resolution describes the fitted size; exact circular counts retain precedence.
3363
+ * Empty painted geometry cannot be fitted. Omitted preserves the document's physical size.
3364
+ */
3365
+ readonly fit?: Bounds2Input;
3539
3366
  /** Explicit profile and circular allocation ceilings; bounded SVG source/work limits remain fixed. */
3540
3367
  readonly limits?: Partial<GeometrySamplingLimits>;
3541
3368
  /** Exact segments for a complete ellipse or round stroke feature. */
@@ -3551,6 +3378,12 @@ export declare interface SvgImportOptions {
3551
3378
 
3552
3379
  /** Normalized sampled SVG region plus bounded source, geometry, and safe-repair diagnostics. */
3553
3380
  export declare interface SvgRegionPreflight {
3381
+ /**
3382
+ * Applied scale and translation from origin-normalized SVG millimetres to final model
3383
+ * millimetres, present only when a fit target was supplied. Reuse it for registered layers
3384
+ * imported with the same origin and document coordinate system.
3385
+ */
3386
+ readonly fit?: BoundsFit2;
3554
3387
  /** Physical and final-topology measurements of `region`. */
3555
3388
  readonly geometry: SvgRegionPreflightGeometryMetrics;
3556
3389
  /** Appearance-preserving cleanup observed during parsing and normalization. */
@@ -3609,23 +3442,6 @@ export declare interface SvgRegionPreflightSourceMetrics {
3609
3442
  readonly parsedVertexCount: number;
3610
3443
  }
3611
3444
 
3612
- /**
3613
- * Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam.
3614
- *
3615
- * @example Sweep point data along a bent path
3616
- * ```ts
3617
- * const profile = rectangleContour({ size: [6, 3] });
3618
- * sweepMesh(profile, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
3619
- * orientation: { kind: "transport", initialNormal: [0, 1, 0] },
3620
- * });
3621
- * ```
3622
- */
3623
- export declare function sweepMesh(
3624
- profile: Path2Input,
3625
- path: Path3Input,
3626
- options?: SweepOptions,
3627
- ): TriangleMesh;
3628
-
3629
3445
  /**
3630
3446
  * Controls shared by pure mesh construction and filled modeling sweeps.
3631
3447
  */
@@ -3675,17 +3491,11 @@ export declare type SweepOrientation =
3675
3491
  readonly kind: "frenet";
3676
3492
  };
3677
3493
 
3678
- /** End bevel controls shared by threaded rods and cutters. */
3494
+ /** 45-degree end bevels for compensated rods and cutters. */
3679
3495
  export declare interface ThreadBevelOptions {
3680
- /** Apply a 45-degree bevel at Z=0. */
3681
- readonly bevelBottom?: boolean;
3682
- /**
3683
- * Axial bevel extent in millimetres. Active blunt ends default to one sixth of the compensated
3684
- * male minor radius or female major radius; other ends default to the profile depth.
3685
- */
3686
- readonly bevelSize?: number;
3687
- /** Apply a 45-degree bevel at Z=length. */
3688
- readonly bevelTop?: boolean;
3496
+ /** Bottom/top sizes in millimetres. Omitted disables both. Auto uses profile depth for standard/tapered ends,
3497
+ * or one sixth of the compensated male minor/female major radius for blunt ends. */
3498
+ readonly bevel?: Bevel;
3689
3499
  }
3690
3500
 
3691
3501
  /** Inputs for resolving one shared circular facet count for a mating thread pair. */
@@ -3724,25 +3534,20 @@ export declare interface ThreadCompensationOptions {
3724
3534
  readonly tolerance?: GeometryToleranceOptions;
3725
3535
  }
3726
3536
 
3727
- /** Nut-edge bevel selection. */
3728
- export declare type ThreadedNutBevel =
3729
- "automatic" | "both" | "inside" | "none" | "outside";
3730
-
3731
3537
  /**
3732
3538
  * Options for a compensated nut with an internal thread.
3733
3539
  */
3734
3540
  export declare interface ThreadedNutOptions extends Omit<
3735
3541
  InternalThreadCutterOptions,
3736
- "bevelBottom" | "bevelSize" | "bevelTop" | "length"
3542
+ "bevel" | "length"
3737
3543
  > {
3738
- /** Nut body bevel selection. Default: `automatic`. */
3739
- readonly bevel?: ThreadedNutBevel;
3544
+ /** Opening bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4); zero disables. */
3545
+ readonly innerBevel?: Bevel;
3546
+ /** Body bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4).
3547
+ * Use [0, "auto"] to keep the outside bottom flat without disabling its inner opening bevel. */
3548
+ readonly outerBevel?: Bevel;
3740
3549
  /** Optional physical policy for a round body, independent of the thread's matched facet grid. */
3741
3550
  readonly bodyResolution?: GeometryResolution;
3742
- /** 45-degree body chamfer extent. Default: `min(profile.depth, thickness/4)`. */
3743
- readonly chamferSize?: number;
3744
- /** Leave the bottom outside edge flat for build-plate adhesion. Default: `false`. */
3745
- readonly flushBuildPlateBottom?: boolean;
3746
3551
  /** Nut body shape. */
3747
3552
  readonly shape: ThreadedNutShape;
3748
3553
  /** Nut thickness along +Z in millimetres. */
@@ -3755,8 +3560,10 @@ export declare interface ThreadedNutOptions extends Omit<
3755
3560
  export declare interface ThreadedNutPreflight {
3756
3561
  /** Polygon segment count used by the nut body. */
3757
3562
  readonly bodySegments: number;
3758
- /** Shared 45-degree chamfer size applied to the selected body and cutter edges. */
3759
- readonly chamferSize: number;
3563
+ /** Resolved opening bevel sizes in millimetres, [bottom, top]. */
3564
+ readonly innerBevel: readonly [bottom: number, top: number];
3565
+ /** Resolved body bevel sizes in millimetres, [bottom, top]. */
3566
+ readonly outerBevel: readonly [bottom: number, top: number];
3760
3567
  /** Maximum compensated cutter radius at either requested face. */
3761
3568
  readonly cutterFaceRadius: number;
3762
3569
  /** Minimum nut-body inradius across the requested top and bottom faces. */
@@ -3764,7 +3571,7 @@ export declare interface ThreadedNutPreflight {
3764
3571
  /** Smallest radial wall left between the body and cutter at either requested face. */
3765
3572
  readonly minimumFaceWall: number;
3766
3573
  /** Conservative allocation estimates for the extended cutter; excludes the body and Boolean result. */
3767
- readonly thread: HelicalThreadSolidMeshPreflight;
3574
+ readonly thread: ThreadSolidPreflight;
3768
3575
  /** Start-aligned circular facet count used by the compensated thread cutter. */
3769
3576
  readonly threadCircularSegments: number;
3770
3577
  }
@@ -3778,9 +3585,7 @@ export declare type ThreadedNutShape = "hex" | "round" | "square";
3778
3585
  * Options for a compensated external threaded rod along +Z.
3779
3586
  */
3780
3587
  export declare interface ThreadedRodOptions
3781
- extends
3782
- Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
3783
- ThreadBevelOptions {
3588
+ extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
3784
3589
  /** Printable fit or caller-calibrated allowances. Default: `normal`. */
3785
3590
  readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
3786
3591
  /** Nominal major diameter before male compensation. */
@@ -3911,9 +3716,58 @@ export declare type ThreadProfileSpec =
3911
3716
  | TrapezoidalThreadProfileSpec
3912
3717
  | TriangularThreadProfileSpec;
3913
3718
 
3719
+ /** Runtime-neutral options for the dedicated helical ridge mesher. */
3720
+ export declare interface ThreadRidgeOptions {
3721
+ /**
3722
+ * Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
3723
+ * BOSL2-style non-cut lead-in scaling is available on complete thread solids.
3724
+ */
3725
+ readonly ends?: ThreadEndTreatmentOptions;
3726
+ /** Helix direction. Default: `right`. */
3727
+ readonly handedness?: ThreadHandedness;
3728
+ /** Total threaded axial length in millimetres. */
3729
+ readonly length: number;
3730
+ /** Explicit output and circular allocation ceilings. */
3731
+ readonly limits?: Partial<ModelingLimits>;
3732
+ /** Nominal major diameter before any caller-owned fit compensation. */
3733
+ readonly majorDiameter: number;
3734
+ /** Angular offset of the first start in degrees. Default: `0`. */
3735
+ readonly phase?: number;
3736
+ /** Validated periodic profile repeated around the shaft. */
3737
+ readonly profile: ThreadProfile;
3738
+ /** Optional circular-resolution policy. */
3739
+ readonly resolution?: GeometryResolution;
3740
+ /** Number of evenly phased starts. Default: `1`. */
3741
+ readonly starts?: number;
3742
+ /** Optional numerical tolerance overrides. */
3743
+ readonly tolerance?: GeometryToleranceOptions;
3744
+ }
3745
+
3914
3746
  /** Whether compensation is being applied to an external or internal thread. */
3915
3747
  export declare type ThreadRole = "male" | "female";
3916
3748
 
3749
+ /** Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. */
3750
+ export declare interface ThreadSolidOptions extends ThreadRidgeOptions {
3751
+ /** Independent 45-degree bottom/top bevels; omitted disables both. Auto uses profile depth. */
3752
+ readonly bevel?: Bevel;
3753
+ /** Distance of each bevel target face inward from the corresponding mesh end. */
3754
+ readonly bevelOffset?: number;
3755
+ /** `inset` trims an external rod; `outset` expands an internal cutter. */
3756
+ readonly bevelMode?: "inset" | "outset";
3757
+ }
3758
+
3759
+ /** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
3760
+ export declare interface ThreadSolidPreflight {
3761
+ /** Uniform axial intervals required only by a requested physical segment-length limit. */
3762
+ readonly axialIntervals: number;
3763
+ /** Start-aligned full-circle segment count used by the surface mesh. */
3764
+ readonly circularSegments: number;
3765
+ /** Conservative surface-row count across profile breaks, ends, and bevel stations. */
3766
+ readonly estimatedRows: number;
3767
+ /** Conservative triangle count used by the selected output allocation policy. */
3768
+ readonly estimatedTriangles: number;
3769
+ }
3770
+
3917
3771
  /**
3918
3772
  * Dimensions and independent ring/profile tessellation for a torus around the Z axis.
3919
3773
  */
@@ -4091,21 +3945,6 @@ export declare function transformRegionData(
4091
3945
  tolerance?: GeometryToleranceOptions,
4092
3946
  ): RegionData;
4093
3947
 
4094
- /**
4095
- * Applies an affine transform to a mesh and preserves outward face orientation.
4096
- *
4097
- * A transform with a negative linear determinant reflects space, so this helper
4098
- * automatically reverses every triangle. Singular transforms are rejected.
4099
- *
4100
- * @param mesh - Mesh to transform without mutation.
4101
- * @param placement - Immutable spatial placement or canonical row-major affine matrix.
4102
- * @returns A mesh with fresh transformed positions and copied or reversed indices.
4103
- */
4104
- export declare function transformTriangleMesh(
4105
- mesh: TriangleMesh,
4106
- placement: Transform3Input,
4107
- ): TriangleMesh;
4108
-
4109
3948
  /**
4110
3949
  * Creates an immutable translation transform.
4111
3950
  *
@@ -4133,13 +3972,11 @@ export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseS
4133
3972
  readonly includedAngle?: number;
4134
3973
  }
4135
3974
 
4136
- /**
4137
- * A topology-preserving indexed triangle mesh with XYZ vertex positions.
4138
- */
3975
+ /** A topology-preserving indexed triangle mesh with mutable owned XYZ buffers. */
4139
3976
  export declare interface TriangleMesh {
4140
3977
  /** Three unsigned vertex indices per triangle. */
4141
3978
  readonly indices: Uint32Array;
4142
- /** Flat XYZ coordinates, three finite values per vertex. */
3979
+ /** Flat XYZ coordinates in millimetres. */
4143
3980
  readonly positions: Float32Array;
4144
3981
  }
4145
3982
 
@@ -4147,8 +3984,9 @@ export declare interface TriangleMesh {
4147
3984
  * Measurements and optional edge-connected topology from one validated mesh traversal.
4148
3985
  */
4149
3986
  export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
4150
- /** Number of referenced edge-connected boundary shells when `includeTopology` is requested; cavities count separately. */
4151
- readonly connectedComponentCount?: number;
3987
+ /** Number of surface shells connected by shared indexed edges when includeTopology is requested.
3988
+ * Cavities count separately; shells may be open unless requireClosed is enabled. Coordinates are not welded. */
3989
+ readonly shellCount?: number;
4152
3990
  /** Number of distinct indexed undirected edges when `includeTopology` is requested. */
4153
3991
  readonly edgeCount?: number;
4154
3992
  }
@@ -4157,10 +3995,13 @@ export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
4157
3995
  * Validation and optional connectivity controls for a shared mesh analysis.
4158
3996
  */
4159
3997
  export declare interface TriangleMeshAnalysisOptions extends TriangleMeshValidationOptions {
4160
- /** Compute indexed edge/component counts and reject unreferenced vertices; defaults to false. */
3998
+ /** Compute indexed edge/shell counts and reject unreferenced vertices; defaults to false. */
4161
3999
  readonly includeTopology?: boolean;
4162
4000
  }
4163
4001
 
4002
+ /** Raw construction buffers or immutable captured geometry accepted by mesh utilities. */
4003
+ export declare type TriangleMeshInput = TriangleMesh | ImmutableTriangleMesh;
4004
+
4164
4005
  /**
4165
4006
  * Geometric measurements derived from a validated, non-empty triangle mesh.
4166
4007
  */
@@ -4224,7 +4065,7 @@ export declare interface TriangleMeshSignature {
4224
4065
  /** Axis-aligned bounds quantized by `tolerances.position`. */
4225
4066
  readonly bounds: Bounds3Data;
4226
4067
  /** Number of edge-connected closed boundary shells; cavities count separately. */
4227
- readonly connectedComponentCount: number;
4068
+ readonly shellCount: number;
4228
4069
  /** Total orientable genus across all connected components. */
4229
4070
  readonly genus: number;
4230
4071
  /** Order-independent hash of quantized vertices and oriented triangles. */
@@ -4257,6 +4098,14 @@ export declare interface TriangleMeshSignatureTolerances {
4257
4098
  readonly signedVolume: number;
4258
4099
  }
4259
4100
 
4101
+ /** Mesh measurements with the indexed surface-shell and edge counts requested by includeTopology. */
4102
+ export declare interface TriangleMeshTopologyAnalysis extends TriangleMeshAnalysis {
4103
+ /** Number of surface shells connected by shared indexed edges; cavities count separately. */
4104
+ readonly shellCount: number;
4105
+ /** Number of distinct indexed undirected edges. */
4106
+ readonly edgeCount: number;
4107
+ }
4108
+
4260
4109
  /** Options controlling structural and manufacturing validation of a mesh. */
4261
4110
  export declare interface TriangleMeshValidationOptions {
4262
4111
  /** Permit an empty position and index buffer. Defaults to `false`. */
@@ -4291,40 +4140,52 @@ export declare function triangulateContour(loop: Contour): Uint32Array;
4291
4140
  /**
4292
4141
  * Dimensions, placement, and tessellation for a hollow Z-axis tube.
4293
4142
  */
4294
- export declare interface TubeOptions
4295
- extends CircularPrimitiveOptions, PrimitiveAttachment {
4296
- /**
4297
- * Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
4298
- * @defaultValue `true`
4299
- */
4300
- readonly center?: boolean;
4301
- /** Total height along Z in millimetres. */
4302
- readonly height: number;
4303
- /** Positive inner radius in millimetres. */
4304
- readonly innerRadius: number;
4305
- /** Outer radius in millimetres; greater than {@link TubeOptions.innerRadius}. */
4306
- readonly outerRadius: number;
4307
- }
4143
+ export declare type TubeOptions = CircularPrimitiveOptions &
4144
+ PrimitiveAttachment & {
4145
+ /**
4146
+ * Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
4147
+ * @defaultValue `true`
4148
+ */
4149
+ readonly center?: boolean;
4150
+ /** Total height along Z in millimetres. */
4151
+ readonly height: number;
4152
+ /** Inner nominal dimension meets polygon vertices or faces; defaults to vertex. */
4153
+ readonly innerSizing?: RadialSizing;
4154
+ /** Outer nominal dimension meets polygon vertices or faces; defaults to vertex. */
4155
+ readonly outerSizing?: RadialSizing;
4156
+ } & (
4157
+ | {
4158
+ /** Positive nominal inner radius in millimetres. */
4159
+ readonly innerRadius: number;
4160
+ /** Nominal outer radius in millimetres, greater than innerRadius. */
4161
+ readonly outerRadius: number;
4162
+ /** Diameter dimensions cannot be combined with radius dimensions. */
4163
+ readonly innerDiameter?: never;
4164
+ /** Diameter dimensions cannot be combined with radius dimensions. */
4165
+ readonly outerDiameter?: never;
4166
+ }
4167
+ | {
4168
+ /** Positive nominal inner diameter in millimetres. */
4169
+ readonly innerDiameter: number;
4170
+ /** Nominal outer diameter in millimetres, greater than innerDiameter. */
4171
+ readonly outerDiameter: number;
4172
+ /** Radius dimensions cannot be combined with diameter dimensions. */
4173
+ readonly innerRadius?: never;
4174
+ /** Radius dimensions cannot be combined with diameter dimensions. */
4175
+ readonly outerRadius?: never;
4176
+ }
4177
+ );
4308
4178
 
4309
4179
  /**
4310
- * Checks closed indexed topology, triangle intersections, and alternating nested shell orientation.
4311
- *
4312
- * Outward exterior shells and inward cavity shells are accepted. Separate shells must not touch,
4313
- * intersect, or overlap as material. Indexed neighbours may share their own vertex or edge.
4180
+ * Validates a proper rigid transform: finite translation and a right-handed orthonormal rotation.
4181
+ * Scale, shear, reflection, and perspective are rejected within the default angular tolerance.
4182
+ * Returns the original row-major 4x4 matrix without copying or normalizing it.
4314
4183
  *
4315
- * Uses bounded floating-point tests, not exact predicates or repair. Contacts within the selected
4316
- * tolerance reject conservatively. At most 200,000 triangles and 2,000,000 spatial/containment tests
4317
- * are supported; exhausting a ceiling throws COMPLEXITY_LIMIT rather than claiming validity.
4318
- * Input buffers are freshly inspected and never modified; units are millimetres.
4319
- *
4320
- * @param mesh - Closed triangle mesh to inspect.
4321
- * @param options - Optional lower work ceiling and numeric comparison policy.
4322
- * @returns The original mesh after every requested check succeeds.
4184
+ * @throws {@link GeometryError} For a malformed, non-finite, or non-rigid matrix.
4323
4185
  */
4324
- export declare function validateSolidMesh(
4325
- mesh: TriangleMesh,
4326
- options?: SolidMeshValidationOptions,
4327
- ): TriangleMesh;
4186
+ export declare function validateRigidTransform3(
4187
+ transform: Transform3Data,
4188
+ ): Transform3Data;
4328
4189
 
4329
4190
  /**
4330
4191
  * Validates that a transform is finite, affine, and non-singular.
@@ -4339,23 +4200,6 @@ export declare function validateTransform3(
4339
4200
  tolerance?: GeometryToleranceOptions,
4340
4201
  ): Transform3Data;
4341
4202
 
4342
- /**
4343
- * Validates mesh buffers, indices, triangle area, and optionally closed topology.
4344
- *
4345
- * Closed validation requires exactly two oppositely directed uses per edge, rejecting boundary
4346
- * and non-manifold edges. It establishes edge connectivity without detecting geometric
4347
- * self-intersections between faces. The mesh is neither mutated nor copied.
4348
- *
4349
- * @param mesh - Mesh to inspect.
4350
- * @param options - Empty-mesh, topology, and tolerance policy.
4351
- * @returns The original mesh after successful validation.
4352
- * @throws {@link GeometryError} When any requested invariant fails.
4353
- */
4354
- export declare function validateTriangleMesh(
4355
- mesh: TriangleMesh,
4356
- options?: TriangleMeshValidationOptions,
4357
- ): TriangleMesh;
4358
-
4359
4203
  /** Immutable XY arithmetic; vector operations return new values and measurements return numbers. */
4360
4204
  export declare interface Vector2 {
4361
4205
  /** X coordinate in the vector's coordinate units. */