@metamesh/modeling 0.17.0 → 0.19.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 (832) hide show
  1. package/CHANGELOG.md +186 -0
  2. package/README.md +147 -157
  3. package/dist/api/engine.d.ts +106 -83
  4. package/dist/api/export-3mf.d.ts +2 -0
  5. package/dist/api/export-glb.d.ts +2 -0
  6. package/dist/api/export-stl.d.ts +2 -0
  7. package/dist/api/export.d.ts +160 -0
  8. package/dist/api/geometry.d.ts +250 -461
  9. package/dist/api/index.d.ts +470 -445
  10. package/dist/api/mesh.d.ts +489 -0
  11. package/dist/api/text.d.ts +1 -1
  12. package/dist/docs/guides/concepts.md +32 -495
  13. package/dist/docs/guides/fonts.md +14 -13
  14. package/dist/docs/guides/fundamentals.md +30 -29
  15. package/dist/docs/guides/generation.md +84 -64
  16. package/dist/docs/guides/geometry-values.md +193 -0
  17. package/dist/docs/guides/hosting.md +147 -48
  18. package/dist/docs/guides/profiles-and-extrusion.md +252 -0
  19. package/dist/docs/guides/recipes.md +33 -769
  20. package/dist/docs/guides/resolution-and-inspection.md +133 -0
  21. package/dist/docs/guides/solid-joins.md +126 -0
  22. package/dist/docs/guides/standalone-model.md +8 -7
  23. package/dist/docs/guides/svg-and-text.md +215 -0
  24. package/dist/docs/guides/sweeps-and-lofts.md +179 -0
  25. package/dist/docs/guides/transforms-and-placement.md +313 -0
  26. package/dist/docs/manifest.json +3224 -4430
  27. package/dist/docs/reference/engine/GenerationOptions.md +12 -5
  28. package/dist/docs/reference/engine/GeometryResource.md +19 -13
  29. package/dist/docs/reference/engine/ModelDependencies.md +9 -3
  30. package/dist/docs/reference/engine/ModelEngine.md +33 -24
  31. package/dist/docs/reference/engine/ModelEngineOptions.md +13 -2
  32. package/dist/docs/reference/engine/ModelPart.md +114 -0
  33. package/dist/docs/reference/engine/ModelResult.md +181 -0
  34. package/dist/docs/reference/engine/ModelRunArguments.md +34 -0
  35. package/dist/docs/reference/engine/ModelRunOptions.md +110 -0
  36. package/dist/docs/reference/engine/ModelSession.md +22 -16
  37. package/dist/docs/reference/engine/SessionOptions.md +21 -10
  38. package/dist/docs/reference/engine/categories/host-lifecycle.md +20 -15
  39. package/dist/docs/reference/engine/checkModel.md +49 -0
  40. package/dist/docs/reference/engine/createModelEngine.md +11 -13
  41. package/dist/docs/reference/engine/defaultModelingLimits.md +15 -2
  42. package/dist/docs/reference/engine/modelingWasmUrl.md +7 -1
  43. package/dist/docs/reference/engine.md +8 -15
  44. package/dist/docs/reference/export/Export3mfOptions.md +24 -0
  45. package/dist/docs/reference/export/ExportDiagnostic.md +59 -0
  46. package/dist/docs/reference/export/ExportFormat.md +25 -0
  47. package/dist/docs/reference/export/ExportGeometry.md +39 -0
  48. package/dist/docs/reference/export/ExportGlbOptions.md +118 -0
  49. package/dist/docs/reference/export/ExportLimits.md +83 -0
  50. package/dist/docs/reference/export/ExportMaterial.md +47 -0
  51. package/dist/docs/reference/export/ExportOptions.md +94 -0
  52. package/dist/docs/reference/export/ExportPart.md +88 -0
  53. package/dist/docs/reference/export/ExportReport.md +82 -0
  54. package/dist/docs/reference/export/ExportSink.md +39 -0
  55. package/dist/docs/reference/export/ExportStlOptions.md +24 -0
  56. package/dist/docs/reference/export/ExportedFile.md +110 -0
  57. package/dist/docs/reference/export/categories/mesh-serialization.md +47 -0
  58. package/dist/docs/reference/export/defaultExportLimits.md +20 -0
  59. package/dist/docs/reference/export/export3mf.md +64 -0
  60. package/dist/docs/reference/export/exportGlb.md +68 -0
  61. package/dist/docs/reference/export/exportStl.md +64 -0
  62. package/dist/docs/reference/export/write3mf.md +71 -0
  63. package/dist/docs/reference/export/writeGlb.md +75 -0
  64. package/dist/docs/reference/export/writeStl.md +71 -0
  65. package/dist/docs/reference/export.md +21 -0
  66. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +16 -2
  67. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +7 -1
  68. package/dist/docs/reference/geometry/Anchor3-type.md +13 -3
  69. package/dist/docs/reference/geometry/ArcCurve2.md +8 -2
  70. package/dist/docs/reference/geometry/ArcCurve3.md +8 -2
  71. package/dist/docs/reference/geometry/AttachOptions.md +13 -3
  72. package/dist/docs/reference/geometry/AxisAngleRotation3.md +9 -3
  73. package/dist/docs/reference/geometry/Bevel.md +32 -0
  74. package/dist/docs/reference/geometry/BevelSize.md +28 -0
  75. package/dist/docs/reference/geometry/Bounds2-type.md +18 -4
  76. package/dist/docs/reference/geometry/Bounds2Data.md +22 -4
  77. package/dist/docs/reference/geometry/Bounds2Input.md +18 -4
  78. package/dist/docs/reference/geometry/Bounds2Options.md +61 -11
  79. package/dist/docs/reference/geometry/Bounds3-type.md +18 -4
  80. package/dist/docs/reference/geometry/Bounds3Data.md +18 -4
  81. package/dist/docs/reference/geometry/Bounds3Input.md +18 -4
  82. package/dist/docs/reference/geometry/Bounds3Options.md +61 -11
  83. package/dist/docs/reference/geometry/BoundsFit2.md +10 -4
  84. package/dist/docs/reference/geometry/BoundsFit3.md +10 -4
  85. package/dist/docs/reference/geometry/BoundsFitOptions.md +10 -4
  86. package/dist/docs/reference/geometry/BoxAnchorFace.md +9 -3
  87. package/dist/docs/reference/geometry/BoxAnchorOptions.md +12 -6
  88. package/dist/docs/reference/geometry/BoxEdge.md +11 -1
  89. package/dist/docs/reference/geometry/BoxEdgeSelection.md +11 -1
  90. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +11 -1
  91. package/dist/docs/reference/geometry/BoxOptions.md +13 -3
  92. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +16 -2
  93. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +16 -2
  94. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +11 -1
  95. package/dist/docs/reference/geometry/CircleContourOptions.md +12 -2
  96. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +15 -3
  97. package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -1
  98. package/dist/docs/reference/geometry/CircularSampling.md +7 -1
  99. package/dist/docs/reference/geometry/CircularSamplingOptions.md +7 -1
  100. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +8 -2
  101. package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -2
  102. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +8 -2
  103. package/dist/docs/reference/geometry/Contour.md +12 -2
  104. package/dist/docs/reference/geometry/ContourCurve.md +8 -2
  105. package/dist/docs/reference/geometry/ContourPoint.md +8 -2
  106. package/dist/docs/reference/geometry/ContourSegment.md +8 -2
  107. package/dist/docs/reference/geometry/CorrespondingComponent.md +12 -2
  108. package/dist/docs/reference/geometry/CorrespondingContour.md +12 -2
  109. package/dist/docs/reference/geometry/CorrespondingProfile.md +12 -2
  110. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +12 -2
  111. package/dist/docs/reference/geometry/CubicBezierCurve2.md +8 -2
  112. package/dist/docs/reference/geometry/CubicBezierCurve3.md +8 -2
  113. package/dist/docs/reference/geometry/Curve2.md +8 -2
  114. package/dist/docs/reference/geometry/Curve3.md +8 -2
  115. package/dist/docs/reference/geometry/CurveSamplingOptions.md +16 -2
  116. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +16 -2
  117. package/dist/docs/reference/geometry/CylinderAnchorFace.md +9 -3
  118. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +11 -5
  119. package/dist/docs/reference/geometry/CylinderOptions.md +11 -1
  120. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +8 -2
  121. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -2
  122. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +8 -2
  123. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +8 -2
  124. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +8 -2
  125. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +8 -2
  126. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +8 -2
  127. package/dist/docs/reference/geometry/CylindricalGearSpec.md +8 -2
  128. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -1
  129. package/dist/docs/reference/geometry/EdgeTreatment.md +11 -1
  130. package/dist/docs/reference/geometry/EllipseContourOptions.md +14 -4
  131. package/dist/docs/reference/geometry/EndTreatments.md +12 -2
  132. package/dist/docs/reference/{model/ExtrudeOptions.md → geometry/ExtrudeMeshOptions.md} +30 -26
  133. package/dist/docs/reference/geometry/ExtrudeOptions.md +29 -11
  134. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +18 -4
  135. package/dist/docs/reference/geometry/FittedTextLayout.md +8 -2
  136. package/dist/docs/reference/geometry/Frame3.md +16 -2
  137. package/dist/docs/reference/geometry/GeometryError.md +11 -1
  138. package/dist/docs/reference/geometry/GeometryErrorCode.md +11 -1
  139. package/dist/docs/reference/geometry/GeometryErrorContext.md +11 -1
  140. package/dist/docs/reference/geometry/GeometryResolution.md +15 -1
  141. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +16 -2
  142. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +15 -1
  143. package/dist/docs/reference/geometry/GridPatternOptions.md +12 -2
  144. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +12 -2
  145. package/dist/docs/reference/geometry/HeightfieldOptions.md +18 -3
  146. package/dist/docs/reference/geometry/HeightfieldPreflight.md +12 -2
  147. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +9 -3
  148. package/dist/docs/reference/geometry/ImmutableBuffer-type.md +110 -0
  149. package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +57 -0
  150. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +63 -84
  151. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +12 -2
  152. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +8 -2
  153. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +8 -2
  154. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +12 -2
  155. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +12 -2
  156. package/dist/docs/reference/geometry/LineCurve2.md +8 -2
  157. package/dist/docs/reference/geometry/LineCurve3.md +8 -2
  158. package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -2
  159. package/dist/docs/reference/geometry/LoftCorrespondence.md +16 -2
  160. package/dist/docs/reference/geometry/LoftMeshStation.md +12 -2
  161. package/dist/docs/reference/geometry/LoftOptions.md +18 -4
  162. package/dist/docs/reference/geometry/LoftPlacement.md +16 -2
  163. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +8 -2
  164. package/dist/docs/reference/geometry/MatchProfilesOptions.md +12 -2
  165. package/dist/docs/reference/geometry/MetricFastenerSize.md +8 -2
  166. package/dist/docs/reference/geometry/MetricFastenerStandard.md +8 -2
  167. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +8 -2
  168. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +8 -2
  169. package/dist/docs/reference/geometry/ModelingLimits.md +19 -1
  170. package/dist/docs/reference/geometry/NumericArray.md +28 -0
  171. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +8 -2
  172. package/dist/docs/reference/geometry/Path2-type.md +16 -2
  173. package/dist/docs/reference/geometry/Path2Data.md +16 -2
  174. package/dist/docs/reference/geometry/Path2Input.md +16 -2
  175. package/dist/docs/reference/geometry/Path3-type.md +16 -2
  176. package/dist/docs/reference/geometry/Path3Data.md +16 -2
  177. package/dist/docs/reference/geometry/Path3Input.md +16 -2
  178. package/dist/docs/reference/geometry/PathFrame.md +8 -2
  179. package/dist/docs/reference/geometry/PathLocation.md +16 -2
  180. package/dist/docs/reference/geometry/PathNormalGuide.md +16 -2
  181. package/dist/docs/reference/geometry/PathOptions.md +12 -2
  182. package/dist/docs/reference/geometry/PathPatternOptions.md +12 -2
  183. package/dist/docs/reference/geometry/PathPlacement.md +8 -2
  184. package/dist/docs/reference/geometry/PathResamplingOptions.md +16 -2
  185. package/dist/docs/reference/geometry/Pivot2Options.md +17 -3
  186. package/dist/docs/reference/geometry/Pivot3Options.md +17 -3
  187. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +12 -2
  188. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +12 -2
  189. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +12 -2
  190. package/dist/docs/reference/geometry/PlanarPatchQuality.md +12 -2
  191. package/dist/docs/reference/geometry/PolygonData.md +12 -2
  192. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -2
  193. package/dist/docs/reference/geometry/PrimitiveAttachment.md +11 -3
  194. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +11 -1
  195. package/dist/docs/reference/geometry/PrintableThreadFit.md +12 -2
  196. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +12 -2
  197. package/dist/docs/reference/geometry/Profile.md +8 -2
  198. package/dist/docs/reference/geometry/ProfileComponent2.md +12 -2
  199. package/dist/docs/reference/geometry/ProfileContour2.md +12 -2
  200. package/dist/docs/reference/geometry/ProfileSpan2.md +12 -2
  201. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +11 -1
  202. package/dist/docs/reference/geometry/RackPitchDimensions.md +8 -2
  203. package/dist/docs/reference/geometry/RackPitchSpec.md +8 -2
  204. package/dist/docs/reference/geometry/RadialPatternOptions.md +12 -2
  205. package/dist/docs/reference/geometry/RadialSizing.md +11 -1
  206. package/dist/docs/reference/geometry/RadialSizingOptions.md +11 -1
  207. package/dist/docs/reference/geometry/RectangleContourOptions.md +14 -4
  208. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +12 -2
  209. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +12 -2
  210. package/dist/docs/reference/geometry/RectangleProfileOptions.md +10 -4
  211. package/dist/docs/reference/geometry/RegionData.md +12 -2
  212. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +8 -2
  213. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +7 -1
  214. package/dist/docs/reference/geometry/RevolveOptions.md +17 -3
  215. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +11 -1
  216. package/dist/docs/reference/geometry/RowLayoutOptions.md +10 -4
  217. package/dist/docs/reference/geometry/SampleContourOptions.md +8 -2
  218. package/dist/docs/reference/geometry/SampleHelixOptions.md +8 -2
  219. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +8 -2
  220. package/dist/docs/reference/geometry/SampledCurve2.md +8 -2
  221. package/dist/docs/reference/geometry/SampledCurve3.md +8 -2
  222. package/dist/docs/reference/geometry/SampledThreadHelices.md +8 -2
  223. package/dist/docs/reference/geometry/SideProfileCurve.md +8 -2
  224. package/dist/docs/reference/geometry/SideProfilePoint.md +8 -2
  225. package/dist/docs/reference/geometry/SideProfileSegment.md +8 -2
  226. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +11 -1
  227. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +12 -2
  228. package/dist/docs/reference/geometry/SphereOptions.md +11 -1
  229. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +16 -2
  230. package/dist/docs/reference/geometry/StarContourOptions.md +84 -0
  231. package/dist/docs/reference/geometry/StrokeCap.md +12 -2
  232. package/dist/docs/reference/geometry/StrokeJoin.md +12 -2
  233. package/dist/docs/reference/geometry/StrokeOptions.md +12 -2
  234. package/dist/docs/reference/geometry/SvgImportOptions.md +8 -2
  235. package/dist/docs/reference/geometry/SvgRegionPreflight.md +8 -2
  236. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +8 -2
  237. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +8 -2
  238. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +8 -2
  239. package/dist/docs/reference/geometry/SweepOptions.md +16 -2
  240. package/dist/docs/reference/geometry/SweepOrientation.md +16 -2
  241. package/dist/docs/reference/geometry/ThreadBevelOptions.md +18 -31
  242. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +8 -2
  243. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +8 -2
  244. package/dist/docs/reference/geometry/ThreadEndStyle.md +16 -2
  245. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +16 -2
  246. package/dist/docs/reference/geometry/ThreadHandedness.md +16 -2
  247. package/dist/docs/reference/geometry/ThreadHelixOptions.md +8 -2
  248. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +16 -2
  249. package/dist/docs/reference/geometry/ThreadLeadInShape.md +16 -2
  250. package/dist/docs/reference/geometry/ThreadProfile-type.md +17 -3
  251. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +16 -2
  252. package/dist/docs/reference/geometry/ThreadProfileSpec.md +16 -2
  253. package/dist/docs/reference/geometry/{HelicalThreadRidgeMeshOptions.md → ThreadRidgeOptions.md} +19 -5
  254. package/dist/docs/reference/geometry/ThreadRole.md +8 -2
  255. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshOptions.md → ThreadSolidOptions.md} +29 -66
  256. package/dist/docs/reference/geometry/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +17 -3
  257. package/dist/docs/reference/geometry/ThreadedNutOptions.md +86 -87
  258. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +29 -7
  259. package/dist/docs/reference/geometry/ThreadedNutShape.md +12 -2
  260. package/dist/docs/reference/geometry/ThreadedRodOptions.md +63 -84
  261. package/dist/docs/reference/geometry/TorusOptions.md +11 -1
  262. package/dist/docs/reference/geometry/Transform2-type.md +17 -3
  263. package/dist/docs/reference/geometry/Transform2Data.md +17 -3
  264. package/dist/docs/reference/geometry/Transform2Input.md +17 -3
  265. package/dist/docs/reference/geometry/Transform3-type.md +17 -3
  266. package/dist/docs/reference/geometry/Transform3Data.md +17 -3
  267. package/dist/docs/reference/geometry/Transform3Input.md +17 -3
  268. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +16 -2
  269. package/dist/docs/reference/geometry/TriangleMesh.md +19 -6
  270. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +25 -5
  271. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +13 -3
  272. package/dist/docs/reference/geometry/TriangleMeshInput.md +29 -0
  273. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +16 -2
  274. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +12 -2
  275. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +12 -2
  276. package/dist/docs/reference/geometry/TriangleMeshSignature.md +14 -4
  277. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +12 -2
  278. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +12 -2
  279. package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +145 -0
  280. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +12 -2
  281. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +16 -2
  282. package/dist/docs/reference/geometry/TubeOptions.md +20 -86
  283. package/dist/docs/reference/geometry/Vector2-type.md +17 -3
  284. package/dist/docs/reference/geometry/Vector2Data.md +21 -3
  285. package/dist/docs/reference/geometry/Vector2Input.md +17 -3
  286. package/dist/docs/reference/geometry/Vector3-type.md +17 -3
  287. package/dist/docs/reference/geometry/Vector3Data.md +17 -3
  288. package/dist/docs/reference/geometry/Vector3Input.md +17 -3
  289. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +12 -2
  290. package/dist/docs/reference/geometry/VectorTextLayout.md +16 -2
  291. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +14 -4
  292. package/dist/docs/reference/geometry/VectorTextMetrics.md +16 -2
  293. package/dist/docs/reference/geometry/VectorTextOptions.md +12 -2
  294. package/dist/docs/reference/geometry/add2.md +9 -3
  295. package/dist/docs/reference/geometry/add3.md +9 -3
  296. package/dist/docs/reference/geometry/anchor3.md +9 -3
  297. package/dist/docs/reference/geometry/anchorFrame3.md +8 -2
  298. package/dist/docs/reference/geometry/applyTransformDirection3.md +9 -3
  299. package/dist/docs/reference/geometry/applyTransformPoint3.md +9 -3
  300. package/dist/docs/reference/geometry/attachmentTransform3.md +9 -3
  301. package/dist/docs/reference/geometry/bounds2.md +18 -8
  302. package/dist/docs/reference/geometry/bounds3.md +18 -8
  303. package/dist/docs/reference/geometry/boundsCenter.md +10 -4
  304. package/dist/docs/reference/geometry/boundsSize.md +10 -4
  305. package/dist/docs/reference/geometry/boxAnchor3.md +11 -5
  306. package/dist/docs/reference/geometry/categories/bounds-layout.md +6 -6
  307. package/dist/docs/reference/geometry/categories/curves-paths.md +3 -3
  308. package/dist/docs/reference/geometry/categories/mechanical.md +9 -11
  309. package/dist/docs/reference/geometry/categories/meshes.md +20 -33
  310. package/dist/docs/reference/geometry/categories/pattern-placement.md +3 -3
  311. package/dist/docs/reference/geometry/categories/primitive-options.md +4 -4
  312. package/dist/docs/reference/geometry/categories/profiles-regions.md +6 -5
  313. package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -3
  314. package/dist/docs/reference/geometry/categories/transforms-math.md +5 -4
  315. package/dist/docs/reference/geometry/categories/vector-import.md +4 -4
  316. package/dist/docs/reference/geometry/circleContour.md +8 -2
  317. package/dist/docs/reference/geometry/closeToAxis.md +8 -2
  318. package/dist/docs/reference/geometry/compensateThreadDiameters.md +8 -2
  319. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +8 -2
  320. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +8 -2
  321. package/dist/docs/reference/geometry/composeTransform3.md +9 -3
  322. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +8 -2
  323. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -2
  324. package/dist/docs/reference/geometry/contourContainsPoint.md +8 -2
  325. package/dist/docs/reference/geometry/cross2.md +9 -3
  326. package/dist/docs/reference/geometry/cross3.md +9 -3
  327. package/dist/docs/reference/geometry/cylinderAnchor3.md +10 -4
  328. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +8 -2
  329. package/dist/docs/reference/geometry/distance2.md +9 -3
  330. package/dist/docs/reference/geometry/distance3.md +9 -3
  331. package/dist/docs/reference/geometry/distributeAlongPath.md +8 -2
  332. package/dist/docs/reference/geometry/dot2.md +9 -3
  333. package/dist/docs/reference/geometry/dot3.md +9 -3
  334. package/dist/docs/reference/geometry/ellipseContour.md +8 -2
  335. package/dist/docs/reference/geometry/eulerTransform3.md +9 -3
  336. package/dist/docs/reference/geometry/fitBounds.md +10 -4
  337. package/dist/docs/reference/geometry/fitTextLayout.md +8 -2
  338. package/dist/docs/reference/geometry/frameTransform3.md +9 -3
  339. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +8 -2
  340. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +8 -2
  341. package/dist/docs/reference/geometry/gridPatternTransforms.md +8 -2
  342. package/dist/docs/reference/{model → geometry}/immutableBuffer.md +13 -2
  343. package/dist/docs/reference/geometry/inverseTransform3.md +9 -3
  344. package/dist/docs/reference/geometry/isGeometryError.md +11 -1
  345. package/dist/docs/reference/geometry/layoutRow.md +10 -4
  346. package/dist/docs/reference/geometry/length2.md +9 -3
  347. package/dist/docs/reference/geometry/length3.md +9 -3
  348. package/dist/docs/reference/geometry/lerp2.md +9 -3
  349. package/dist/docs/reference/geometry/lerp3.md +9 -3
  350. package/dist/docs/reference/geometry/linearPatternTransforms.md +8 -2
  351. package/dist/docs/reference/geometry/matchProfiles.md +8 -2
  352. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +8 -2
  353. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +8 -2
  354. package/dist/docs/reference/geometry/normalize2.md +9 -3
  355. package/dist/docs/reference/geometry/normalize3.md +9 -3
  356. package/dist/docs/reference/geometry/normalizeContour.md +8 -2
  357. package/dist/docs/reference/geometry/normalizePolygon.md +8 -2
  358. package/dist/docs/reference/geometry/normalizeRegion.md +8 -2
  359. package/dist/docs/reference/geometry/path2.md +12 -2
  360. package/dist/docs/reference/geometry/path3.md +12 -2
  361. package/dist/docs/reference/geometry/pathPatternTransforms.md +8 -2
  362. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +25 -26
  363. package/dist/docs/reference/geometry/preflightSvgRegion.md +8 -2
  364. package/dist/docs/reference/geometry/preflightThreadedNut.md +31 -27
  365. package/dist/docs/reference/geometry/preflightThreadedRod.md +25 -26
  366. package/dist/docs/reference/geometry/projectOntoPlane3.md +9 -3
  367. package/dist/docs/reference/geometry/radialPatternTransforms.md +8 -2
  368. package/dist/docs/reference/geometry/rectangleContour.md +17 -6
  369. package/dist/docs/reference/geometry/rectangleProfile.md +9 -3
  370. package/dist/docs/reference/geometry/regionArea.md +8 -2
  371. package/dist/docs/reference/geometry/regionBounds.md +8 -2
  372. package/dist/docs/reference/geometry/regularPolygonContour.md +9 -3
  373. package/dist/docs/reference/geometry/resamplePolyline2.md +8 -2
  374. package/dist/docs/reference/geometry/resamplePolyline3.md +8 -2
  375. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +7 -1
  376. package/dist/docs/reference/geometry/resolveArcSegments.md +7 -1
  377. package/dist/docs/reference/geometry/resolveCircularSampling.md +7 -1
  378. package/dist/docs/reference/geometry/resolveCircularSegments.md +7 -1
  379. package/dist/docs/reference/geometry/resolveCylindricalGear.md +8 -2
  380. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +8 -2
  381. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +8 -2
  382. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +8 -2
  383. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +7 -1
  384. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +8 -2
  385. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +8 -2
  386. package/dist/docs/reference/geometry/resolveRackPitch.md +8 -2
  387. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +8 -2
  388. package/dist/docs/reference/geometry/rotate2.md +9 -3
  389. package/dist/docs/reference/geometry/rotationTransform3.md +9 -3
  390. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -2
  391. package/dist/docs/reference/geometry/sampleContour.md +8 -2
  392. package/dist/docs/reference/geometry/sampleCurve2.md +8 -2
  393. package/dist/docs/reference/geometry/sampleCurve3.md +8 -2
  394. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +8 -2
  395. package/dist/docs/reference/geometry/sampleHelix.md +8 -2
  396. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +8 -2
  397. package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -2
  398. package/dist/docs/reference/geometry/sampleSideProfile.md +8 -2
  399. package/dist/docs/reference/geometry/sampleTextContours.md +8 -2
  400. package/dist/docs/reference/geometry/sampleThreadHelices.md +8 -2
  401. package/dist/docs/reference/geometry/scale2.md +9 -3
  402. package/dist/docs/reference/geometry/scale3.md +9 -3
  403. package/dist/docs/reference/geometry/scaleTransform3.md +9 -3
  404. package/dist/docs/reference/geometry/signedContourArea.md +8 -2
  405. package/dist/docs/reference/geometry/starContour.md +24 -16
  406. package/dist/docs/reference/geometry/strokeRegionData.md +8 -2
  407. package/dist/docs/reference/geometry/subtract2.md +9 -3
  408. package/dist/docs/reference/geometry/subtract3.md +9 -3
  409. package/dist/docs/reference/geometry/threadProfile.md +8 -2
  410. package/dist/docs/reference/geometry/transform2.md +13 -3
  411. package/dist/docs/reference/geometry/transform3.md +13 -3
  412. package/dist/docs/reference/geometry/transformDeterminant3.md +9 -3
  413. package/dist/docs/reference/geometry/transformRegionData.md +8 -2
  414. package/dist/docs/reference/geometry/translationTransform3.md +9 -3
  415. package/dist/docs/reference/geometry/triangulateContour.md +8 -2
  416. package/dist/docs/reference/geometry/validateRigidTransform3.md +41 -0
  417. package/dist/docs/reference/geometry/validateTransform3.md +9 -3
  418. package/dist/docs/reference/geometry/vector2.md +13 -3
  419. package/dist/docs/reference/geometry/vector3.md +13 -3
  420. package/dist/docs/reference/geometry.md +10 -10
  421. package/dist/docs/reference/mesh/MeshRenderOptions.md +28 -0
  422. package/dist/docs/reference/mesh/RenderMesh.md +68 -0
  423. package/dist/docs/reference/mesh/analyze.md +102 -0
  424. package/dist/docs/reference/mesh/analyzeQuality.md +62 -0
  425. package/dist/docs/reference/mesh/bounds.md +45 -0
  426. package/dist/docs/reference/mesh/categories/operations.md +57 -0
  427. package/dist/docs/reference/mesh/centroid.md +45 -0
  428. package/dist/docs/reference/mesh/extrude.md +79 -0
  429. package/dist/docs/reference/mesh/heightfield.md +57 -0
  430. package/dist/docs/reference/mesh/immutable.md +51 -0
  431. package/dist/docs/reference/mesh/join.md +47 -0
  432. package/dist/docs/reference/mesh/loft.md +83 -0
  433. package/dist/docs/reference/mesh/optimizePlanarPatches.md +102 -0
  434. package/dist/docs/reference/mesh/preflightHeightfield.md +48 -0
  435. package/dist/docs/reference/mesh/preflightThreadSolid.md +96 -0
  436. package/dist/docs/reference/mesh/render.md +57 -0
  437. package/dist/docs/reference/mesh/reverse.md +41 -0
  438. package/dist/docs/reference/{geometry/revolveMesh.md → mesh/revolve.md} +23 -17
  439. package/dist/docs/reference/mesh/signature.md +70 -0
  440. package/dist/docs/reference/mesh/sweep.md +92 -0
  441. package/dist/docs/reference/mesh/threadRidge.md +78 -0
  442. package/dist/docs/reference/mesh/threadSolid.md +96 -0
  443. package/dist/docs/reference/mesh/transform.md +53 -0
  444. package/dist/docs/reference/mesh/validate.md +75 -0
  445. package/dist/docs/reference/{geometry/validateSolidMesh.md → mesh/validateSolid.md} +23 -11
  446. package/dist/docs/reference/mesh.md +21 -0
  447. package/dist/docs/reference/model/CircleOptions.md +13 -7
  448. package/dist/docs/reference/model/DiagnosticOptions.md +21 -1
  449. package/dist/docs/reference/model/EllipseOptions.md +13 -7
  450. package/dist/docs/reference/model/GenerateCallback.md +11 -5
  451. package/dist/docs/reference/model/GenerateContext.md +26 -99
  452. package/dist/docs/reference/model/GenerationDiagnostic.md +19 -1
  453. package/dist/docs/reference/model/GenerationError.md +8 -2
  454. package/dist/docs/reference/model/HoleCutterOptions.md +17 -10
  455. package/dist/docs/reference/model/HoleCutterOverrun.md +10 -3
  456. package/dist/docs/reference/model/HoleCutterRecess.md +10 -3
  457. package/dist/docs/reference/model/HullOptions.md +13 -6
  458. package/dist/docs/reference/model/ImmutableValue.md +26 -0
  459. package/dist/docs/reference/model/ImplicitOptions.md +12 -6
  460. package/dist/docs/reference/model/JoinOptions.md +76 -0
  461. package/dist/docs/reference/model/JoinTransition.md +54 -0
  462. package/dist/docs/reference/model/KnuckleHinge-type.md +9 -3
  463. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +7 -1
  464. package/dist/docs/reference/model/KnuckleHingeOptions.md +10 -4
  465. package/dist/docs/reference/model/KnuckleHingeWeb.md +7 -1
  466. package/dist/docs/reference/model/LoftStation.md +16 -9
  467. package/dist/docs/reference/model/Memo.md +54 -0
  468. package/dist/docs/reference/model/ModelProgram.md +8 -2
  469. package/dist/docs/reference/model/PartDeclaration.md +87 -0
  470. package/dist/docs/reference/model/PartGeometry.md +10 -4
  471. package/dist/docs/reference/model/PartOptions.md +16 -22
  472. package/dist/docs/reference/model/PatternSource.md +10 -4
  473. package/dist/docs/reference/model/PlaneOptions.md +11 -4
  474. package/dist/docs/reference/model/PolygonOptions.md +20 -14
  475. package/dist/docs/reference/model/Profile.md +10 -4
  476. package/dist/docs/reference/model/RectangleOptions.md +28 -22
  477. package/dist/docs/reference/model/RegularPolygonOptions.md +13 -7
  478. package/dist/docs/reference/model/Section.md +196 -77
  479. package/dist/docs/reference/model/SectionHullOptions.md +13 -6
  480. package/dist/docs/reference/model/SectionInspection.md +12 -18
  481. package/dist/docs/reference/model/SectionOffsetJoin.md +10 -4
  482. package/dist/docs/reference/model/SectionOffsetOptions.md +12 -6
  483. package/dist/docs/reference/model/Solid.md +339 -54
  484. package/dist/docs/reference/model/SolidInspection.md +12 -18
  485. package/dist/docs/reference/model/SolidSegmentHit.md +14 -4
  486. package/dist/docs/reference/model/StarOptions.md +53 -25
  487. package/dist/docs/reference/model/SvgOrigin.md +10 -4
  488. package/dist/docs/reference/model/SvgPathSectionOptions.md +14 -8
  489. package/dist/docs/reference/model/SvgSectionOptions.md +16 -10
  490. package/dist/docs/reference/model/TextSectionOptions.md +14 -8
  491. package/dist/docs/reference/model/box.md +18 -11
  492. package/dist/docs/reference/model/categories/boolean-operations.md +13 -11
  493. package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -7
  494. package/dist/docs/reference/model/categories/explicit-profiles.md +1 -14
  495. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +11 -23
  496. package/dist/docs/reference/model/categories/generation.md +10 -15
  497. package/dist/docs/reference/model/categories/hinges.md +1 -4
  498. package/dist/docs/reference/model/categories/mesh-inspection.md +14 -9
  499. package/dist/docs/reference/model/categories/primitives.md +8 -24
  500. package/dist/docs/reference/model/categories/sections.md +6 -16
  501. package/dist/docs/reference/model/categories/threads.md +3 -30
  502. package/dist/docs/reference/model/categories/transforms-placement.md +5 -35
  503. package/dist/docs/reference/model/circle.md +10 -4
  504. package/dist/docs/reference/model/cylinder.md +13 -6
  505. package/dist/docs/reference/model/ellipse.md +10 -4
  506. package/dist/docs/reference/model/extrude.md +28 -20
  507. package/dist/docs/reference/model/generate.md +10 -4
  508. package/dist/docs/reference/model/gridPattern.md +15 -9
  509. package/dist/docs/reference/model/heightfield.md +10 -4
  510. package/dist/docs/reference/model/holeCutter.md +21 -4
  511. package/dist/docs/reference/model/hull.md +9 -2
  512. package/dist/docs/reference/model/implicit.md +9 -3
  513. package/dist/docs/reference/model/internalThreadCutter.md +31 -33
  514. package/dist/docs/reference/model/intersect.md +11 -4
  515. package/dist/docs/reference/model/join.md +89 -0
  516. package/dist/docs/reference/model/knuckleHinge.md +8 -2
  517. package/dist/docs/reference/model/linearPattern.md +15 -9
  518. package/dist/docs/reference/model/loft.md +36 -28
  519. package/dist/docs/reference/model/matchProfiles.md +14 -8
  520. package/dist/docs/reference/model/minkowskiSum.md +9 -2
  521. package/dist/docs/reference/model/pathPattern.md +25 -19
  522. package/dist/docs/reference/model/polygon.md +13 -7
  523. package/dist/docs/reference/model/preflightInternalThreadCutter.md +33 -35
  524. package/dist/docs/reference/model/preflightThreadedNut.md +43 -40
  525. package/dist/docs/reference/model/preflightThreadedRod.md +33 -35
  526. package/dist/docs/reference/model/radialPattern.md +15 -9
  527. package/dist/docs/reference/model/rectangle.md +14 -8
  528. package/dist/docs/reference/model/regularPolygon.md +10 -4
  529. package/dist/docs/reference/model/revolve.md +25 -17
  530. package/dist/docs/reference/model/solidFromMesh.md +16 -9
  531. package/dist/docs/reference/model/sphere.md +13 -6
  532. package/dist/docs/reference/model/star.md +17 -11
  533. package/dist/docs/reference/model/stroke.md +21 -15
  534. package/dist/docs/reference/model/svgPathSection.md +12 -6
  535. package/dist/docs/reference/model/svgSection.md +13 -7
  536. package/dist/docs/reference/model/sweep.md +29 -21
  537. package/dist/docs/reference/model/textSection.md +15 -9
  538. package/dist/docs/reference/model/threadRidge.md +21 -15
  539. package/dist/docs/reference/model/threadedNut.md +41 -38
  540. package/dist/docs/reference/model/threadedRod.md +31 -33
  541. package/dist/docs/reference/model/torus.md +20 -13
  542. package/dist/docs/reference/model/tube.md +13 -41
  543. package/dist/docs/reference/model/union.md +11 -4
  544. package/dist/docs/reference/model.md +11 -20
  545. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +8 -2
  546. package/dist/docs/reference/text/VectorFont.md +39 -33
  547. package/dist/docs/reference/text/VectorFontOptions.md +7 -1
  548. package/dist/docs/reference/text/categories/font-preparation.md +3 -15
  549. package/dist/docs/reference/text/prepareVectorFont.md +7 -1
  550. package/dist/docs/reference/text.md +4 -4
  551. package/dist/engine/execution.js +10 -6
  552. package/dist/engine/finalization.js +2 -74
  553. package/dist/engine/index.js +24 -30
  554. package/dist/engine/model-parts.js +8 -0
  555. package/dist/engine/model-summary.js +5 -5
  556. package/dist/engine/native/construction-mesh.js +41 -0
  557. package/dist/engine/native/index.js +1 -1
  558. package/dist/engine/native/material-components.js +5 -54
  559. package/dist/engine/native/mesh-observation.js +55 -0
  560. package/dist/engine/native/operations.js +0 -7
  561. package/dist/engine/native/regions.js +2 -1
  562. package/dist/engine/native/scoped-primitives.js +5 -4
  563. package/dist/engine/native/threads.js +14 -14
  564. package/dist/engine/{construction-operations.js → operations/construction.js} +25 -23
  565. package/dist/engine/{modeling-context.js → operations/context.js} +12 -10
  566. package/dist/engine/{operation-environment.js → operations/environment.js} +2 -2
  567. package/dist/engine/{extrusion-finishing.js → operations/extrusion-finishing.js} +23 -22
  568. package/dist/engine/{hole-cutter-operation.js → operations/hole-cutter.js} +3 -3
  569. package/dist/engine/{inspection-operations.js → operations/inspection.js} +6 -6
  570. package/dist/engine/operations/join-collar-profile.js +120 -0
  571. package/dist/engine/operations/join.js +508 -0
  572. package/dist/engine/{knuckle-hinge-operation.js → operations/knuckle-hinge.js} +4 -4
  573. package/dist/engine/{loft-operations.js → operations/loft.js} +13 -12
  574. package/dist/engine/{mechanical-operations.js → operations/mechanical.js} +2 -2
  575. package/dist/engine/{pattern-operations.js → operations/patterns.js} +4 -4
  576. package/dist/engine/{primitive-anchors.js → operations/primitives/anchors.js} +9 -4
  577. package/dist/engine/{primitive-operations.js → operations/primitives/construction.js} +18 -19
  578. package/dist/engine/{primitive-correspondence.js → operations/primitives/correspondence.js} +4 -4
  579. package/dist/engine/{profile-mesh.js → operations/primitives/profile-mesh.js} +12 -12
  580. package/dist/engine/{primitive-profiles.js → operations/primitives/profiles.js} +7 -7
  581. package/dist/engine/{section-operations.js → operations/sections.js} +8 -8
  582. package/dist/engine/{transform-operations.js → operations/transforms.js} +8 -8
  583. package/dist/engine/placement.js +3 -4
  584. package/dist/engine/recipe-realization.js +2 -2
  585. package/dist/engine/{deferred-context.js → session/deferred-context.js} +4 -4
  586. package/dist/engine/session/dependencies.js +93 -0
  587. package/dist/engine/session/graph.js +428 -0
  588. package/dist/engine/{session-native.js → session/native-cache.js} +2 -2
  589. package/dist/engine/{session.js → session/session.js} +20 -14
  590. package/dist/engine/{session-snapshot.js → session/snapshot-cache.js} +30 -60
  591. package/dist/export/3mf.js +190 -0
  592. package/dist/export/capture.js +178 -0
  593. package/dist/export/glb.js +209 -0
  594. package/dist/export/index.js +5 -0
  595. package/dist/export/limits.js +18 -0
  596. package/dist/export/stl.js +105 -0
  597. package/dist/export/types.js +1 -0
  598. package/dist/export/writer.js +54 -0
  599. package/dist/geometry/anchors.js +4 -11
  600. package/dist/geometry/bounds-value.js +22 -12
  601. package/dist/geometry/heightfield.js +10 -12
  602. package/dist/{model → geometry}/immutable-buffer.js +31 -12
  603. package/dist/geometry/index.js +16 -22
  604. package/dist/geometry/join-geometry.js +839 -0
  605. package/dist/geometry/loft/loft.js +11 -6
  606. package/dist/geometry/mechanical/index.js +5 -5
  607. package/dist/geometry/mechanical/threads/bevel.js +24 -0
  608. package/dist/geometry/mechanical/{threads.js → threads/fit.js} +4 -4
  609. package/dist/geometry/mechanical/{thread-helices.js → threads/helices.js} +3 -3
  610. package/dist/geometry/mechanical/{thread-mesh-plan.js → threads/mesh-plan.js} +38 -53
  611. package/dist/geometry/mechanical/{thread-mesh.js → threads/mesh.js} +9 -9
  612. package/dist/geometry/mechanical/{thread-profiles.js → threads/profiles.js} +3 -3
  613. package/dist/geometry/mechanical/{thread-solids.js → threads/solids.js} +58 -89
  614. package/dist/geometry/mechanical/{thread-surface.js → threads/surface.js} +7 -8
  615. package/dist/geometry/mesh/mesh-centroid.js +3 -2
  616. package/dist/geometry/mesh/mesh-planar.js +27 -8
  617. package/dist/geometry/mesh/mesh-quality.js +2 -1
  618. package/dist/geometry/mesh/mesh-render.js +205 -0
  619. package/dist/geometry/mesh/mesh-signature.js +7 -6
  620. package/dist/geometry/mesh/mesh-solid-intersections.js +43 -17
  621. package/dist/geometry/mesh/mesh-solid.js +8 -5
  622. package/dist/geometry/mesh/mesh-types.js +1 -0
  623. package/dist/geometry/mesh/mesh.js +13 -22
  624. package/dist/geometry/mesh-api.js +15 -0
  625. package/dist/geometry/primitive-resolvers.js +42 -14
  626. package/dist/geometry/profiles/primitives/circle.js +19 -0
  627. package/dist/geometry/profiles/{shapes.js → primitives/ellipse.js} +6 -10
  628. package/dist/geometry/profiles/{rectangle.js → primitives/rectangle.js} +14 -12
  629. package/dist/geometry/profiles/primitives/regular-polygon.js +33 -0
  630. package/dist/geometry/profiles/primitives/star.js +28 -0
  631. package/dist/geometry/region-offset.js +278 -0
  632. package/dist/geometry/regions.js +11 -1
  633. package/dist/geometry/revolve/revolve-mesh.js +1 -1
  634. package/dist/geometry/{svg-import.js → svg/import.js} +10 -10
  635. package/dist/geometry/sweeps/sweep-mesh.js +1 -1
  636. package/dist/geometry/transform3.js +29 -0
  637. package/dist/index.js +2 -1
  638. package/dist/model/diagnostic-path.js +26 -0
  639. package/dist/model/execution-binding.js +3 -3
  640. package/dist/model/generation.js +9 -3
  641. package/dist/model/geometry-recipes.js +1 -1
  642. package/dist/model/immutable-generation-data.js +45 -14
  643. package/dist/model/join.js +1 -0
  644. package/dist/model/operations.js +34 -144
  645. package/dist/model/recipe-declaration.js +7 -2
  646. package/dist/model/shape-handles.js +31 -7
  647. package/dist/text/index.js +1 -1
  648. package/package.json +38 -11
  649. package/dist/docs/reference/engine/Export3mfOptions.md +0 -29
  650. package/dist/docs/reference/engine/ExportMeshPart.md +0 -65
  651. package/dist/docs/reference/engine/ModelSnapshot.md +0 -184
  652. package/dist/docs/reference/engine/SnapshotPart.md +0 -133
  653. package/dist/docs/reference/engine/validateModel.md +0 -48
  654. package/dist/docs/reference/geometry/ThreadedNutBevel.md +0 -14
  655. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +0 -61
  656. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +0 -56
  657. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +0 -39
  658. package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +0 -64
  659. package/dist/docs/reference/geometry/extrudeMesh.md +0 -77
  660. package/dist/docs/reference/geometry/heightfieldMesh.md +0 -52
  661. package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +0 -72
  662. package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +0 -106
  663. package/dist/docs/reference/geometry/joinTriangleMeshes.md +0 -40
  664. package/dist/docs/reference/geometry/loftMesh.md +0 -77
  665. package/dist/docs/reference/geometry/meshBounds.md +0 -39
  666. package/dist/docs/reference/geometry/optimizePlanarPatches.md +0 -95
  667. package/dist/docs/reference/geometry/preflightHeightfield.md +0 -43
  668. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +0 -105
  669. package/dist/docs/reference/geometry/reverseTriangleMesh.md +0 -34
  670. package/dist/docs/reference/geometry/sweepMesh.md +0 -86
  671. package/dist/docs/reference/geometry/transformTriangleMesh.md +0 -46
  672. package/dist/docs/reference/geometry/validateTriangleMesh.md +0 -63
  673. package/dist/docs/reference/model/Anchor3.md +0 -55
  674. package/dist/docs/reference/model/AttachOptions.md +0 -69
  675. package/dist/docs/reference/model/Bounds2-type.md +0 -125
  676. package/dist/docs/reference/model/Bounds2Data.md +0 -44
  677. package/dist/docs/reference/model/Bounds2Input.md +0 -19
  678. package/dist/docs/reference/model/Bounds2Options.md +0 -70
  679. package/dist/docs/reference/model/Bounds3-type.md +0 -125
  680. package/dist/docs/reference/model/Bounds3Data.md +0 -44
  681. package/dist/docs/reference/model/Bounds3Input.md +0 -19
  682. package/dist/docs/reference/model/Bounds3Options.md +0 -70
  683. package/dist/docs/reference/model/BoxEdge.md +0 -15
  684. package/dist/docs/reference/model/BoxEdgeSelection.md +0 -19
  685. package/dist/docs/reference/model/BoxEdgeTreatments.md +0 -20
  686. package/dist/docs/reference/model/BoxOptions.md +0 -92
  687. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +0 -35
  688. package/dist/docs/reference/model/CircleContourOptions.md +0 -21
  689. package/dist/docs/reference/model/CircularPrimitiveOptions.md +0 -64
  690. package/dist/docs/reference/model/Computed.md +0 -40
  691. package/dist/docs/reference/model/ComputedValue.md +0 -24
  692. package/dist/docs/reference/model/Contour.md +0 -24
  693. package/dist/docs/reference/model/CorrespondingComponent.md +0 -46
  694. package/dist/docs/reference/model/CorrespondingContour.md +0 -46
  695. package/dist/docs/reference/model/CorrespondingProfile.md +0 -22
  696. package/dist/docs/reference/model/CorrespondingProfileStation.md +0 -27
  697. package/dist/docs/reference/model/CylinderOptions.md +0 -58
  698. package/dist/docs/reference/model/EdgeTreatment.md +0 -22
  699. package/dist/docs/reference/model/EllipseContourOptions.md +0 -21
  700. package/dist/docs/reference/model/EndTreatments.md +0 -39
  701. package/dist/docs/reference/model/FinalizedModel.md +0 -131
  702. package/dist/docs/reference/model/FinalizedPart.md +0 -87
  703. package/dist/docs/reference/model/Frame3.md +0 -63
  704. package/dist/docs/reference/model/GeneratedPart.md +0 -97
  705. package/dist/docs/reference/model/GeometryResolution.md +0 -70
  706. package/dist/docs/reference/model/GeometrySamplingLimits.md +0 -62
  707. package/dist/docs/reference/model/GeometryToleranceOptions.md +0 -46
  708. package/dist/docs/reference/model/GridPatternOptions.md +0 -50
  709. package/dist/docs/reference/model/HeightfieldOptions.md +0 -67
  710. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +0 -141
  711. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +0 -59
  712. package/dist/docs/reference/model/ImmutableBuffer-type.md +0 -84
  713. package/dist/docs/reference/model/ImmutableTriangleMesh.md +0 -38
  714. package/dist/docs/reference/model/InternalThreadCutterOptions.md +0 -246
  715. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +0 -77
  716. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +0 -47
  717. package/dist/docs/reference/model/KnuckleHingeSpec.md +0 -18
  718. package/dist/docs/reference/model/LinearPatternOptions.md +0 -39
  719. package/dist/docs/reference/model/LoftCorrespondence.md +0 -27
  720. package/dist/docs/reference/model/LoftOptions.md +0 -91
  721. package/dist/docs/reference/model/LoftPlacement.md +0 -73
  722. package/dist/docs/reference/model/MatchProfilesOptions.md +0 -35
  723. package/dist/docs/reference/model/ModelingLimits.md +0 -126
  724. package/dist/docs/reference/model/NumericArray.md +0 -14
  725. package/dist/docs/reference/model/Path2-type.md +0 -196
  726. package/dist/docs/reference/model/Path2Data.md +0 -50
  727. package/dist/docs/reference/model/Path2Input.md +0 -20
  728. package/dist/docs/reference/model/Path3-type.md +0 -196
  729. package/dist/docs/reference/model/Path3Data.md +0 -50
  730. package/dist/docs/reference/model/Path3Input.md +0 -20
  731. package/dist/docs/reference/model/PathLocation.md +0 -69
  732. package/dist/docs/reference/model/PathNormalGuide.md +0 -46
  733. package/dist/docs/reference/model/PathOptions.md +0 -38
  734. package/dist/docs/reference/model/PathPatternOptions.md +0 -48
  735. package/dist/docs/reference/model/PathResamplingOptions.md +0 -83
  736. package/dist/docs/reference/model/Pivot2Options.md +0 -28
  737. package/dist/docs/reference/model/Pivot3Options.md +0 -28
  738. package/dist/docs/reference/model/PolygonData.md +0 -44
  739. package/dist/docs/reference/model/PrimitiveAttachment.md +0 -41
  740. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +0 -110
  741. package/dist/docs/reference/model/PrintableThreadFit.md +0 -15
  742. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +0 -51
  743. package/dist/docs/reference/model/ProfileComponent2.md +0 -46
  744. package/dist/docs/reference/model/ProfileContour2.md +0 -36
  745. package/dist/docs/reference/model/ProfileSpan2.md +0 -47
  746. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +0 -41
  747. package/dist/docs/reference/model/RadialPatternOptions.md +0 -59
  748. package/dist/docs/reference/model/RadialSizing.md +0 -15
  749. package/dist/docs/reference/model/RadialSizingOptions.md +0 -40
  750. package/dist/docs/reference/model/RectangleContourOptions.md +0 -72
  751. package/dist/docs/reference/model/RectangleCornerTreatment.md +0 -40
  752. package/dist/docs/reference/model/RectangleCornerTreatments.md +0 -20
  753. package/dist/docs/reference/model/RegionData.md +0 -19
  754. package/dist/docs/reference/model/RevolveOptions.md +0 -94
  755. package/dist/docs/reference/model/RoundedEdgeTreatment.md +0 -96
  756. package/dist/docs/reference/model/SmoothEdgeTreatment.md +0 -76
  757. package/dist/docs/reference/model/SphereOptions.md +0 -20
  758. package/dist/docs/reference/model/StrokeCap.md +0 -16
  759. package/dist/docs/reference/model/StrokeJoin.md +0 -16
  760. package/dist/docs/reference/model/StrokeOptions.md +0 -91
  761. package/dist/docs/reference/model/SweepOptions.md +0 -116
  762. package/dist/docs/reference/model/SweepOrientation.md +0 -116
  763. package/dist/docs/reference/model/ThreadEndStyle.md +0 -15
  764. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +0 -118
  765. package/dist/docs/reference/model/ThreadHandedness.md +0 -15
  766. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +0 -15
  767. package/dist/docs/reference/model/ThreadLeadInShape.md +0 -15
  768. package/dist/docs/reference/model/ThreadProfile.md +0 -87
  769. package/dist/docs/reference/model/ThreadRidgeOptions.md +0 -19
  770. package/dist/docs/reference/model/ThreadedNutBevel.md +0 -15
  771. package/dist/docs/reference/model/ThreadedNutOptions.md +0 -274
  772. package/dist/docs/reference/model/ThreadedNutPreflight.md +0 -99
  773. package/dist/docs/reference/model/ThreadedNutShape.md +0 -15
  774. package/dist/docs/reference/model/ThreadedRodOptions.md +0 -246
  775. package/dist/docs/reference/model/TorusOptions.md +0 -110
  776. package/dist/docs/reference/model/Transform2-type.md +0 -257
  777. package/dist/docs/reference/model/Transform2Data.md +0 -16
  778. package/dist/docs/reference/model/Transform2Input.md +0 -21
  779. package/dist/docs/reference/model/Transform3-type.md +0 -297
  780. package/dist/docs/reference/model/Transform3Data.md +0 -19
  781. package/dist/docs/reference/model/Transform3Input.md +0 -21
  782. package/dist/docs/reference/model/TriangleMesh.md +0 -42
  783. package/dist/docs/reference/model/TriangleMeshAnalysis.md +0 -123
  784. package/dist/docs/reference/model/TriangleMeshMeasurements.md +0 -79
  785. package/dist/docs/reference/model/TubeOptions.md +0 -143
  786. package/dist/docs/reference/model/Vector2-type.md +0 -271
  787. package/dist/docs/reference/model/Vector2Data.md +0 -15
  788. package/dist/docs/reference/model/Vector2Input.md +0 -21
  789. package/dist/docs/reference/model/Vector3-type.md +0 -283
  790. package/dist/docs/reference/model/Vector3Data.md +0 -15
  791. package/dist/docs/reference/model/Vector3Input.md +0 -21
  792. package/dist/docs/reference/model/VectorTextLayout.md +0 -40
  793. package/dist/docs/reference/model/VectorTextMetrics.md +0 -100
  794. package/dist/docs/reference/model/anchor.md +0 -47
  795. package/dist/docs/reference/model/bounds2.md +0 -37
  796. package/dist/docs/reference/model/bounds3.md +0 -37
  797. package/dist/docs/reference/model/castSegment.md +0 -40
  798. package/dist/docs/reference/model/categories/bounds.md +0 -38
  799. package/dist/docs/reference/model/categories/contracts.md +0 -18
  800. package/dist/docs/reference/model/categories/core-values-errors.md +0 -30
  801. package/dist/docs/reference/model/categories/inspection.md +0 -29
  802. package/dist/docs/reference/model/categories/paths.md +0 -41
  803. package/dist/docs/reference/model/categories/resolution.md +0 -20
  804. package/dist/docs/reference/model/components.md +0 -71
  805. package/dist/docs/reference/model/compose.md +0 -31
  806. package/dist/docs/reference/model/distance.md +0 -45
  807. package/dist/docs/reference/model/immutableMesh.md +0 -44
  808. package/dist/docs/reference/model/inspectSection.md +0 -38
  809. package/dist/docs/reference/model/inspectSolid.md +0 -38
  810. package/dist/docs/reference/model/isEmpty.md +0 -39
  811. package/dist/docs/reference/model/path2.md +0 -54
  812. package/dist/docs/reference/model/path3.md +0 -49
  813. package/dist/docs/reference/model/split.md +0 -54
  814. package/dist/docs/reference/model/splitByPlane.md +0 -66
  815. package/dist/docs/reference/model/transform2.md +0 -46
  816. package/dist/docs/reference/model/transform3.md +0 -48
  817. package/dist/docs/reference/model/vector2.md +0 -40
  818. package/dist/docs/reference/model/vector3.md +0 -47
  819. package/dist/docs/reference/text/Bounds2Data.md +0 -34
  820. package/dist/docs/reference/text/Vector2Data.md +0 -7
  821. package/dist/docs/reference/text/VectorTextArcBaseline.md +0 -53
  822. package/dist/docs/reference/text/VectorTextLayout.md +0 -34
  823. package/dist/docs/reference/text/VectorTextLayoutOptions.md +0 -111
  824. package/dist/docs/reference/text/VectorTextMetrics.md +0 -94
  825. package/dist/docs/reference/text/VectorTextOptions.md +0 -50
  826. package/dist/engine/export-3mf.js +0 -116
  827. package/dist/engine/model-dependencies.js +0 -46
  828. package/dist/engine/session-graph.js +0 -449
  829. package/dist/geometry/profiles/profiles.js +0 -71
  830. /package/dist/engine/{primitive-profile-types.js → operations/primitives/profile-types.js} +0 -0
  831. /package/dist/{engine → geometry/mesh}/mesh-view-cache.js +0 -0
  832. /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. */
@@ -253,10 +229,10 @@ export declare interface Bounds2 extends Bounds2Data {
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.
255
231
  * Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
256
- * Compiled Generator packages passing these values to host recipes or computed data require
257
- * runtime 9.0.0 or newer in major 9.
232
+ * Compiled Generator packages passing these values to host recipes or memo data require
233
+ * the current Modeling runtime.
258
234
  */
259
- export declare function bounds2(input: Bounds2Options): Bounds2;
235
+ export declare function bounds2(input: Bounds2Options | Bounds2): Bounds2;
260
236
 
261
237
  /** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
262
238
  export declare interface Bounds2Data {
@@ -271,15 +247,19 @@ export declare type Bounds2Input = Bounds2 | Bounds2Data;
271
247
 
272
248
  /** XY bounds construction from existing extrema or nonnegative dimensions, never both. */
273
249
  export declare type Bounds2Options =
274
- | (Bounds2Input & {
275
- /** Preserves the size query when snapshotting an existing fluent value. */
276
- readonly size?: Bounds2["size"];
277
- /** Preserves the center query when snapshotting an existing fluent value. */
278
- readonly center?: Bounds2["center"];
279
- })
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
+ }
280
260
  | {
281
261
  /** Nonnegative XY dimensions in millimetres. */
282
- readonly size: Vector2Data;
262
+ readonly size: Vector2Input;
283
263
  /** Center on the origin; false starts at the origin. Defaults to true. */
284
264
  readonly center?: boolean;
285
265
  /** Minimum coordinates are unavailable when size is supplied. */
@@ -306,10 +286,10 @@ export declare interface Bounds3 extends Bounds3Data {
306
286
  * Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
307
287
  * overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
308
288
  * Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
309
- * Compiled Generator packages passing these values to host recipes or computed data require
310
- * runtime 9.0.0 or newer in major 9.
289
+ * Compiled Generator packages passing these values to host recipes or memo data require
290
+ * the current Modeling runtime.
311
291
  */
312
- export declare function bounds3(input: Bounds3Options): Bounds3;
292
+ export declare function bounds3(input: Bounds3Options | Bounds3): Bounds3;
313
293
 
314
294
  /** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
315
295
  export declare interface Bounds3Data {
@@ -324,15 +304,19 @@ export declare type Bounds3Input = Bounds3 | Bounds3Data;
324
304
 
325
305
  /** XYZ bounds construction from existing extrema or nonnegative dimensions, never both. */
326
306
  export declare type Bounds3Options =
327
- | (Bounds3Input & {
328
- /** Preserves the size query when snapshotting an existing fluent value. */
329
- readonly size?: Bounds3["size"];
330
- /** Preserves the center query when snapshotting an existing fluent value. */
331
- readonly center?: Bounds3["center"];
332
- })
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
+ }
333
317
  | {
334
318
  /** Nonnegative XYZ dimensions in millimetres. */
335
- readonly size: Vector3Data;
319
+ readonly size: Vector3Input;
336
320
  /** Center on the origin; false starts at the origin. Defaults to true. */
337
321
  readonly center?: boolean;
338
322
  /** Minimum coordinates are unavailable when size is supplied. */
@@ -392,13 +376,13 @@ export declare type BoxAnchorFace =
392
376
  /** Box dimensions and construction origin for one named face anchor. */
393
377
  export declare interface BoxAnchorOptions {
394
378
  /** XYZ dimensions, or one uniform dimension, in millimetres. */
395
- readonly size: number | Vector3Data;
379
+ readonly size: number | Vector3Input;
396
380
  /** Named outward face whose center is the attachment point. */
397
381
  readonly face: BoxAnchorFace;
398
382
  /** Centers the box around its construction origin; defaults to true, matching box(). */
399
383
  readonly center?: boolean;
400
384
  /** Construction origin; centered-box center or noncentered minimum corner. Defaults to zero. */
401
- readonly origin?: Vector3Data;
385
+ readonly origin?: Vector3Input;
402
386
  }
403
387
 
404
388
  /** Box edges use +Z top, +Y front and +X right; vertical names list front/back first. */
@@ -436,7 +420,7 @@ export declare interface BoxOptions extends PrimitiveAttachment {
436
420
  */
437
421
  readonly center?: boolean;
438
422
  /** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
439
- readonly size: number | Vector3Data;
423
+ readonly size: number | Vector3Input;
440
424
  /** Uniform treatment or independent disjoint nominal edge/group treatments. */
441
425
  readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
442
426
  }
@@ -660,37 +644,6 @@ export declare const computeParallelTransportFrames: (
660
644
  limits?: Partial<GeometrySamplingLimits>,
661
645
  ) => readonly PathFrame[];
662
646
 
663
- /**
664
- * Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells.
665
- *
666
- * Coordinates are millimetres. Indexed closure and positive aggregate volume are required; callers
667
- * may use validateSolidMesh first when geometric intersections and shell orientation are untrusted.
668
- * Fresh mutable input is inspected on every call, and buffers are never changed.
669
- *
670
- * @param mesh - Consistently oriented closed mesh with positive enclosed volume.
671
- * @returns A fresh immutable XYZ volume centroid.
672
- */
673
- export declare function computeTriangleMeshCentroid(
674
- mesh: TriangleMesh,
675
- ): Vector3Data;
676
-
677
- /**
678
- * Creates an order-independent regression signature for a manufacturing mesh.
679
- *
680
- * The input must be non-empty, closed, consistently wound, and have no unreferenced vertices.
681
- * Vertex and triangle order do not affect the fingerprint; winding, quantized geometry, and
682
- * connectivity metrics do. The fingerprint is a regression aid, not a cryptographic digest.
683
- *
684
- * @param mesh - Closed oriented mesh to measure without mutation.
685
- * @param options - Absolute quantization and complexity limits.
686
- * @returns Compact counts, bounds, volume, topology, tolerances, and canonical fingerprint.
687
- * @throws {@link GeometryError} When validation, topology, tolerance, or complexity checks fail.
688
- */
689
- export declare function computeTriangleMeshSignature(
690
- mesh: TriangleMesh,
691
- options?: TriangleMeshSignatureOptions,
692
- ): TriangleMeshSignature;
693
-
694
647
  /**
695
648
  * A sampled closed two-dimensional boundary whose first point is not repeated at the end.
696
649
  *
@@ -875,7 +828,7 @@ export declare interface CylinderAnchorOptions {
875
828
  /** Centers the cylinder along Z; defaults to true, matching cylinder(). */
876
829
  readonly center?: boolean;
877
830
  /** Construction origin; centered-axis midpoint or noncentered bottom axis. Defaults to zero. */
878
- readonly origin?: Vector3Data;
831
+ readonly origin?: Vector3Input;
879
832
  }
880
833
 
881
834
  /**
@@ -1112,20 +1065,20 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
1112
1065
  (
1113
1066
  | {
1114
1067
  /** Positive XY radii in millimetres; mutually exclusive with size. */
1115
- readonly radius: Vector2Data;
1068
+ readonly radius: Vector2Input;
1116
1069
  /** Full XY extents are unavailable when radius is supplied. */
1117
1070
  readonly size?: never;
1118
1071
  }
1119
1072
  | {
1120
1073
  /** Positive full XY extents in millimetres; mutually exclusive with radius. */
1121
- readonly size: Vector2Data;
1074
+ readonly size: Vector2Input;
1122
1075
  /** XY radii are unavailable when size is supplied. */
1123
1076
  readonly radius?: never;
1124
1077
  }
1125
1078
  );
1126
1079
 
1127
1080
  /**
1128
- * Independent inward finishing on primitive or straight convex extrusion ends.
1081
+ * Independent inward finishing on primitive or source-corresponding straight extrusion ends.
1129
1082
  * Zero amounts leave the end untreated, including when all ends are disabled.
1130
1083
  */
1131
1084
  export declare interface EndTreatments {
@@ -1150,29 +1103,18 @@ export declare function eulerTransform3(
1150
1103
  ): Transform3Data;
1151
1104
 
1152
1105
  /**
1153
- * Linearly extrudes one simple profile along +Z with robust ear-clipped caps.
1154
- * Path2 profiles must be closed; raw point collections have an implicit closing edge.
1155
- *
1156
- * @example Extrude point data without an engine
1157
- * ```ts
1158
- * const outline = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
1159
- * extrudeMesh(outline, { height: 8 });
1160
- * ```
1161
- */
1162
- export declare function extrudeMesh(
1163
- input: Path2Input,
1164
- options: ExtrudeOptions,
1165
- ): TriangleMesh;
1166
-
1167
- /**
1168
- * Dimensions and sampling shared by native and pure +Z extrusion.
1106
+ * Dimensions and sampling for pure +Z mesh extrusion, without end treatments.
1169
1107
  */
1170
- export declare interface ExtrudeOptions extends ExtrusionSamplingOptions {
1108
+ export declare interface ExtrudeMeshOptions extends ExtrusionSamplingOptions {
1171
1109
  /** Positive extrusion height in millimetres. */
1172
1110
  readonly height: number;
1173
1111
  /** Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false. */
1174
1112
  readonly center?: boolean;
1175
- /** Independent inward end treatments on straight convex single-contour extrusions. */
1113
+ }
1114
+
1115
+ /** Native +Z extrusion with optional inward end treatments. */
1116
+ export declare interface ExtrudeOptions extends ExtrudeMeshOptions {
1117
+ /** Independent inward treatments on every material rim of a straight, topology-preserving extrusion. */
1176
1118
  readonly ends?: EndTreatments;
1177
1119
  }
1178
1120
 
@@ -1391,28 +1333,6 @@ export declare function gridPatternTransforms(
1391
1333
  options: GridPatternOptions,
1392
1334
  ): readonly Transform3Data[];
1393
1335
 
1394
- /**
1395
- * Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base.
1396
- *
1397
- * Heights run once per grid point after preflight; center-error adds one evaluation per cell.
1398
- * Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit
1399
- * Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks.
1400
- *
1401
- * @see {@link preflightHeightfield}
1402
- *
1403
- * @example Sample a closed wavy mesh
1404
- * ```ts
1405
- * heightfieldMesh({
1406
- * size: [30, 20], segments: [24, 16],
1407
- * height: ([x, y]) => 3 + Math.cos(x / 5) * Math.cos(y / 5),
1408
- * });
1409
- * ```
1410
- */
1411
- export declare function heightfieldMesh(
1412
- options: HeightfieldOptions,
1413
- limits?: HeightfieldMeshLimits,
1414
- ): TriangleMesh;
1415
-
1416
1336
  /** Trusted output ceilings for pure construction; omitted fields use engine defaults. */
1417
1337
  export declare type HeightfieldMeshLimits = Partial<
1418
1338
  Pick<ModelingLimits, "maxVertices" | "maxTriangles" | "maxBytes">
@@ -1442,11 +1362,11 @@ export declare type HeightfieldOptions = {
1442
1362
  } & (
1443
1363
  | {
1444
1364
  /** Positive XY footprint for uniform sampling. */
1445
- readonly size: Vector2Data;
1365
+ readonly size: Vector2Input;
1446
1366
  /** Exact positive integer X/Y interval counts. */
1447
1367
  readonly segments: readonly [x: number, y: number];
1448
1368
  /** Lower-left footprint XY. Omitted centers the footprint on XY. */
1449
- readonly origin?: Vector2Data;
1369
+ readonly origin?: Vector2Input;
1450
1370
  /** Explicit coordinates cannot be combined with uniform sampling. */
1451
1371
  readonly coordinates?: never;
1452
1372
  }
@@ -1482,93 +1402,55 @@ export declare interface HeightfieldPreflight {
1482
1402
  readonly byteCount: number;
1483
1403
  }
1484
1404
 
1485
- /**
1486
- * Builds closed thread-ridge components with every profile locked to the
1487
- * shaft's radial/axial frame. The mesh is intended for union with its
1488
- * minor-envelope cylinder and never owns WASM objects.
1489
- */
1490
- export declare function helicalThreadRidgeMesh(
1491
- options: HelicalThreadRidgeMeshOptions,
1492
- ): TriangleMesh;
1405
+ /** Identity transform, safe to share because it is frozen. */
1406
+ export declare const IDENTITY_TRANSFORM3: Transform3Data;
1493
1407
 
1494
- /** Runtime-neutral options for the dedicated helical ridge mesher. */
1495
- export declare interface HelicalThreadRidgeMeshOptions {
1496
- /**
1497
- * Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
1498
- * BOSL2-style non-cut lead-in scaling is available on complete thread solids.
1499
- */
1500
- readonly ends?: ThreadEndTreatmentOptions;
1501
- /** Helix direction. Default: `right`. */
1502
- readonly handedness?: ThreadHandedness;
1503
- /** 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. */
1504
1415
  readonly length: number;
1505
- /** Explicit output and circular allocation ceilings. */
1506
- readonly limits?: Partial<ModelingLimits>;
1507
- /** Nominal major diameter before any caller-owned fit compensation. */
1508
- readonly majorDiameter: number;
1509
- /** Angular offset of the first start in degrees. Default: `0`. */
1510
- readonly phase?: number;
1511
- /** Validated periodic profile repeated around the shaft. */
1512
- readonly profile: ThreadProfile;
1513
- /** Optional circular-resolution policy. */
1514
- readonly resolution?: GeometryResolution;
1515
- /** Number of evenly phased starts. Default: `1`. */
1516
- readonly starts?: number;
1517
- /** Optional numerical tolerance overrides. */
1518
- 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>;
1519
1422
  }
1520
1423
 
1521
1424
  /**
1522
- * Builds one closed threaded cylinder without a ridge/core Boolean seam.
1523
- *
1524
- * Each circular facet includes its exact phase-shifted profile breakpoints, including duplicate-Z
1525
- * samples for vertical flanks and blunt transitions. Adjacent variable grids are stitched as a
1526
- * monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
1527
- * conservative pre-allocation estimate rejects excessive meshes before constructing position
1528
- * 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
+ * ```
1529
1436
  */
1530
- export declare function helicalThreadSolidMesh(
1531
- options: HelicalThreadSolidMeshOptions,
1532
- ): TriangleMesh;
1437
+ export declare function immutableBuffer<T extends NumericArray>(
1438
+ source: T,
1439
+ ): ImmutableBuffer<T>;
1533
1440
 
1534
- /** Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. */
1535
- export declare interface HelicalThreadSolidMeshOptions extends HelicalThreadRidgeMeshOptions {
1536
- /** Apply a 45-degree radial bevel at the lower target face. */
1537
- readonly bevelBottom?: boolean;
1538
- /** Lower bevel size override. Takes precedence over `bevelSize`. */
1539
- readonly bevelBottomSize?: number;
1540
- /** Distance of each bevel target face inward from the corresponding mesh end. */
1541
- readonly bevelOffset?: number;
1542
- /** `inset` trims an external rod; `outset` expands an internal cutter. */
1543
- readonly bevelMode?: "inset" | "outset";
1544
- /** Axial and radial bevel size. Defaults to the profile depth. */
1545
- readonly bevelSize?: number;
1546
- /** Apply a 45-degree radial bevel at the upper target face. */
1547
- readonly bevelTop?: boolean;
1548
- /** Upper bevel size override. Takes precedence over `bevelSize`. */
1549
- readonly bevelTopSize?: number;
1550
- }
1441
+ declare const immutableBufferBrand: unique symbol;
1551
1442
 
1552
- /** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
1553
- export declare interface HelicalThreadSolidMeshPreflight {
1554
- /** Uniform axial intervals required only by a requested physical segment-length limit. */
1555
- readonly axialIntervals: number;
1556
- /** Start-aligned full-circle segment count used by the surface mesh. */
1557
- readonly circularSegments: number;
1558
- /** Conservative surface-row count across profile breaks, ends, and bevel stations. */
1559
- readonly estimatedRows: number;
1560
- /** Conservative triangle count used by the selected output allocation policy. */
1561
- readonly estimatedTriangles: number;
1443
+ /** Immutable local XYZ positions and triangle indices, suitable for a memo result 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>;
1562
1449
  }
1563
1450
 
1564
- /** Identity transform, safe to share because it is frozen. */
1565
- export declare const IDENTITY_TRANSFORM3: Transform3Data;
1566
-
1567
1451
  /** Options for a compensated internal-thread subtraction tool along +Z. */
1568
1452
  export declare interface InternalThreadCutterOptions
1569
- extends
1570
- Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
1571
- ThreadBevelOptions {
1453
+ extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
1572
1454
  /** Printable fit or caller-calibrated allowances. Default: `normal`. */
1573
1455
  readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
1574
1456
  /** Nominal major diameter before female compensation and faceting correction. */
@@ -1593,19 +1475,6 @@ export declare function inverseTransform3(
1593
1475
  */
1594
1476
  export declare function isGeometryError(value: unknown): value is GeometryError;
1595
1477
 
1596
- /**
1597
- * Concatenates meshes into one indexed mesh without welding coincident vertices.
1598
- *
1599
- * Inputs are validated and never mutated. Face order and winding remain stable.
1600
- *
1601
- * @param meshes - One or more meshes to concatenate.
1602
- * @returns Fresh typed arrays with indices offset to their source vertex ranges.
1603
- * @throws {@link GeometryError} When no mesh is supplied or an input is invalid.
1604
- */
1605
- export declare function joinTriangleMeshes(
1606
- meshes: readonly TriangleMesh[],
1607
- ): TriangleMesh;
1608
-
1609
1478
  /** Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. */
1610
1479
  export declare interface KnuckleHingeBaseSpec {
1611
1480
  /** Total extent along the +X pin axis, centered at the origin. */
@@ -1804,28 +1673,6 @@ export declare interface LineCurve3 {
1804
1673
  export declare type LoftCorrespondence =
1805
1674
  "direct" | "reindex" | "fast-distance" | "distance";
1806
1675
 
1807
- /**
1808
- * Lofts simple point loops at z heights or explicit right-handed frames, in input order.
1809
- *
1810
- * An explicit correspondence method is required. CCW-normalized loops retain their
1811
- * seam and original vertices; unequal counts gain subdivisions or repeated fan slots.
1812
- * Both ends use ear-clipped caps, supporting concave profiles without center fans.
1813
- * Intermediate slices interpolate placed world vertices, never frame axes.
1814
- * Transformed coordinates must fit finite Float32 mesh storage.
1815
- * Path2 profiles must be closed; raw point collections are interpreted as closed.
1816
- *
1817
- * @example Loft with explicit point correspondence
1818
- * ```ts
1819
- * const bottom = rectangleContour({ size: [20, 12] });
1820
- * const top = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
1821
- * loftMesh([{ profile: bottom, z: 0 }, { profile: top, z: 30 }], { correspondence: "reindex" });
1822
- * ```
1823
- */
1824
- export declare function loftMesh(
1825
- stations: readonly LoftMeshStation[],
1826
- options: LoftOptions,
1827
- ): TriangleMesh;
1828
-
1829
1676
  /** One point-data profile at a height or explicit right-handed spatial frame. */
1830
1677
  export declare type LoftMeshStation = LoftPlacement & {
1831
1678
  /** Closed Path2 or ordered finite XY boundary points with an implicit closing edge. */
@@ -1833,10 +1680,10 @@ export declare type LoftMeshStation = LoftPlacement & {
1833
1680
  };
1834
1681
 
1835
1682
  /**
1836
- * 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.
1837
1684
  */
1838
1685
  export declare interface LoftOptions {
1839
- /** 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. */
1840
1687
  readonly correspondence?: LoftCorrespondence | readonly LoftCorrespondence[];
1841
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. */
1842
1689
  readonly distribution?: "perimeter" | "segments";
@@ -1910,15 +1757,6 @@ export declare function measureInternalCylindricalGearPairMotion(
1910
1757
  options?: CylindricalGearPairMotionOptions,
1911
1758
  ): CylindricalGearPairMotionReport;
1912
1759
 
1913
- /**
1914
- * Computes axis-aligned bounds for a non-empty mesh.
1915
- *
1916
- * @param mesh - Mesh whose finite complete vertices will be measured.
1917
- * @returns Fresh immutable minimum and maximum XYZ tuples.
1918
- * @throws {@link GeometryError} When the mesh is structurally invalid.
1919
- */
1920
- export declare const meshBounds: (mesh: TriangleMesh) => Bounds3Data;
1921
-
1922
1760
  /**
1923
1761
  * Curated metric modeling dimensions for clearance holes, regular hex nuts,
1924
1762
  * and socket-head cap screws.
@@ -2063,23 +1901,9 @@ export declare function normalizeRegion(
2063
1901
  tolerance?: GeometryToleranceOptions,
2064
1902
  ): RegionData;
2065
1903
 
2066
- /**
2067
- * Improves pathological planar triangulation with bounded legal diagonal flips.
2068
- *
2069
- * The operation changes indices only: it never moves, adds, welds, or removes vertices; never
2070
- * crosses a coplanar-patch boundary; and never changes the face count. Each accepted flip improves
2071
- * a deterministic ordering of triangle angles, aspect ratio, diagonal locality, and local
2072
- * incidence/valence concentration. Unsupported input or a failed final integrity check returns the
2073
- * exact original mesh object. Malformed buffers and the configured analysis complexity limit throw.
2074
- *
2075
- * @param mesh - Closed, consistently wound indexed triangle mesh in arbitrary consistent units.
2076
- * @param options - Patch eligibility, numeric tolerance, and deterministic work bounds.
2077
- * @returns Optimized connectivity and before/after diagnostics, or an unchanged safe fallback.
2078
- */
2079
- export declare function optimizePlanarPatches(
2080
- mesh: TriangleMesh,
2081
- options?: PlanarMeshOptimizationOptions,
2082
- ): PlanarMeshOptimizationResult;
1904
+ /** Numeric storage supported by immutable generation buffers. */
1905
+ export declare type NumericArray =
1906
+ Float32Array | Float64Array | Uint32Array | Uint8Array | Int32Array;
2083
1907
 
2084
1908
  /** Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. */
2085
1909
  export declare interface Path2 {
@@ -2381,33 +2205,6 @@ export declare interface PolylineResamplingOptions extends CurveSamplingOptions
2381
2205
  readonly closed?: boolean;
2382
2206
  }
2383
2207
 
2384
- /**
2385
- * Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts.
2386
- *
2387
- * This pure operation needs no engine and neither evaluates `height` nor allocates mesh buffers.
2388
- * Successful preflight leaves height values, Float32 base storage, and generated mesh validity to
2389
- * construction. `byteCount` covers position and index buffers, not total working memory.
2390
- *
2391
- * @see {@link heightfieldMesh}
2392
- */
2393
- export declare function preflightHeightfield(
2394
- options: HeightfieldOptions,
2395
- limits?: HeightfieldMeshLimits,
2396
- ): HeightfieldPreflight;
2397
-
2398
- /**
2399
- * Checks thread dimensions, profile, end treatments, sampling, and conservative estimates against output limits.
2400
- *
2401
- * This pure operation needs no engine and constructs planning data without vertex or index buffers.
2402
- * `circularSegments` is the selected count; row and triangle counts are conservative estimates.
2403
- * Successful preflight leaves generated coordinate and topology checks to mesh construction.
2404
- *
2405
- * @see {@link helicalThreadSolidMesh}
2406
- */
2407
- export declare function preflightHelicalThreadSolidMesh(
2408
- options: HelicalThreadSolidMeshOptions,
2409
- ): HelicalThreadSolidMeshPreflight;
2410
-
2411
2208
  /**
2412
2209
  * Resolves compensated cutter dimensions and checks extended mesh estimates against output limits.
2413
2210
  *
@@ -2416,12 +2213,12 @@ export declare function preflightHelicalThreadSolidMesh(
2416
2213
  * creates planning data without mesh buffers or native objects. Row and triangle counts are
2417
2214
  * estimates; mesh validity and native construction are checked later.
2418
2215
  *
2419
- * @see {@link preflightHelicalThreadSolidMesh}
2420
- * @see {@link helicalThreadSolidMesh}
2216
+ * See `mesh.preflightThreadSolid` for standalone mesh estimates.
2217
+ * See `mesh.threadSolid` for standalone mesh construction.
2421
2218
  */
2422
2219
  export declare function preflightInternalThreadCutter(
2423
2220
  options: InternalThreadCutterOptions,
2424
- ): HelicalThreadSolidMeshPreflight;
2221
+ ): ThreadSolidPreflight;
2425
2222
 
2426
2223
  /**
2427
2224
  * Parses and validates bounded SVG input, constructing its normalized sampled region and diagnostics.
@@ -2452,7 +2249,7 @@ export declare function preflightSvgRegion(
2452
2249
  * `thread` contains conservative cutter estimates, excluding the body and Boolean result.
2453
2250
  * Successful preflight leaves mesh validity, native construction, and manufacturing fit to later checks.
2454
2251
  *
2455
- * @see {@link preflightHelicalThreadSolidMesh}
2252
+ * See `mesh.preflightThreadSolid` for standalone mesh estimates.
2456
2253
  */
2457
2254
  export declare function preflightThreadedNut(
2458
2255
  options: ThreadedNutOptions,
@@ -2465,12 +2262,12 @@ export declare function preflightThreadedNut(
2465
2262
  * host execution. It creates planning data without mesh buffers or native objects; returned row
2466
2263
  * and triangle counts are estimates. Mesh validity and native construction are checked later.
2467
2264
  *
2468
- * @see {@link preflightHelicalThreadSolidMesh}
2469
- * @see {@link helicalThreadSolidMesh}
2265
+ * See `mesh.preflightThreadSolid` for standalone mesh estimates.
2266
+ * See `mesh.threadSolid` for standalone mesh construction.
2470
2267
  */
2471
2268
  export declare function preflightThreadedRod(
2472
2269
  options: ThreadedRodOptions,
2473
- ): HelicalThreadSolidMeshPreflight;
2270
+ ): ThreadSolidPreflight;
2474
2271
 
2475
2272
  /** Anchor attachment shared by solid and filled-section factories. */
2476
2273
  export declare interface PrimitiveAttachment {
@@ -2696,7 +2493,11 @@ export declare interface RadialSizingOptions {
2696
2493
  }
2697
2494
 
2698
2495
  /**
2699
- * 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.
2700
2501
  *
2701
2502
  * Use [rectangle](/docs/reference/model/rectangle) for a filled Section.
2702
2503
  *
@@ -2716,7 +2517,7 @@ export declare function rectangleContour(
2716
2517
  */
2717
2518
  export declare interface RectangleContourOptions {
2718
2519
  /** Positive uniform size or explicit XY extents in millimetres. */
2719
- readonly size: number | Vector2Data;
2520
+ readonly size: number | Vector2Input;
2720
2521
  /** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
2721
2522
  readonly center?: boolean;
2722
2523
  /** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
@@ -2788,7 +2589,7 @@ export declare function regionBounds(region: RegionData): Bounds2Data;
2788
2589
  export declare type RegionData = readonly PolygonData[];
2789
2590
 
2790
2591
  /**
2791
- * 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.
2792
2593
  *
2793
2594
  * @example Hexagon sized to its faces
2794
2595
  * ```ts
@@ -3050,40 +2851,6 @@ export declare function resolveThreadCircularSegments(
3050
2851
  options: ThreadCircularSegmentsOptions,
3051
2852
  ): number;
3052
2853
 
3053
- /**
3054
- * Returns a copy of a mesh with every triangle winding reversed.
3055
- *
3056
- * @param mesh - Mesh to copy and reverse.
3057
- * @returns Fresh position and index buffers; the input remains unchanged.
3058
- */
3059
- export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
3060
-
3061
- /**
3062
- * Revolves a non-duplicated closed `[radius, z]` profile around +Z.
3063
- *
3064
- * The profile is ordered counter-clockwise when radius points right and Z
3065
- * points up. Angular and profile seams wrap by index. A profile point on the
3066
- * axis is emitted once and joined as a triangle fan, avoiding coincident seam
3067
- * vertices and zero-area quads. Profile edges that lie entirely on the axis
3068
- * collapse to the solid's interior and are intentionally omitted.
3069
- * Profile coordinates must fit finite Float32 mesh storage.
3070
- * Path2 profiles must be closed; raw point collections have an implicit closing edge.
3071
- *
3072
- * @param profile - Closed CCW `[radius, z]` profile without a duplicated seam point.
3073
- * @param options - Optional physical or exact circumferential sampling controls. Defaults to `{}`.
3074
- * @returns A closed indexed triangle mesh revolved counter-clockwise around +Z.
3075
- *
3076
- * @example Partial revolution with end caps
3077
- * ```ts
3078
- * // Each point is [radius, Z]; the profile seam is implicit.
3079
- * revolveMesh([[0, 0], [12, 0], [8, 20], [0, 20]], { degrees: 270 });
3080
- * ```
3081
- */
3082
- export declare const revolveMesh: (
3083
- input: Path2Input,
3084
- options?: RevolveOptions,
3085
- ) => TriangleMesh;
3086
-
3087
2854
  /**
3088
2855
  * Circumferential sampling and degree sweep shared by pure and filled revolution.
3089
2856
  */
@@ -3093,7 +2860,7 @@ export declare interface RevolveOptions extends CircularPrimitiveOptions {
3093
2860
  * smaller sweeps form partial revolutions with end caps.
3094
2861
  * Segment counts describe a complete circle and scale to this angular span. Native filled
3095
2862
  * revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
3096
- * 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.
3097
2864
  * @defaultValue `360`
3098
2865
  */
3099
2866
  readonly degrees?: number;
@@ -3516,20 +3283,31 @@ export declare interface SquareThreadProfileSpec extends ThreadProfileBaseSpec {
3516
3283
  }
3517
3284
 
3518
3285
  /**
3519
- * 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.
3520
3287
  *
3521
3288
  * @example Five-point outline
3522
3289
  * ```ts
3523
- * starContour(12, 5, 6);
3290
+ * starContour({ outerRadius: 12, innerRadius: 6, points: 5 });
3524
3291
  * ```
3525
3292
  */
3526
3293
  export declare const starContour: (
3527
- outerRadius: number,
3528
- points: number,
3529
- innerRadius?: number,
3530
- limits?: Partial<GeometrySamplingLimits>,
3294
+ options: StarContourOptions,
3531
3295
  ) => readonly Vector2Data[];
3532
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
+
3533
3311
  /** End-cap treatment for an open stroked path. */
3534
3312
  export declare type StrokeCap = "butt" | "round" | "square";
3535
3313
 
@@ -3664,23 +3442,6 @@ export declare interface SvgRegionPreflightSourceMetrics {
3664
3442
  readonly parsedVertexCount: number;
3665
3443
  }
3666
3444
 
3667
- /**
3668
- * Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam.
3669
- *
3670
- * @example Sweep point data along a bent path
3671
- * ```ts
3672
- * const profile = rectangleContour({ size: [6, 3] });
3673
- * sweepMesh(profile, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
3674
- * orientation: { kind: "transport", initialNormal: [0, 1, 0] },
3675
- * });
3676
- * ```
3677
- */
3678
- export declare function sweepMesh(
3679
- profile: Path2Input,
3680
- path: Path3Input,
3681
- options?: SweepOptions,
3682
- ): TriangleMesh;
3683
-
3684
3445
  /**
3685
3446
  * Controls shared by pure mesh construction and filled modeling sweeps.
3686
3447
  */
@@ -3730,17 +3491,11 @@ export declare type SweepOrientation =
3730
3491
  readonly kind: "frenet";
3731
3492
  };
3732
3493
 
3733
- /** End bevel controls shared by threaded rods and cutters. */
3494
+ /** 45-degree end bevels for compensated rods and cutters. */
3734
3495
  export declare interface ThreadBevelOptions {
3735
- /** Apply a 45-degree bevel at Z=0. */
3736
- readonly bevelBottom?: boolean;
3737
- /**
3738
- * Axial bevel extent in millimetres. Active blunt ends default to one sixth of the compensated
3739
- * male minor radius or female major radius; other ends default to the profile depth.
3740
- */
3741
- readonly bevelSize?: number;
3742
- /** Apply a 45-degree bevel at Z=length. */
3743
- 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;
3744
3499
  }
3745
3500
 
3746
3501
  /** Inputs for resolving one shared circular facet count for a mating thread pair. */
@@ -3779,25 +3534,20 @@ export declare interface ThreadCompensationOptions {
3779
3534
  readonly tolerance?: GeometryToleranceOptions;
3780
3535
  }
3781
3536
 
3782
- /** Nut-edge bevel selection. */
3783
- export declare type ThreadedNutBevel =
3784
- "automatic" | "both" | "inside" | "none" | "outside";
3785
-
3786
3537
  /**
3787
3538
  * Options for a compensated nut with an internal thread.
3788
3539
  */
3789
3540
  export declare interface ThreadedNutOptions extends Omit<
3790
3541
  InternalThreadCutterOptions,
3791
- "bevelBottom" | "bevelSize" | "bevelTop" | "length"
3542
+ "bevel" | "length"
3792
3543
  > {
3793
- /** Nut body bevel selection. Default: `automatic`. */
3794
- 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;
3795
3549
  /** Optional physical policy for a round body, independent of the thread's matched facet grid. */
3796
3550
  readonly bodyResolution?: GeometryResolution;
3797
- /** 45-degree body chamfer extent. Default: `min(profile.depth, thickness/4)`. */
3798
- readonly chamferSize?: number;
3799
- /** Leave the bottom outside edge flat for build-plate adhesion. Default: `false`. */
3800
- readonly flushBuildPlateBottom?: boolean;
3801
3551
  /** Nut body shape. */
3802
3552
  readonly shape: ThreadedNutShape;
3803
3553
  /** Nut thickness along +Z in millimetres. */
@@ -3810,8 +3560,10 @@ export declare interface ThreadedNutOptions extends Omit<
3810
3560
  export declare interface ThreadedNutPreflight {
3811
3561
  /** Polygon segment count used by the nut body. */
3812
3562
  readonly bodySegments: number;
3813
- /** Shared 45-degree chamfer size applied to the selected body and cutter edges. */
3814
- 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];
3815
3567
  /** Maximum compensated cutter radius at either requested face. */
3816
3568
  readonly cutterFaceRadius: number;
3817
3569
  /** Minimum nut-body inradius across the requested top and bottom faces. */
@@ -3819,7 +3571,7 @@ export declare interface ThreadedNutPreflight {
3819
3571
  /** Smallest radial wall left between the body and cutter at either requested face. */
3820
3572
  readonly minimumFaceWall: number;
3821
3573
  /** Conservative allocation estimates for the extended cutter; excludes the body and Boolean result. */
3822
- readonly thread: HelicalThreadSolidMeshPreflight;
3574
+ readonly thread: ThreadSolidPreflight;
3823
3575
  /** Start-aligned circular facet count used by the compensated thread cutter. */
3824
3576
  readonly threadCircularSegments: number;
3825
3577
  }
@@ -3833,9 +3585,7 @@ export declare type ThreadedNutShape = "hex" | "round" | "square";
3833
3585
  * Options for a compensated external threaded rod along +Z.
3834
3586
  */
3835
3587
  export declare interface ThreadedRodOptions
3836
- extends
3837
- Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
3838
- ThreadBevelOptions {
3588
+ extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
3839
3589
  /** Printable fit or caller-calibrated allowances. Default: `normal`. */
3840
3590
  readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
3841
3591
  /** Nominal major diameter before male compensation. */
@@ -3966,9 +3716,58 @@ export declare type ThreadProfileSpec =
3966
3716
  | TrapezoidalThreadProfileSpec
3967
3717
  | TriangularThreadProfileSpec;
3968
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
+
3969
3746
  /** Whether compensation is being applied to an external or internal thread. */
3970
3747
  export declare type ThreadRole = "male" | "female";
3971
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
+
3972
3771
  /**
3973
3772
  * Dimensions and independent ring/profile tessellation for a torus around the Z axis.
3974
3773
  */
@@ -4146,21 +3945,6 @@ export declare function transformRegionData(
4146
3945
  tolerance?: GeometryToleranceOptions,
4147
3946
  ): RegionData;
4148
3947
 
4149
- /**
4150
- * Applies an affine transform to a mesh and preserves outward face orientation.
4151
- *
4152
- * A transform with a negative linear determinant reflects space, so this helper
4153
- * automatically reverses every triangle. Singular transforms are rejected.
4154
- *
4155
- * @param mesh - Mesh to transform without mutation.
4156
- * @param placement - Immutable spatial placement or canonical row-major affine matrix.
4157
- * @returns A mesh with fresh transformed positions and copied or reversed indices.
4158
- */
4159
- export declare function transformTriangleMesh(
4160
- mesh: TriangleMesh,
4161
- placement: Transform3Input,
4162
- ): TriangleMesh;
4163
-
4164
3948
  /**
4165
3949
  * Creates an immutable translation transform.
4166
3950
  *
@@ -4188,13 +3972,11 @@ export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseS
4188
3972
  readonly includedAngle?: number;
4189
3973
  }
4190
3974
 
4191
- /**
4192
- * A topology-preserving indexed triangle mesh with XYZ vertex positions.
4193
- */
3975
+ /** A topology-preserving indexed triangle mesh with mutable owned XYZ buffers. */
4194
3976
  export declare interface TriangleMesh {
4195
3977
  /** Three unsigned vertex indices per triangle. */
4196
3978
  readonly indices: Uint32Array;
4197
- /** Flat XYZ coordinates, three finite values per vertex. */
3979
+ /** Flat XYZ coordinates in millimetres. */
4198
3980
  readonly positions: Float32Array;
4199
3981
  }
4200
3982
 
@@ -4202,8 +3984,9 @@ export declare interface TriangleMesh {
4202
3984
  * Measurements and optional edge-connected topology from one validated mesh traversal.
4203
3985
  */
4204
3986
  export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
4205
- /** Number of referenced edge-connected boundary shells when `includeTopology` is requested; cavities count separately. */
4206
- 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;
4207
3990
  /** Number of distinct indexed undirected edges when `includeTopology` is requested. */
4208
3991
  readonly edgeCount?: number;
4209
3992
  }
@@ -4212,10 +3995,13 @@ export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
4212
3995
  * Validation and optional connectivity controls for a shared mesh analysis.
4213
3996
  */
4214
3997
  export declare interface TriangleMeshAnalysisOptions extends TriangleMeshValidationOptions {
4215
- /** 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. */
4216
3999
  readonly includeTopology?: boolean;
4217
4000
  }
4218
4001
 
4002
+ /** Raw construction buffers or immutable captured geometry accepted by mesh utilities. */
4003
+ export declare type TriangleMeshInput = TriangleMesh | ImmutableTriangleMesh;
4004
+
4219
4005
  /**
4220
4006
  * Geometric measurements derived from a validated, non-empty triangle mesh.
4221
4007
  */
@@ -4279,7 +4065,7 @@ export declare interface TriangleMeshSignature {
4279
4065
  /** Axis-aligned bounds quantized by `tolerances.position`. */
4280
4066
  readonly bounds: Bounds3Data;
4281
4067
  /** Number of edge-connected closed boundary shells; cavities count separately. */
4282
- readonly connectedComponentCount: number;
4068
+ readonly shellCount: number;
4283
4069
  /** Total orientable genus across all connected components. */
4284
4070
  readonly genus: number;
4285
4071
  /** Order-independent hash of quantized vertices and oriented triangles. */
@@ -4312,6 +4098,14 @@ export declare interface TriangleMeshSignatureTolerances {
4312
4098
  readonly signedVolume: number;
4313
4099
  }
4314
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
+
4315
4109
  /** Options controlling structural and manufacturing validation of a mesh. */
4316
4110
  export declare interface TriangleMeshValidationOptions {
4317
4111
  /** Permit an empty position and index buffer. Defaults to `false`. */
@@ -4346,40 +4140,52 @@ export declare function triangulateContour(loop: Contour): Uint32Array;
4346
4140
  /**
4347
4141
  * Dimensions, placement, and tessellation for a hollow Z-axis tube.
4348
4142
  */
4349
- export declare interface TubeOptions
4350
- extends CircularPrimitiveOptions, PrimitiveAttachment {
4351
- /**
4352
- * Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
4353
- * @defaultValue `true`
4354
- */
4355
- readonly center?: boolean;
4356
- /** Total height along Z in millimetres. */
4357
- readonly height: number;
4358
- /** Positive inner radius in millimetres. */
4359
- readonly innerRadius: number;
4360
- /** Outer radius in millimetres; greater than {@link TubeOptions.innerRadius}. */
4361
- readonly outerRadius: number;
4362
- }
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
+ );
4363
4178
 
4364
4179
  /**
4365
- * Checks closed indexed topology, triangle intersections, and alternating nested shell orientation.
4366
- *
4367
- * Outward exterior shells and inward cavity shells are accepted. Separate shells must not touch,
4368
- * intersect, or overlap as material. Indexed neighbours may share their own vertex or edge.
4369
- *
4370
- * Uses bounded floating-point tests, not exact predicates or repair. Contacts within the selected
4371
- * tolerance reject conservatively. At most 200,000 triangles and 2,000,000 spatial/containment tests
4372
- * are supported; exhausting a ceiling throws COMPLEXITY_LIMIT rather than claiming validity.
4373
- * Input buffers are freshly inspected and never modified; units are millimetres.
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.
4374
4183
  *
4375
- * @param mesh - Closed triangle mesh to inspect.
4376
- * @param options - Optional lower work ceiling and numeric comparison policy.
4377
- * @returns The original mesh after every requested check succeeds.
4184
+ * @throws {@link GeometryError} For a malformed, non-finite, or non-rigid matrix.
4378
4185
  */
4379
- export declare function validateSolidMesh(
4380
- mesh: TriangleMesh,
4381
- options?: SolidMeshValidationOptions,
4382
- ): TriangleMesh;
4186
+ export declare function validateRigidTransform3(
4187
+ transform: Transform3Data,
4188
+ ): Transform3Data;
4383
4189
 
4384
4190
  /**
4385
4191
  * Validates that a transform is finite, affine, and non-singular.
@@ -4394,23 +4200,6 @@ export declare function validateTransform3(
4394
4200
  tolerance?: GeometryToleranceOptions,
4395
4201
  ): Transform3Data;
4396
4202
 
4397
- /**
4398
- * Validates mesh buffers, indices, triangle area, and optionally closed topology.
4399
- *
4400
- * Closed validation requires exactly two oppositely directed uses per edge, rejecting boundary
4401
- * and non-manifold edges. It establishes edge connectivity without detecting geometric
4402
- * self-intersections between faces. The mesh is neither mutated nor copied.
4403
- *
4404
- * @param mesh - Mesh to inspect.
4405
- * @param options - Empty-mesh, topology, and tolerance policy.
4406
- * @returns The original mesh after successful validation.
4407
- * @throws {@link GeometryError} When any requested invariant fails.
4408
- */
4409
- export declare function validateTriangleMesh(
4410
- mesh: TriangleMesh,
4411
- options?: TriangleMeshValidationOptions,
4412
- ): TriangleMesh;
4413
-
4414
4203
  /** Immutable XY arithmetic; vector operations return new values and measurements return numbers. */
4415
4204
  export declare interface Vector2 {
4416
4205
  /** X coordinate in the vector's coordinate units. */