@metamesh/modeling 0.15.0 → 0.16.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 (700) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +33 -6
  3. package/dist/api/engine.d.ts +4 -3
  4. package/dist/api/geometry.d.ts +529 -242
  5. package/dist/api/index.d.ts +363 -104
  6. package/dist/api/text.d.ts +6 -6
  7. package/dist/docs/guides/concepts.md +295 -106
  8. package/dist/docs/guides/fonts.md +9 -8
  9. package/dist/docs/guides/fundamentals.md +17 -21
  10. package/dist/docs/guides/generation.md +24 -23
  11. package/dist/docs/guides/hosting.md +25 -20
  12. package/dist/docs/guides/recipes.md +35 -30
  13. package/dist/docs/guides/standalone-model.md +42 -0
  14. package/dist/docs/manifest.json +846 -243
  15. package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
  16. package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
  17. package/dist/docs/reference/engine/GenerationOptions.md +1 -1
  18. package/dist/docs/reference/engine/GeometryResource.md +1 -1
  19. package/dist/docs/reference/engine/ModelDependencies.md +1 -1
  20. package/dist/docs/reference/engine/ModelEngine.md +1 -1
  21. package/dist/docs/reference/engine/ModelEngineOptions.md +1 -1
  22. package/dist/docs/reference/engine/ModelSession.md +1 -1
  23. package/dist/docs/reference/engine/ModelSnapshot.md +2 -2
  24. package/dist/docs/reference/engine/SessionOptions.md +1 -1
  25. package/dist/docs/reference/engine/SnapshotPart.md +7 -4
  26. package/dist/docs/reference/engine/categories/host-lifecycle.md +8 -3
  27. package/dist/docs/reference/engine/createModelEngine.md +1 -1
  28. package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
  29. package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
  30. package/dist/docs/reference/engine/validateModel.md +1 -1
  31. package/dist/docs/reference/engine.md +6 -2
  32. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +5 -1
  33. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +1 -1
  34. package/dist/docs/reference/geometry/Anchor3-type.md +6 -5
  35. package/dist/docs/reference/geometry/ArcCurve2.md +7 -3
  36. package/dist/docs/reference/geometry/ArcCurve3.md +9 -5
  37. package/dist/docs/reference/geometry/AttachOptions.md +2 -1
  38. package/dist/docs/reference/geometry/AxisAngleRotation3.md +2 -1
  39. package/dist/docs/reference/geometry/Bounds2-type.md +127 -0
  40. package/dist/docs/reference/geometry/Bounds2Data.md +45 -0
  41. package/dist/docs/reference/geometry/Bounds2Input.md +21 -0
  42. package/dist/docs/reference/geometry/Bounds3-type.md +127 -0
  43. package/dist/docs/reference/geometry/Bounds3Data.md +45 -0
  44. package/dist/docs/reference/geometry/Bounds3Input.md +21 -0
  45. package/dist/docs/reference/geometry/BoundsFit2.md +6 -5
  46. package/dist/docs/reference/geometry/BoundsFit3.md +6 -5
  47. package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -1
  48. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +2 -1
  49. package/dist/docs/reference/geometry/BoxAnchorFace.md +2 -1
  50. package/dist/docs/reference/geometry/BoxAnchorOptions.md +5 -4
  51. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  52. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  53. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  54. package/dist/docs/reference/geometry/BoxOptions.md +3 -3
  55. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +8 -1
  56. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +5 -1
  57. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  58. package/dist/docs/reference/geometry/CircleContourOptions.md +5 -1
  59. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
  60. package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
  61. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +6 -1
  62. package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -1
  63. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +6 -1
  64. package/dist/docs/reference/geometry/Contour.md +10 -4
  65. package/dist/docs/reference/geometry/ContourCurve.md +5 -1
  66. package/dist/docs/reference/geometry/ContourPoint.md +6 -1
  67. package/dist/docs/reference/geometry/ContourSegment.md +5 -1
  68. package/dist/docs/reference/geometry/CorrespondingComponent.md +5 -1
  69. package/dist/docs/reference/geometry/CorrespondingContour.md +5 -1
  70. package/dist/docs/reference/geometry/CorrespondingProfile.md +5 -1
  71. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +5 -1
  72. package/dist/docs/reference/geometry/CubicBezierCurve2.md +10 -6
  73. package/dist/docs/reference/geometry/CubicBezierCurve3.md +10 -6
  74. package/dist/docs/reference/geometry/Curve2.md +5 -1
  75. package/dist/docs/reference/geometry/Curve3.md +5 -1
  76. package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -1
  77. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +7 -3
  78. package/dist/docs/reference/geometry/CylinderAnchorFace.md +2 -1
  79. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -3
  80. package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
  81. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +6 -1
  82. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -1
  83. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +5 -1
  84. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +5 -1
  85. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +5 -1
  86. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +6 -1
  87. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +5 -1
  88. package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -1
  89. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  90. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  91. package/dist/docs/reference/geometry/EllipseContourOptions.md +7 -3
  92. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  93. package/dist/docs/reference/geometry/ExtrudeOptions.md +5 -1
  94. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -1
  95. package/dist/docs/reference/geometry/FittedTextLayout.md +7 -3
  96. package/dist/docs/reference/geometry/Frame3.md +10 -6
  97. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  98. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  99. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  100. package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
  101. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +5 -1
  102. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  103. package/dist/docs/reference/geometry/GridPatternOptions.md +4 -4
  104. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +5 -1
  105. package/dist/docs/reference/geometry/HeightfieldOptions.md +9 -5
  106. package/dist/docs/reference/geometry/HeightfieldPreflight.md +9 -4
  107. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -1
  108. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +5 -1
  109. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +7 -2
  110. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +4 -3
  111. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +5 -1
  112. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +82 -0
  113. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +148 -0
  114. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +46 -0
  115. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +51 -0
  116. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +22 -0
  117. package/dist/docs/reference/geometry/LineCurve2.md +8 -4
  118. package/dist/docs/reference/geometry/LineCurve3.md +8 -4
  119. package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
  120. package/dist/docs/reference/geometry/LoftCorrespondence.md +6 -1
  121. package/dist/docs/reference/geometry/LoftMeshStation.md +5 -1
  122. package/dist/docs/reference/geometry/LoftOptions.md +5 -1
  123. package/dist/docs/reference/geometry/LoftPlacement.md +5 -1
  124. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +5 -1
  125. package/dist/docs/reference/geometry/MatchProfilesOptions.md +5 -1
  126. package/dist/docs/reference/geometry/MetricFastenerSize.md +9 -2
  127. package/dist/docs/reference/geometry/MetricFastenerStandard.md +5 -1
  128. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +6 -1
  129. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +6 -1
  130. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  131. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +5 -1
  132. package/dist/docs/reference/geometry/Path2-type.md +12 -8
  133. package/dist/docs/reference/geometry/Path2Data.md +40 -4
  134. package/dist/docs/reference/geometry/Path2Input.md +8 -3
  135. package/dist/docs/reference/geometry/Path3-type.md +12 -8
  136. package/dist/docs/reference/geometry/Path3Data.md +40 -4
  137. package/dist/docs/reference/geometry/Path3Input.md +8 -3
  138. package/dist/docs/reference/geometry/PathFrame.md +9 -5
  139. package/dist/docs/reference/geometry/PathLocation.md +5 -1
  140. package/dist/docs/reference/geometry/PathNormalGuide.md +8 -4
  141. package/dist/docs/reference/geometry/PathOptions.md +5 -1
  142. package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
  143. package/dist/docs/reference/geometry/PathPlacement.md +8 -4
  144. package/dist/docs/reference/geometry/PathResamplingOptions.md +5 -1
  145. package/dist/docs/reference/geometry/Pivot2Options.md +2 -1
  146. package/dist/docs/reference/geometry/Pivot3Options.md +2 -1
  147. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +8 -1
  148. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +5 -1
  149. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +5 -1
  150. package/dist/docs/reference/geometry/PlanarPatchQuality.md +7 -3
  151. package/dist/docs/reference/geometry/PolygonData.md +7 -2
  152. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +5 -1
  153. package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -1
  154. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
  155. package/dist/docs/reference/geometry/PrintableThreadFit.md +8 -1
  156. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +6 -1
  157. package/dist/docs/reference/geometry/Profile.md +8 -2
  158. package/dist/docs/reference/geometry/ProfileComponent2.md +5 -1
  159. package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
  160. package/dist/docs/reference/geometry/ProfileSpan2.md +7 -3
  161. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
  162. package/dist/docs/reference/geometry/RackPitchDimensions.md +6 -1
  163. package/dist/docs/reference/geometry/RackPitchSpec.md +6 -1
  164. package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
  165. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  166. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  167. package/dist/docs/reference/geometry/RectangleContourOptions.md +7 -3
  168. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +5 -1
  169. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +5 -1
  170. package/dist/docs/reference/geometry/RectangleProfileOptions.md +7 -3
  171. package/dist/docs/reference/geometry/RegionData.md +6 -2
  172. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +5 -1
  173. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  174. package/dist/docs/reference/geometry/RevolveOptions.md +5 -1
  175. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  176. package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -1
  177. package/dist/docs/reference/geometry/SampleContourOptions.md +5 -1
  178. package/dist/docs/reference/geometry/SampleHelixOptions.md +5 -1
  179. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +5 -1
  180. package/dist/docs/reference/geometry/SampledCurve2.md +8 -4
  181. package/dist/docs/reference/geometry/SampledCurve3.md +8 -4
  182. package/dist/docs/reference/geometry/SampledThreadHelices.md +7 -3
  183. package/dist/docs/reference/geometry/SideProfileCurve.md +5 -1
  184. package/dist/docs/reference/geometry/SideProfilePoint.md +6 -1
  185. package/dist/docs/reference/geometry/SideProfileSegment.md +5 -1
  186. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  187. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +5 -1
  188. package/dist/docs/reference/geometry/SphereOptions.md +1 -1
  189. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +5 -1
  190. package/dist/docs/reference/geometry/StrokeCap.md +8 -1
  191. package/dist/docs/reference/geometry/StrokeJoin.md +8 -1
  192. package/dist/docs/reference/geometry/StrokeOptions.md +5 -1
  193. package/dist/docs/reference/geometry/SvgImportOptions.md +5 -1
  194. package/dist/docs/reference/geometry/SvgRegionPreflight.md +6 -2
  195. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +7 -3
  196. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +6 -1
  197. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +6 -1
  198. package/dist/docs/reference/geometry/SweepOptions.md +5 -1
  199. package/dist/docs/reference/geometry/SweepOrientation.md +5 -1
  200. package/dist/docs/reference/geometry/ThreadBevelOptions.md +5 -1
  201. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -1
  202. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +5 -1
  203. package/dist/docs/reference/geometry/ThreadEndStyle.md +8 -1
  204. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +5 -1
  205. package/dist/docs/reference/geometry/ThreadHandedness.md +8 -1
  206. package/dist/docs/reference/geometry/ThreadHelixOptions.md +5 -1
  207. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +8 -1
  208. package/dist/docs/reference/geometry/ThreadLeadInShape.md +8 -1
  209. package/dist/docs/reference/geometry/ThreadProfile-type.md +7 -3
  210. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +5 -1
  211. package/dist/docs/reference/geometry/ThreadProfileSpec.md +5 -1
  212. package/dist/docs/reference/geometry/ThreadRole.md +8 -1
  213. package/dist/docs/reference/geometry/ThreadedNutBevel.md +8 -1
  214. package/dist/docs/reference/geometry/ThreadedNutOptions.md +5 -1
  215. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +7 -3
  216. package/dist/docs/reference/geometry/ThreadedNutShape.md +8 -1
  217. package/dist/docs/reference/geometry/ThreadedRodOptions.md +5 -1
  218. package/dist/docs/reference/geometry/TorusOptions.md +1 -1
  219. package/dist/docs/reference/geometry/Transform2-type.md +6 -5
  220. package/dist/docs/reference/geometry/Transform2Data.md +15 -0
  221. package/dist/docs/reference/geometry/Transform2Input.md +4 -3
  222. package/dist/docs/reference/geometry/Transform3-type.md +6 -5
  223. package/dist/docs/reference/geometry/Transform3Data.md +18 -0
  224. package/dist/docs/reference/geometry/Transform3Input.md +4 -3
  225. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -1
  226. package/dist/docs/reference/geometry/TriangleMesh.md +6 -1
  227. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +7 -3
  228. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +5 -1
  229. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +7 -3
  230. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +5 -1
  231. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +5 -1
  232. package/dist/docs/reference/geometry/TriangleMeshSignature.md +7 -3
  233. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +6 -1
  234. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +6 -1
  235. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +5 -1
  236. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +5 -1
  237. package/dist/docs/reference/geometry/TubeOptions.md +1 -1
  238. package/dist/docs/reference/geometry/Vector2-type.md +6 -5
  239. package/dist/docs/reference/geometry/Vector2Data.md +15 -0
  240. package/dist/docs/reference/geometry/Vector2Input.md +4 -3
  241. package/dist/docs/reference/geometry/Vector3-type.md +6 -5
  242. package/dist/docs/reference/geometry/Vector3Data.md +15 -0
  243. package/dist/docs/reference/geometry/Vector3Input.md +4 -3
  244. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +6 -1
  245. package/dist/docs/reference/geometry/VectorTextLayout.md +5 -1
  246. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +5 -1
  247. package/dist/docs/reference/geometry/VectorTextMetrics.md +7 -3
  248. package/dist/docs/reference/geometry/VectorTextOptions.md +5 -1
  249. package/dist/docs/reference/geometry/add2.md +7 -6
  250. package/dist/docs/reference/geometry/add3.md +7 -6
  251. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +5 -1
  252. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +5 -1
  253. package/dist/docs/reference/geometry/anchor3.md +2 -1
  254. package/dist/docs/reference/geometry/anchorFrame3.md +5 -1
  255. package/dist/docs/reference/geometry/applyTransformDirection3.md +8 -7
  256. package/dist/docs/reference/geometry/applyTransformPoint3.md +8 -7
  257. package/dist/docs/reference/geometry/attachmentTransform3.md +5 -4
  258. package/dist/docs/reference/geometry/bounds2.md +38 -0
  259. package/dist/docs/reference/geometry/bounds3.md +38 -0
  260. package/dist/docs/reference/geometry/boundsCenter.md +12 -11
  261. package/dist/docs/reference/geometry/boundsFromSize.md +12 -11
  262. package/dist/docs/reference/geometry/boundsSize.md +12 -11
  263. package/dist/docs/reference/geometry/boxAnchor3.md +4 -3
  264. package/dist/docs/reference/geometry/categories/bounds-layout.md +23 -6
  265. package/dist/docs/reference/geometry/categories/curves-paths.md +21 -9
  266. package/dist/docs/reference/geometry/categories/mechanical.md +22 -10
  267. package/dist/docs/reference/geometry/categories/meshes.md +16 -7
  268. package/dist/docs/reference/geometry/categories/pattern-placement.md +6 -4
  269. package/dist/docs/reference/geometry/categories/primitive-options.md +8 -2
  270. package/dist/docs/reference/geometry/categories/profiles-regions.md +21 -12
  271. package/dist/docs/reference/geometry/categories/resolution-errors.md +5 -3
  272. package/dist/docs/reference/geometry/categories/transforms-math.md +21 -12
  273. package/dist/docs/reference/geometry/categories/vector-import.md +11 -5
  274. package/dist/docs/reference/geometry/circleContour.md +5 -1
  275. package/dist/docs/reference/geometry/closeToAxis.md +14 -5
  276. package/dist/docs/reference/geometry/compensateThreadDiameters.md +5 -1
  277. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -1
  278. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -1
  279. package/dist/docs/reference/geometry/composeTransform3.md +7 -6
  280. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -1
  281. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +11 -2
  282. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +13 -5
  283. package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +5 -1
  284. package/dist/docs/reference/geometry/containsBounds.md +10 -9
  285. package/dist/docs/reference/geometry/contourContainsPoint.md +8 -4
  286. package/dist/docs/reference/geometry/cross2.md +6 -5
  287. package/dist/docs/reference/geometry/cross3.md +7 -6
  288. package/dist/docs/reference/geometry/cylinderAnchor3.md +3 -2
  289. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +5 -1
  290. package/dist/docs/reference/geometry/distance2.md +6 -5
  291. package/dist/docs/reference/geometry/distance3.md +6 -5
  292. package/dist/docs/reference/geometry/distributeAlongPath.md +5 -1
  293. package/dist/docs/reference/geometry/dot2.md +6 -5
  294. package/dist/docs/reference/geometry/dot3.md +6 -5
  295. package/dist/docs/reference/geometry/ellipseContour.md +5 -1
  296. package/dist/docs/reference/geometry/eulerTransform3.md +7 -6
  297. package/dist/docs/reference/geometry/extrudeMesh.md +5 -1
  298. package/dist/docs/reference/geometry/fitBounds.md +10 -9
  299. package/dist/docs/reference/geometry/fitTextLayout.md +13 -5
  300. package/dist/docs/reference/geometry/frameTransform3.md +5 -4
  301. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +5 -1
  302. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +5 -1
  303. package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
  304. package/dist/docs/reference/geometry/heightfieldMesh.md +11 -2
  305. package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +5 -1
  306. package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +5 -1
  307. package/dist/docs/reference/geometry/inverseTransform3.md +6 -5
  308. package/dist/docs/reference/geometry/isGeometryError.md +5 -2
  309. package/dist/docs/reference/geometry/joinTriangleMeshes.md +5 -1
  310. package/dist/docs/reference/geometry/layoutRow.md +11 -7
  311. package/dist/docs/reference/geometry/length2.md +5 -4
  312. package/dist/docs/reference/geometry/length3.md +5 -4
  313. package/dist/docs/reference/geometry/lerp2.md +7 -6
  314. package/dist/docs/reference/geometry/lerp3.md +7 -6
  315. package/dist/docs/reference/geometry/linearPatternTransforms.md +4 -4
  316. package/dist/docs/reference/geometry/loftMesh.md +5 -1
  317. package/dist/docs/reference/geometry/matchProfiles.md +11 -2
  318. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +5 -1
  319. package/dist/docs/reference/geometry/meshBounds.md +8 -4
  320. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +5 -1
  321. package/dist/docs/reference/geometry/normalize2.md +10 -6
  322. package/dist/docs/reference/geometry/normalize3.md +10 -6
  323. package/dist/docs/reference/geometry/normalizeContour.md +8 -4
  324. package/dist/docs/reference/geometry/normalizePolygon.md +5 -1
  325. package/dist/docs/reference/geometry/normalizeRegion.md +5 -1
  326. package/dist/docs/reference/geometry/optimizePlanarPatches.md +5 -1
  327. package/dist/docs/reference/geometry/path2.md +14 -2
  328. package/dist/docs/reference/geometry/path3.md +8 -1
  329. package/dist/docs/reference/geometry/pathPatternTransforms.md +9 -5
  330. package/dist/docs/reference/geometry/preflightHeightfield.md +11 -2
  331. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +11 -2
  332. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +13 -2
  333. package/dist/docs/reference/geometry/preflightSvgRegion.md +15 -2
  334. package/dist/docs/reference/geometry/preflightThreadedNut.md +12 -2
  335. package/dist/docs/reference/geometry/preflightThreadedRod.md +12 -2
  336. package/dist/docs/reference/geometry/projectOntoPlane3.md +7 -6
  337. package/dist/docs/reference/geometry/radialPatternTransforms.md +4 -4
  338. package/dist/docs/reference/geometry/rectangleContour.md +10 -3
  339. package/dist/docs/reference/geometry/rectangleProfile.md +10 -2
  340. package/dist/docs/reference/geometry/regionArea.md +5 -1
  341. package/dist/docs/reference/geometry/regionBounds.md +8 -4
  342. package/dist/docs/reference/geometry/regularPolygonContour.md +8 -4
  343. package/dist/docs/reference/geometry/resamplePolyline2.md +8 -4
  344. package/dist/docs/reference/geometry/resamplePolyline3.md +8 -4
  345. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
  346. package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
  347. package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
  348. package/dist/docs/reference/geometry/resolveCylindricalGear.md +5 -1
  349. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +5 -1
  350. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +5 -1
  351. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -1
  352. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  353. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +59 -0
  354. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +5 -1
  355. package/dist/docs/reference/geometry/resolveRackPitch.md +5 -1
  356. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +5 -1
  357. package/dist/docs/reference/geometry/reverseTriangleMesh.md +5 -1
  358. package/dist/docs/reference/geometry/revolveMesh.md +5 -1
  359. package/dist/docs/reference/geometry/rotate2.md +6 -5
  360. package/dist/docs/reference/geometry/rotationTransform3.md +7 -6
  361. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -4
  362. package/dist/docs/reference/geometry/sampleContour.md +12 -2
  363. package/dist/docs/reference/geometry/sampleCurve2.md +6 -3
  364. package/dist/docs/reference/geometry/sampleCurve3.md +5 -1
  365. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +5 -1
  366. package/dist/docs/reference/geometry/sampleHelix.md +13 -5
  367. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +5 -1
  368. package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -4
  369. package/dist/docs/reference/geometry/sampleSideProfile.md +15 -5
  370. package/dist/docs/reference/geometry/sampleTextContours.md +5 -1
  371. package/dist/docs/reference/geometry/sampleThreadHelices.md +5 -1
  372. package/dist/docs/reference/geometry/scale2.md +6 -5
  373. package/dist/docs/reference/geometry/scale3.md +6 -5
  374. package/dist/docs/reference/geometry/scaleTransform3.md +7 -6
  375. package/dist/docs/reference/geometry/signedContourArea.md +5 -1
  376. package/dist/docs/reference/geometry/starContour.md +8 -4
  377. package/dist/docs/reference/geometry/strokeRegionData.md +5 -1
  378. package/dist/docs/reference/geometry/subtract2.md +7 -6
  379. package/dist/docs/reference/geometry/subtract3.md +7 -6
  380. package/dist/docs/reference/geometry/sweepMesh.md +5 -1
  381. package/dist/docs/reference/geometry/threadProfile.md +5 -1
  382. package/dist/docs/reference/geometry/transform2.md +14 -7
  383. package/dist/docs/reference/geometry/transform3.md +16 -7
  384. package/dist/docs/reference/geometry/transformDeterminant3.md +5 -4
  385. package/dist/docs/reference/geometry/transformRegionData.md +5 -1
  386. package/dist/docs/reference/geometry/transformTriangleMesh.md +5 -1
  387. package/dist/docs/reference/geometry/translationTransform3.md +7 -6
  388. package/dist/docs/reference/geometry/triangulateContour.md +5 -1
  389. package/dist/docs/reference/geometry/validateSolidMesh.md +9 -2
  390. package/dist/docs/reference/geometry/validateTransform3.md +6 -5
  391. package/dist/docs/reference/geometry/validateTriangleMesh.md +5 -1
  392. package/dist/docs/reference/geometry/vector2.md +10 -2
  393. package/dist/docs/reference/geometry/vector3.md +10 -2
  394. package/dist/docs/reference/geometry.md +7 -5
  395. package/dist/docs/reference/model/Anchor3.md +6 -5
  396. package/dist/docs/reference/model/AttachOptions.md +2 -1
  397. package/dist/docs/reference/model/Bounds2-type.md +125 -0
  398. package/dist/docs/reference/model/Bounds2Data.md +44 -0
  399. package/dist/docs/reference/model/Bounds2Input.md +19 -0
  400. package/dist/docs/reference/model/Bounds3-type.md +125 -0
  401. package/dist/docs/reference/model/Bounds3Data.md +44 -0
  402. package/dist/docs/reference/model/Bounds3Input.md +19 -0
  403. package/dist/docs/reference/model/BoxEdge.md +1 -1
  404. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  405. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  406. package/dist/docs/reference/model/BoxOptions.md +3 -3
  407. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  408. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  409. package/dist/docs/reference/model/CircleOptions.md +1 -1
  410. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
  411. package/dist/docs/reference/model/Computed.md +6 -1
  412. package/dist/docs/reference/model/ComputedValue.md +5 -1
  413. package/dist/docs/reference/model/Contour.md +6 -4
  414. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  415. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  416. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  417. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  418. package/dist/docs/reference/model/CylinderOptions.md +1 -1
  419. package/dist/docs/reference/model/DiagnosticOptions.md +6 -1
  420. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  421. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  422. package/dist/docs/reference/model/EllipseOptions.md +1 -1
  423. package/dist/docs/reference/model/EndTreatments.md +1 -1
  424. package/dist/docs/reference/model/ExtrudeOptions.md +1 -1
  425. package/dist/docs/reference/model/FinalizedModel.md +3 -3
  426. package/dist/docs/reference/model/FinalizedPart.md +1 -1
  427. package/dist/docs/reference/model/Frame3.md +6 -6
  428. package/dist/docs/reference/model/GenerateCallback.md +5 -1
  429. package/dist/docs/reference/model/GenerateContext.md +5 -1
  430. package/dist/docs/reference/model/GeneratedPart.md +5 -1
  431. package/dist/docs/reference/model/GenerationDiagnostic.md +6 -1
  432. package/dist/docs/reference/model/GenerationError.md +5 -1
  433. package/dist/docs/reference/model/GeometryResolution.md +1 -1
  434. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  435. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  436. package/dist/docs/reference/model/GridPatternOptions.md +5 -4
  437. package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
  438. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +2 -1
  439. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +3 -2
  440. package/dist/docs/reference/model/HullOptions.md +1 -1
  441. package/dist/docs/reference/model/ImmutableBuffer-type.md +5 -1
  442. package/dist/docs/reference/model/ImmutableTriangleMesh.md +5 -1
  443. package/dist/docs/reference/model/ImplicitOptions.md +6 -6
  444. package/dist/docs/reference/model/InternalThreadCutterOptions.md +2 -1
  445. package/dist/docs/reference/model/KnuckleHinge-type.md +47 -0
  446. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +77 -0
  447. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +34 -0
  448. package/dist/docs/reference/model/KnuckleHingeOptions.md +38 -0
  449. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +47 -0
  450. package/dist/docs/reference/model/KnuckleHingeSpec.md +18 -0
  451. package/dist/docs/reference/model/KnuckleHingeWeb.md +53 -0
  452. package/dist/docs/reference/model/LinearPatternOptions.md +2 -1
  453. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  454. package/dist/docs/reference/model/LoftOptions.md +1 -1
  455. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  456. package/dist/docs/reference/model/LoftStation.md +1 -1
  457. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  458. package/dist/docs/reference/model/ModelProgram.md +5 -1
  459. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  460. package/dist/docs/reference/model/NumericArray.md +8 -1
  461. package/dist/docs/reference/model/PartGeometry.md +5 -1
  462. package/dist/docs/reference/model/PartOptions.md +5 -1
  463. package/dist/docs/reference/model/Path2-type.md +12 -8
  464. package/dist/docs/reference/model/Path2Data.md +40 -4
  465. package/dist/docs/reference/model/Path2Input.md +8 -3
  466. package/dist/docs/reference/model/Path3-type.md +12 -8
  467. package/dist/docs/reference/model/Path3Data.md +40 -4
  468. package/dist/docs/reference/model/Path3Input.md +8 -3
  469. package/dist/docs/reference/model/PathLocation.md +5 -1
  470. package/dist/docs/reference/model/PathNormalGuide.md +4 -4
  471. package/dist/docs/reference/model/PathOptions.md +5 -1
  472. package/dist/docs/reference/model/PathPatternOptions.md +2 -1
  473. package/dist/docs/reference/model/PathResamplingOptions.md +5 -1
  474. package/dist/docs/reference/model/PatternSource.md +2 -1
  475. package/dist/docs/reference/model/Pivot2Options.md +2 -1
  476. package/dist/docs/reference/model/Pivot3Options.md +2 -1
  477. package/dist/docs/reference/model/PlaneOptions.md +1 -1
  478. package/dist/docs/reference/model/PolygonData.md +3 -2
  479. package/dist/docs/reference/model/PolygonOptions.md +1 -1
  480. package/dist/docs/reference/model/PrimitiveAttachment.md +2 -1
  481. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +2 -1
  482. package/dist/docs/reference/model/PrintableThreadFit.md +2 -1
  483. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +2 -1
  484. package/dist/docs/reference/model/Profile.md +4 -2
  485. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  486. package/dist/docs/reference/model/ProfileContour2.md +4 -2
  487. package/dist/docs/reference/model/ProfileSpan2.md +3 -3
  488. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
  489. package/dist/docs/reference/model/RadialPatternOptions.md +2 -1
  490. package/dist/docs/reference/model/RadialSizing.md +1 -1
  491. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  492. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  493. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  494. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  495. package/dist/docs/reference/model/RectangleOptions.md +3 -3
  496. package/dist/docs/reference/model/RegionData.md +2 -2
  497. package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
  498. package/dist/docs/reference/model/RevolveOptions.md +1 -1
  499. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  500. package/dist/docs/reference/model/Section.md +9 -2
  501. package/dist/docs/reference/model/SectionHullOptions.md +1 -1
  502. package/dist/docs/reference/model/SectionInspection.md +4 -4
  503. package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
  504. package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
  505. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  506. package/dist/docs/reference/model/Solid.md +9 -2
  507. package/dist/docs/reference/model/SolidInspection.md +4 -4
  508. package/dist/docs/reference/model/SolidSegmentHit.md +4 -4
  509. package/dist/docs/reference/model/SphereOptions.md +1 -1
  510. package/dist/docs/reference/model/StarOptions.md +1 -1
  511. package/dist/docs/reference/model/StrokeCap.md +1 -1
  512. package/dist/docs/reference/model/StrokeJoin.md +1 -1
  513. package/dist/docs/reference/model/StrokeOptions.md +1 -1
  514. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  515. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  516. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  517. package/dist/docs/reference/model/SweepOptions.md +1 -1
  518. package/dist/docs/reference/model/SweepOrientation.md +1 -1
  519. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  520. package/dist/docs/reference/model/ThreadEndStyle.md +2 -1
  521. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +2 -1
  522. package/dist/docs/reference/model/ThreadHandedness.md +2 -1
  523. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +2 -1
  524. package/dist/docs/reference/model/ThreadLeadInShape.md +2 -1
  525. package/dist/docs/reference/model/ThreadProfile.md +4 -3
  526. package/dist/docs/reference/model/ThreadRidgeOptions.md +2 -1
  527. package/dist/docs/reference/model/ThreadedNutBevel.md +2 -1
  528. package/dist/docs/reference/model/ThreadedNutOptions.md +2 -1
  529. package/dist/docs/reference/model/ThreadedNutPreflight.md +4 -3
  530. package/dist/docs/reference/model/ThreadedNutShape.md +2 -1
  531. package/dist/docs/reference/model/ThreadedRodOptions.md +2 -1
  532. package/dist/docs/reference/model/TorusOptions.md +1 -1
  533. package/dist/docs/reference/model/Transform2-type.md +6 -5
  534. package/dist/docs/reference/model/Transform2Data.md +16 -0
  535. package/dist/docs/reference/model/Transform2Input.md +4 -3
  536. package/dist/docs/reference/model/Transform3-type.md +6 -5
  537. package/dist/docs/reference/model/Transform3Data.md +19 -0
  538. package/dist/docs/reference/model/Transform3Input.md +4 -3
  539. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  540. package/dist/docs/reference/model/TriangleMeshAnalysis.md +3 -3
  541. package/dist/docs/reference/model/TriangleMeshMeasurements.md +3 -3
  542. package/dist/docs/reference/model/TubeOptions.md +1 -1
  543. package/dist/docs/reference/model/Vector2-type.md +6 -5
  544. package/dist/docs/reference/model/{Vector2Tuple.md → Vector2Data.md} +3 -3
  545. package/dist/docs/reference/model/Vector2Input.md +4 -3
  546. package/dist/docs/reference/model/Vector3-type.md +6 -5
  547. package/dist/docs/reference/model/{Vector3Tuple.md → Vector3Data.md} +3 -3
  548. package/dist/docs/reference/model/Vector3Input.md +4 -3
  549. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  550. package/dist/docs/reference/model/VectorTextMetrics.md +3 -3
  551. package/dist/docs/reference/model/anchor.md +2 -1
  552. package/dist/docs/reference/model/bounds2.md +36 -0
  553. package/dist/docs/reference/model/bounds3.md +36 -0
  554. package/dist/docs/reference/model/box.md +2 -2
  555. package/dist/docs/reference/model/castSegment.md +1 -1
  556. package/dist/docs/reference/model/categories/boolean-operations.md +10 -3
  557. package/dist/docs/reference/model/categories/bounded-surfaces.md +5 -3
  558. package/dist/docs/reference/model/categories/bounds.md +36 -0
  559. package/dist/docs/reference/model/categories/contracts.md +4 -2
  560. package/dist/docs/reference/model/categories/core-values-errors.md +11 -11
  561. package/dist/docs/reference/model/categories/explicit-profiles.md +6 -4
  562. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +12 -3
  563. package/dist/docs/reference/model/categories/generation.md +11 -2
  564. package/dist/docs/reference/model/categories/hinges.md +38 -0
  565. package/dist/docs/reference/model/categories/inspection.md +9 -2
  566. package/dist/docs/reference/model/categories/mesh-inspection.md +5 -3
  567. package/dist/docs/reference/model/categories/paths.md +15 -7
  568. package/dist/docs/reference/model/categories/primitives.md +10 -4
  569. package/dist/docs/reference/model/categories/resolution.md +4 -2
  570. package/dist/docs/reference/model/categories/sections.md +10 -5
  571. package/dist/docs/reference/model/categories/threads.md +10 -7
  572. package/dist/docs/reference/model/categories/transforms-placement.md +17 -9
  573. package/dist/docs/reference/model/circle.md +1 -1
  574. package/dist/docs/reference/model/components.md +1 -1
  575. package/dist/docs/reference/model/compose.md +1 -1
  576. package/dist/docs/reference/model/cylinder.md +1 -1
  577. package/dist/docs/reference/model/distance.md +1 -1
  578. package/dist/docs/reference/model/ellipse.md +1 -1
  579. package/dist/docs/reference/model/extrude.md +1 -1
  580. package/dist/docs/reference/model/generate.md +5 -1
  581. package/dist/docs/reference/model/gridPattern.md +2 -1
  582. package/dist/docs/reference/model/heightfield.md +5 -2
  583. package/dist/docs/reference/model/hull.md +1 -1
  584. package/dist/docs/reference/model/immutableBuffer.md +5 -1
  585. package/dist/docs/reference/model/immutableMesh.md +5 -1
  586. package/dist/docs/reference/model/implicit.md +3 -3
  587. package/dist/docs/reference/model/inspectSection.md +1 -1
  588. package/dist/docs/reference/model/inspectSolid.md +1 -1
  589. package/dist/docs/reference/model/internalThreadCutter.md +2 -1
  590. package/dist/docs/reference/model/intersect.md +1 -1
  591. package/dist/docs/reference/model/isEmpty.md +1 -1
  592. package/dist/docs/reference/model/knuckleHinge.md +47 -0
  593. package/dist/docs/reference/model/linearPattern.md +2 -1
  594. package/dist/docs/reference/model/loft.md +1 -1
  595. package/dist/docs/reference/model/matchProfiles.md +1 -1
  596. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  597. package/dist/docs/reference/model/path2.md +14 -2
  598. package/dist/docs/reference/model/path3.md +8 -1
  599. package/dist/docs/reference/model/pathPattern.md +2 -1
  600. package/dist/docs/reference/model/polygon.md +5 -2
  601. package/dist/docs/reference/model/preflightInternalThreadCutter.md +8 -2
  602. package/dist/docs/reference/model/preflightThreadedNut.md +8 -2
  603. package/dist/docs/reference/model/preflightThreadedRod.md +8 -2
  604. package/dist/docs/reference/model/radialPattern.md +2 -1
  605. package/dist/docs/reference/model/rectangle.md +5 -2
  606. package/dist/docs/reference/model/regularPolygon.md +1 -1
  607. package/dist/docs/reference/model/revolve.md +1 -1
  608. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  609. package/dist/docs/reference/model/sphere.md +1 -1
  610. package/dist/docs/reference/model/split.md +1 -1
  611. package/dist/docs/reference/model/splitByPlane.md +1 -1
  612. package/dist/docs/reference/model/star.md +1 -1
  613. package/dist/docs/reference/model/stroke.md +1 -1
  614. package/dist/docs/reference/model/svgPathSection.md +1 -1
  615. package/dist/docs/reference/model/svgSection.md +1 -1
  616. package/dist/docs/reference/model/sweep.md +1 -1
  617. package/dist/docs/reference/model/textSection.md +1 -1
  618. package/dist/docs/reference/model/threadRidge.md +2 -1
  619. package/dist/docs/reference/model/threadedNut.md +2 -1
  620. package/dist/docs/reference/model/threadedRod.md +2 -1
  621. package/dist/docs/reference/model/torus.md +1 -1
  622. package/dist/docs/reference/model/transform2.md +14 -7
  623. package/dist/docs/reference/model/transform3.md +16 -7
  624. package/dist/docs/reference/model/tube.md +1 -1
  625. package/dist/docs/reference/model/union.md +1 -1
  626. package/dist/docs/reference/model/vector2.md +10 -2
  627. package/dist/docs/reference/model/vector3.md +10 -2
  628. package/dist/docs/reference/model.md +15 -8
  629. package/dist/docs/reference/text/Bounds2Data.md +34 -0
  630. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  631. package/dist/docs/reference/text/Vector2Data.md +7 -0
  632. package/dist/docs/reference/text/VectorFont.md +1 -1
  633. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  634. package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
  635. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  636. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  637. package/dist/docs/reference/text/VectorTextMetrics.md +3 -3
  638. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  639. package/dist/docs/reference/text/categories/font-preparation.md +6 -4
  640. package/dist/docs/reference/text/prepareVectorFont.md +1 -1
  641. package/dist/docs/reference/text.md +4 -2
  642. package/dist/engine/construction-operations.js +1 -1
  643. package/dist/engine/knuckle-hinge-operation.js +85 -0
  644. package/dist/engine/loft-operations.js +1 -1
  645. package/dist/engine/mechanical-operations.js +3 -1
  646. package/dist/engine/modeling-context.js +8 -1
  647. package/dist/engine/recipe-realization.js +4 -2
  648. package/dist/engine/section-operations.js +1 -1
  649. package/dist/engine/transform-operations.js +3 -3
  650. package/dist/geometry/bounds-value.js +93 -0
  651. package/dist/geometry/bounds.js +10 -8
  652. package/dist/geometry/curves/sampling.js +1 -2
  653. package/dist/geometry/errors.js +1 -0
  654. package/dist/geometry/heightfield.js +12 -1
  655. package/dist/geometry/index.js +3 -1
  656. package/dist/geometry/math/immutable-value.js +1 -1
  657. package/dist/geometry/math/vector-value.js +11 -3
  658. package/dist/geometry/math/vector2.js +1 -0
  659. package/dist/geometry/math/vector3.js +1 -0
  660. package/dist/geometry/mechanical/index.js +1 -0
  661. package/dist/geometry/mechanical/knuckle-hinge.js +110 -0
  662. package/dist/geometry/mechanical/thread-mesh-plan.js +7 -2
  663. package/dist/geometry/mechanical/thread-solids.js +29 -4
  664. package/dist/geometry/mesh/mesh-centroid.js +1 -0
  665. package/dist/geometry/mesh/mesh-solid.js +1 -0
  666. package/dist/geometry/paths/frames.js +1 -0
  667. package/dist/geometry/paths/helix.js +1 -0
  668. package/dist/geometry/paths/path-value.js +43 -27
  669. package/dist/geometry/paths/resampling.js +2 -2
  670. package/dist/geometry/patterns/placements.js +3 -3
  671. package/dist/geometry/patterns.js +3 -1
  672. package/dist/geometry/profiles/contour.js +1 -0
  673. package/dist/geometry/profiles/matched.js +1 -0
  674. package/dist/geometry/profiles/rectangle.js +10 -1
  675. package/dist/geometry/profiles/side-profile.js +2 -0
  676. package/dist/geometry/svg-import.js +8 -2
  677. package/dist/geometry/sweeps/options.js +1 -1
  678. package/dist/geometry/text-fitting.js +1 -0
  679. package/dist/geometry/transform-matrix.js +1 -1
  680. package/dist/geometry/{transform-chain.js → transform-value.js} +24 -15
  681. package/dist/index.js +2 -1
  682. package/dist/model/execution-binding.js +1 -1
  683. package/dist/model/geometry-recipes.js +1 -1
  684. package/dist/model/immutable-generation-data.js +4 -12
  685. package/dist/model/knuckle-hinge.js +1 -0
  686. package/dist/model/operations.js +57 -3
  687. package/dist/model/recipe-declaration.js +10 -2
  688. package/package.json +1 -1
  689. package/dist/docs/reference/geometry/Bounds2.md +0 -39
  690. package/dist/docs/reference/geometry/Bounds3.md +0 -39
  691. package/dist/docs/reference/geometry/Transform2Matrix.md +0 -14
  692. package/dist/docs/reference/geometry/Transform3Matrix.md +0 -17
  693. package/dist/docs/reference/geometry/Vector2Tuple.md +0 -14
  694. package/dist/docs/reference/geometry/Vector3Tuple.md +0 -14
  695. package/dist/docs/reference/model/Bounds2.md +0 -39
  696. package/dist/docs/reference/model/Bounds3.md +0 -39
  697. package/dist/docs/reference/model/Transform2Matrix.md +0 -15
  698. package/dist/docs/reference/model/Transform3Matrix.md +0 -18
  699. package/dist/docs/reference/text/Bounds2.md +0 -34
  700. package/dist/docs/reference/text/Vector2Tuple.md +0 -7
@@ -30,11 +30,11 @@ export declare function anchor(shape: Solid | Section, name: string): Anchor3;
30
30
  */
31
31
  export declare interface Anchor3 {
32
32
  /** Unit outward normal used as the anchor's local +Z direction. */
33
- readonly direction: Vector3Tuple;
33
+ readonly direction: Vector3Data;
34
34
  /** World-space attachment position. */
35
- readonly position: Vector3Tuple;
35
+ readonly position: Vector3Data;
36
36
  /** Roll guide projected into the plane perpendicular to `direction`. */
37
- readonly up: Vector3Tuple;
37
+ readonly up: Vector3Data;
38
38
  }
39
39
 
40
40
  /** Options controlling how one anchor is attached to another. */
@@ -49,22 +49,72 @@ export declare interface AttachOptions {
49
49
  readonly tolerance?: GeometryToleranceOptions;
50
50
  }
51
51
 
52
- /** Axis-aligned bounds in two-dimensional model space. */
53
- export declare interface Bounds2 {
52
+ /** Immutable finite XY bounds in millimetres, with tuple coordinates for data interoperability. */
53
+ export declare interface Bounds2 extends Bounds2Data {
54
+ /** Returns nonnegative X/Y dimensions in millimetres, including zero extents. */
55
+ size(): Vector2;
56
+ /** Returns the midpoint in millimetres. */
57
+ center(): Vector2;
58
+ /** Tests positioned XY containment, including touching boundaries. */
59
+ containsBounds(other: Bounds2Input): boolean;
60
+ /** Returns this value's frozen plain record; repeated calls do not allocate. */
61
+ toData(): Bounds2Data;
62
+ }
63
+
64
+ /**
65
+ * Snapshots finite ordered XY bounds in millimetres as an immutable fluent value.
66
+ *
67
+ * Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
68
+ * overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
69
+ * Compiled Generator packages passing these values to host recipes or computed data require
70
+ * runtime 8.0.0 or newer in major 8.
71
+ */
72
+ export declare function bounds2(input: Bounds2Input): Bounds2;
73
+
74
+ /** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
75
+ export declare interface Bounds2Data {
54
76
  /** Inclusive maximum X/Y coordinates. */
55
- readonly max: Vector2Tuple;
77
+ readonly max: Vector2Data;
56
78
  /** Inclusive minimum X/Y coordinates. */
57
- readonly min: Vector2Tuple;
79
+ readonly min: Vector2Data;
80
+ }
81
+
82
+ /** An immutable XY bounds value or its plain min/max representation. */
83
+ export declare type Bounds2Input = Bounds2 | Bounds2Data;
84
+
85
+ /** Immutable finite XYZ bounds in millimetres, with tuple coordinates for data interoperability. */
86
+ export declare interface Bounds3 extends Bounds3Data {
87
+ /** Returns nonnegative X/Y/Z dimensions in millimetres, including zero extents. */
88
+ size(): Vector3;
89
+ /** Returns the midpoint in millimetres. */
90
+ center(): Vector3;
91
+ /** Tests positioned XYZ containment, including touching boundaries. */
92
+ containsBounds(other: Bounds3Input): boolean;
93
+ /** Returns this value's frozen plain record; repeated calls do not allocate. */
94
+ toData(): Bounds3Data;
58
95
  }
59
96
 
60
- /** Axis-aligned bounds in three-dimensional model space. */
61
- export declare interface Bounds3 {
97
+ /**
98
+ * Snapshots finite ordered XYZ bounds in millimetres as an immutable fluent value.
99
+ *
100
+ * Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
101
+ * overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
102
+ * Compiled Generator packages passing these values to host recipes or computed data require
103
+ * runtime 8.0.0 or newer in major 8.
104
+ */
105
+ export declare function bounds3(input: Bounds3Input): Bounds3;
106
+
107
+ /** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
108
+ export declare interface Bounds3Data {
62
109
  /** Inclusive maximum X/Y/Z coordinates. */
63
- readonly max: Vector3Tuple;
110
+ readonly max: Vector3Data;
64
111
  /** Inclusive minimum X/Y/Z coordinates. */
65
- readonly min: Vector3Tuple;
112
+ readonly min: Vector3Data;
66
113
  }
67
114
 
115
+ /** An immutable XYZ bounds value or its plain min/max representation. */
116
+ export declare type Bounds3Input = Bounds3 | Bounds3Data;
117
+
68
118
  /**
69
119
  * Axis-aligned box with uniform or disjoint named edge/group treatments.
70
120
  *
@@ -110,7 +160,7 @@ export declare interface BoxOptions extends PrimitiveAttachment {
110
160
  */
111
161
  readonly center?: boolean;
112
162
  /** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
113
- readonly size: number | Vector3Tuple;
163
+ readonly size: number | Vector3Data;
114
164
  /** Uniform treatment or independent disjoint nominal edge/group treatments. */
115
165
  readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
116
166
  }
@@ -246,12 +296,16 @@ declare const computedBrand: unique symbol;
246
296
  export declare type ComputedValue<T> = T | Computed<T>;
247
297
 
248
298
  /**
249
- * A closed two-dimensional boundary whose first point is not repeated at the end.
299
+ * A sampled closed two-dimensional boundary whose first point is not repeated at the end.
250
300
  *
251
301
  * Polygon exteriors are counter-clockwise and holes are clockwise. Algorithms
252
302
  * may reject duplicate adjacent points or fewer than three effective vertices.
303
+ * Use PolygonData to assign an exterior and its holes, or ProfileContour2 for identified curve spans.
304
+ *
305
+ * @see {@link PolygonData}
306
+ * @see [ProfileContour2](/docs/reference/geometry/ProfileContour2)
253
307
  */
254
- export declare type Contour = readonly Vector2Tuple[];
308
+ export declare type Contour = readonly Vector2Data[];
255
309
 
256
310
  /** One sampled component retaining contour identities and logical point correspondence. */
257
311
  export declare interface CorrespondingComponent {
@@ -307,7 +361,7 @@ declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
307
361
  * Open path spanning exactly `[-pitch/2, pitch/2]`, with both endpoints on the minor envelope,
308
362
  * one connected ridge, one contiguous crest, and radial zero at the major envelope.
309
363
  */
310
- readonly points: readonly Vector2Tuple[];
364
+ readonly points: readonly Vector2Data[];
311
365
  }
312
366
 
313
367
  /**
@@ -404,13 +458,13 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
404
458
  (
405
459
  | {
406
460
  /** Positive XY radii in millimetres; mutually exclusive with size. */
407
- readonly radius: Vector2Tuple;
461
+ readonly radius: Vector2Data;
408
462
  /** Full XY extents are unavailable when radius is supplied. */
409
463
  readonly size?: never;
410
464
  }
411
465
  | {
412
466
  /** Positive full XY extents in millimetres; mutually exclusive with radius. */
413
- readonly size: Vector2Tuple;
467
+ readonly size: Vector2Data;
414
468
  /** XY radii are unavailable when size is supplied. */
415
469
  readonly radius?: never;
416
470
  }
@@ -482,7 +536,7 @@ export declare interface FinalizedModel {
482
536
  /** Ordered finalized manufacturing parts with copied transferable arrays. */
483
537
  readonly parts: readonly FinalizedPart[];
484
538
  /** Axis-aligned XYZ bounds in millimetres. */
485
- readonly bounds: Bounds3;
539
+ readonly bounds: Bounds3Data;
486
540
  /** Aggregate counts, unique backing storage, volume, and execution timings. */
487
541
  readonly stats: {
488
542
  /** Number of declared output parts, including repeated geometry instances. */
@@ -517,13 +571,13 @@ export declare interface FinalizedPart extends TriangleMesh {
517
571
  /** A right-handed orthonormal coordinate frame expressed in world coordinates. */
518
572
  export declare interface Frame3 {
519
573
  /** World-space origin of the local frame. */
520
- readonly origin: Vector3Tuple;
574
+ readonly origin: Vector3Data;
521
575
  /** Unit vector defining the local +X axis. */
522
- readonly xAxis: Vector3Tuple;
576
+ readonly xAxis: Vector3Data;
523
577
  /** Unit vector defining the local +Y axis. */
524
- readonly yAxis: Vector3Tuple;
578
+ readonly yAxis: Vector3Data;
525
579
  /** Unit vector defining the local +Z axis. */
526
- readonly zAxis: Vector3Tuple;
580
+ readonly zAxis: Vector3Data;
527
581
  }
528
582
 
529
583
  /**
@@ -669,22 +723,23 @@ export declare type GridPatternOptions<Dimension extends 2 | 3 = 3> = {
669
723
  } & (
670
724
  | {
671
725
  /** Positive integer counts on X and Y. */
672
- readonly count: Vector2Tuple;
726
+ readonly count: Vector2Data;
673
727
  /** Signed millimetres between adjacent copies on X and Y. */
674
- readonly spacing: Vector2Tuple;
728
+ readonly spacing: Vector2Data;
675
729
  }
676
730
  | (Dimension extends 3
677
731
  ? {
678
732
  /** Positive integer counts on X, Y and Z. */
679
- readonly count: Vector3Tuple;
733
+ readonly count: Vector3Data;
680
734
  /** Signed millimetres between adjacent copies on X, Y and Z. */
681
- readonly spacing: Vector3Tuple;
735
+ readonly spacing: Vector3Data;
682
736
  }
683
737
  : never)
684
738
  );
685
739
 
686
740
  /**
687
741
  * Closed rectilinear top above a flat base, with uniform or explicit XY coordinates.
742
+ *
688
743
  * Samples each grid height once; center-error triangulation also samples each cell centre.
689
744
  * The retained callback must capture independent immutable inputs, not live session readers or parameters.
690
745
  *
@@ -709,7 +764,7 @@ export declare function heightfield(options: HeightfieldOptions): Solid;
709
764
  */
710
765
  export declare type HeightfieldOptions = {
711
766
  /** Absolute top Z at the supplied XY point. Every sample must be above baseZ. */
712
- readonly height: (point: Vector2Tuple) => number;
767
+ readonly height: (point: Vector2Data) => number;
713
768
  /** Flat bottom Z. Defaults to zero. */
714
769
  readonly baseZ?: number;
715
770
  /**
@@ -722,11 +777,11 @@ export declare type HeightfieldOptions = {
722
777
  } & (
723
778
  | {
724
779
  /** Positive XY footprint for uniform sampling. */
725
- readonly size: Vector2Tuple;
780
+ readonly size: Vector2Data;
726
781
  /** Exact positive integer X/Y interval counts. */
727
782
  readonly segments: readonly [x: number, y: number];
728
783
  /** Lower-left footprint XY. Omitted centers the footprint on XY. */
729
- readonly origin?: Vector2Tuple;
784
+ readonly origin?: Vector2Data;
730
785
  /** Explicit coordinates cannot be combined with uniform sampling. */
731
786
  readonly coordinates?: never;
732
787
  }
@@ -777,7 +832,7 @@ export declare interface HelicalThreadRidgeMeshOptions {
777
832
  readonly tolerance?: GeometryToleranceOptions;
778
833
  }
779
834
 
780
- /** Conservative allocation facts resolved before constructing a direct thread solid mesh. */
835
+ /** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
781
836
  export declare interface HelicalThreadSolidMeshPreflight {
782
837
  /** Uniform axial intervals required only by a requested physical segment-length limit. */
783
838
  readonly axialIntervals: number;
@@ -884,9 +939,9 @@ export declare function implicit(options: ImplicitOptions): Solid;
884
939
  /** Positive-inside sampling, bounded to 4M native BCC grid slots and 8M field calls. */
885
940
  export declare interface ImplicitOptions {
886
941
  /** Positive-inside scalar field evaluated at finite XYZ points. */
887
- readonly field: (point: Vector3Tuple) => number;
942
+ readonly field: (point: Vector3Data) => number;
888
943
  /** Axis-aligned XYZ bounds in millimetres. */
889
- readonly bounds: Bounds3;
944
+ readonly bounds: Bounds3Data;
890
945
  /** Positive sampling edge length in millimetres. */
891
946
  readonly edgeLength: number;
892
947
  /** Field isosurface value; defaults to zero. */
@@ -974,6 +1029,122 @@ export declare function intersect(sections: readonly Section[]): Section;
974
1029
  */
975
1030
  export declare function isEmpty(shape: Solid | Section): boolean;
976
1031
 
1032
+ /** Portable local geometry; consumers own plates, holes, part declarations, and final placement. */
1033
+ export declare interface KnuckleHinge {
1034
+ /** Alternating A intervals, including the integral shaft in print-in-place and lift-off modes. */
1035
+ readonly halfA: Solid;
1036
+ /** Alternating B intervals with a face-sized running bore. */
1037
+ readonly halfB: Solid;
1038
+ /** Centered +X pin axis with +Z roll guide; opening and lift-off withdrawal are caller transforms. */
1039
+ readonly axis: Anchor3;
1040
+ }
1041
+
1042
+ /**
1043
+ * Declares separate knuckle-joint halves along the centered +X pin axis, in millimetres.
1044
+ *
1045
+ * A starts at negative X. Attach independent webs or use barrels only; caller geometry connects
1046
+ * otherwise disconnected intervals. Returns portable recipes without initializing the engine.
1047
+ * Unspecified resolution inherits the evaluating session. Axis direction is +X with +Z up.
1048
+ *
1049
+ * Barrel end chamfers affect outer rims only; webs have square edges. Consumers own plates, screw holes,
1050
+ * pin retention, fit policy, and part placement. Added mounting material must preserve the bores.
1051
+ * No opening range or collision freedom is implied for arbitrary caller attachments.
1052
+ * Compiled Generator packages using this operation require runtime 8.0.0 or newer in major 8.
1053
+ *
1054
+ * @example Integral-pin hinge with two mounting webs
1055
+ * ```ts
1056
+ * const joint = knuckleHinge({
1057
+ * mode: "print-in-place", length: 30, knuckleCount: 3,
1058
+ * barrelDiameter: 10, pinDiameter: 3, radialClearance: 0.3, axialGap: 0.4,
1059
+ * halfA: { web: { direction: "positive-y", reach: 8, zMin: -5, thickness: 2 } },
1060
+ * halfB: { web: { direction: "negative-y", reach: 8, zMin: -5, thickness: 2 } },
1061
+ * });
1062
+ * ```
1063
+ */
1064
+ export declare function knuckleHinge(
1065
+ options: KnuckleHingeOptions,
1066
+ ): KnuckleHinge;
1067
+
1068
+ /** Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. */
1069
+ export declare interface KnuckleHingeBaseSpec {
1070
+ /** Total extent along the +X pin axis, centered at the origin. */
1071
+ readonly length: number;
1072
+ /** Number of equal alternating intervals, starting with half A. */
1073
+ readonly knuckleCount: number;
1074
+ /** Outside vertex-sized barrel diameter. */
1075
+ readonly barrelDiameter: number;
1076
+ /** Vertex-sized shaft diameter, including an externally supplied shaft. */
1077
+ readonly pinDiameter: number;
1078
+ /** Nonnegative per-side radial allowance; bores circumscribe this running envelope. */
1079
+ readonly radialClearance: number;
1080
+ /** Nonnegative total air gap between each neighboring pair of knuckle ends. */
1081
+ readonly axialGap: number;
1082
+ }
1083
+
1084
+ /** Optional mounting and outer-rim treatment for one knuckle owner. */
1085
+ export declare interface KnuckleHingeHalfOptions {
1086
+ /** Omit for barrels only. Each interval receives one web; disconnected intervals need caller geometry. */
1087
+ readonly web?: KnuckleHingeWeb;
1088
+ /** 45° setback in millimetres at both ends of every barrel; defaults to 0. */
1089
+ readonly barrelChamfer?: number;
1090
+ }
1091
+
1092
+ /** Joint declaration with independent attachments; unspecified sampling inherits the evaluating host. */
1093
+ export declare type KnuckleHingeOptions = KnuckleHingeSpec &
1094
+ KnuckleHingeSamplingOptions & {
1095
+ /** Optional attachment and rim treatment for A, which owns an integral pin when present. */
1096
+ readonly halfA?: KnuckleHingeHalfOptions;
1097
+ /** Optional attachment and rim treatment for B, which always carries a running bore. */
1098
+ readonly halfB?: KnuckleHingeHalfOptions;
1099
+ };
1100
+
1101
+ /** Shared circular sampling for barrels, shafts, and bores. */
1102
+ export declare interface KnuckleHingeSamplingOptions {
1103
+ /** Exact full-circle count, divisible by four and at least four; overrides adaptive sampling. */
1104
+ readonly segments?: number;
1105
+ /** Physical tessellation policy. Exact circular counts must also be divisible by four. */
1106
+ readonly resolution?: GeometryResolution;
1107
+ /** Explicit allocation ceilings; defaults to the pure geometry sampling limits. */
1108
+ readonly limits?: Partial<GeometrySamplingLimits>;
1109
+ }
1110
+
1111
+ /**
1112
+ * Knuckle-joint construction modes and interval ownership.
1113
+ *
1114
+ * Print-in-place requires an odd count of at least three: A owns both
1115
+ * end anchors and the entire shaft. Inserted-pin bores both halves and supplies no shaft.
1116
+ * Lift-off requires exactly two intervals; A's integral pin enters B without a far anchor.
1117
+ */
1118
+ export declare type KnuckleHingeSpec = KnuckleHingeBaseSpec &
1119
+ (
1120
+ | {
1121
+ /** Captive integral shaft or bores for an externally supplied pin. */
1122
+ readonly mode: "print-in-place" | "inserted-pin";
1123
+ /** Engagement applies only to lift-off construction. */
1124
+ readonly pinEngagement?: never;
1125
+ }
1126
+ | {
1127
+ /** Detachable socket on a finite integral pin. */
1128
+ readonly mode: "lift-off";
1129
+ /** Lift-off has one fixed interval and one removable interval. */
1130
+ readonly knuckleCount: 2;
1131
+ /** Positive axial engagement into B, no greater than its knuckle length. */
1132
+ readonly pinEngagement: number;
1133
+ }
1134
+ );
1135
+
1136
+ /** Rectangular connection from the axis into a caller-owned mounting body, in millimetres. */
1137
+ export declare interface KnuckleHingeWeb {
1138
+ /** Direction from the pin axis; independently chosen for each half. */
1139
+ readonly direction: "positive-y" | "negative-y";
1140
+ /** Positive distance from the axis to the web's far edge. Overlap into the mounting body. */
1141
+ readonly reach: number;
1142
+ /** Lower-face Z coordinate in the pin-centered frame, in millimetres. Must overlap the barrel's interior. */
1143
+ readonly zMin: number;
1144
+ /** Positive thickness along +Z. Webs have square edges and span their own barrel intervals. */
1145
+ readonly thickness: number;
1146
+ }
1147
+
977
1148
  /**
978
1149
  * Repeats one solid along a normalized direction.
979
1150
  *
@@ -1173,11 +1344,11 @@ export declare interface Path2 {
1173
1344
  readonly dimension: 2;
1174
1345
  /** Whether traversal includes the last-to-first edge. */
1175
1346
  readonly closed: boolean;
1176
- /** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
1177
- toArray(): Path2Data;
1347
+ /** Returns complete deeply frozen path data, including dimension and closure. Repeated calls do not allocate. */
1348
+ toData(): Path2Data;
1178
1349
  /** Total sampled edge length in model units, including the closing edge when closed. */
1179
1350
  length(): number;
1180
- /** Axis-aligned bounds, or undefined for an empty path. */
1351
+ /** Immutable axis-aligned bounds, or undefined for an empty path. */
1181
1352
  bounds(): Bounds2 | undefined;
1182
1353
  /** Finds the nearest edge location; requires at least two vertices. */
1183
1354
  closestPoint(point: Vector2Input): PathLocation<Vector2>;
@@ -1191,19 +1362,29 @@ export declare interface Path2 {
1191
1362
 
1192
1363
  /**
1193
1364
  * Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization.
1365
+ *
1194
1366
  * Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated
1195
1367
  * seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed.
1196
1368
  * Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement
1197
1369
  * overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError.
1198
1370
  * A path input retains its closure. Limits bound construction only; resampling takes its own limits.
1371
+ *
1372
+ * Use `toData()` for a frozen record that restores coordinates, closure, and dimension together.
1199
1373
  */
1200
1374
  export declare function path2(input: Path2Input, options?: PathOptions): Path2;
1201
1375
 
1202
- /** XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. */
1203
- export declare type Path2Data = readonly Vector2Tuple[];
1376
+ /** Complete plain XY path representation, including topology and empty-path dimensional identity. */
1377
+ export declare interface Path2Data {
1378
+ /** Coordinate dimension, retained even when points is empty. */
1379
+ readonly dimension: 2;
1380
+ /** Frozen or caller-owned XY coordinates; closed paths omit a duplicated seam. */
1381
+ readonly points: readonly Vector2Data[];
1382
+ /** Whether traversal includes the last-to-first edge. */
1383
+ readonly closed: boolean;
1384
+ }
1204
1385
 
1205
- /** An immutable XY sampled path or a collection of XY tuples and fluent vectors. */
1206
- export declare type Path2Input = Path2 | readonly Vector2Input[];
1386
+ /** A matching path value, complete plain path data, or a collection of vectors. */
1387
+ export declare type Path2Input = Path2 | Path2Data | readonly Vector2Input[];
1207
1388
 
1208
1389
  /** Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. */
1209
1390
  export declare interface Path3 {
@@ -1211,11 +1392,11 @@ export declare interface Path3 {
1211
1392
  readonly dimension: 3;
1212
1393
  /** Whether traversal includes the last-to-first edge. */
1213
1394
  readonly closed: boolean;
1214
- /** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
1215
- toArray(): Path3Data;
1395
+ /** Returns complete deeply frozen path data, including dimension and closure. Repeated calls do not allocate. */
1396
+ toData(): Path3Data;
1216
1397
  /** Total sampled edge length in model units, including the closing edge when closed. */
1217
1398
  length(): number;
1218
- /** Axis-aligned bounds, or undefined for an empty path. */
1399
+ /** Immutable axis-aligned bounds, or undefined for an empty path. */
1219
1400
  bounds(): Bounds3 | undefined;
1220
1401
  /** Finds the nearest edge location; requires at least two vertices. */
1221
1402
  closestPoint(point: Vector3Input): PathLocation<Vector3>;
@@ -1230,16 +1411,25 @@ export declare interface Path3 {
1230
1411
  /**
1231
1412
  * Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam,
1232
1413
  * allocation and error rules as path2. Analytic curves must be sampled explicitly first.
1414
+ *
1415
+ * Use `toData()` for a frozen record that restores coordinates, closure, and dimension together.
1416
+ *
1417
+ * @see {@link path2} for shared construction rules.
1233
1418
  */
1234
1419
  export declare function path3(input: Path3Input, options?: PathOptions): Path3;
1235
1420
 
1236
- /**
1237
- * XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value.
1238
- */
1239
- export declare type Path3Data = readonly Vector3Tuple[];
1421
+ /** Complete plain XYZ path representation, including topology and empty-path dimensional identity. */
1422
+ export declare interface Path3Data {
1423
+ /** Coordinate dimension, retained even when points is empty. */
1424
+ readonly dimension: 3;
1425
+ /** Frozen or caller-owned XYZ coordinates; closed paths omit a duplicated seam. */
1426
+ readonly points: readonly Vector3Data[];
1427
+ /** Whether traversal includes the last-to-first edge. */
1428
+ readonly closed: boolean;
1429
+ }
1240
1430
 
1241
- /** An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. */
1242
- export declare type Path3Input = Path3 | readonly Vector3Input[];
1431
+ /** A matching path value, complete plain path data, or a collection of vectors. */
1432
+ export declare type Path3Input = Path3 | Path3Data | readonly Vector3Input[];
1243
1433
 
1244
1434
  /** Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. */
1245
1435
  export declare interface PathLocation<Point extends Vector2 | Vector3> {
@@ -1261,7 +1451,7 @@ export declare interface PathLocation<Point extends Vector2 | Vector3> {
1261
1451
  * @returns A finite guide vector that is not parallel to the local path tangent.
1262
1452
  */
1263
1453
  export declare type PathNormalGuide = (
1264
- point: Vector3Tuple,
1454
+ point: Vector3Data,
1265
1455
  index: number,
1266
1456
  ) => Vector3Input;
1267
1457
 
@@ -1341,6 +1531,7 @@ export declare interface PlaneOptions {
1341
1531
 
1342
1532
  /**
1343
1533
  * Fills one closed millimetre XY outline, explicit outer/hole topology, or compound contours.
1534
+ *
1344
1535
  * Closing edges are implicit. Compound contours use nonzero fill unless selected otherwise.
1345
1536
  * Explicit topology must be simple and disjoint; compound winding may resolve overlaps.
1346
1537
  *
@@ -1352,11 +1543,14 @@ export declare interface PlaneOptions {
1352
1543
  export declare function polygon(input: Path2Input | PolygonOptions): Section;
1353
1544
 
1354
1545
  /**
1355
- * One bounded two-dimensional polygon.
1546
+ * One filled two-dimensional polygon with an exterior and optional holes.
1356
1547
  *
1357
1548
  * `outer` is counter-clockwise and each hole is clockwise. Boundary arrays omit
1358
1549
  * their duplicated closing point. Holes must lie inside `outer` and must not
1359
1550
  * intersect each other or the exterior.
1551
+ *
1552
+ * @see {@link Contour}
1553
+ * @see {@link RegionData}
1360
1554
  */
1361
1555
  export declare interface PolygonData {
1362
1556
  /** Clockwise interior boundaries, each omitting its duplicated closing point. */
@@ -1404,17 +1598,41 @@ export declare type PolygonOptions =
1404
1598
  readonly fillRule?: never;
1405
1599
  };
1406
1600
 
1407
- /** Internal-thread facts using host resolution and limits; requires active synchronous model execution. */
1601
+ /**
1602
+ * Checks compensated cutter dimensions and conservative mesh estimates against host output limits.
1603
+ *
1604
+ * Requires active synchronous model execution and uses its resolution and limits. Estimates include
1605
+ * the one-pitch extension beyond each requested face, without mesh buffers or native objects.
1606
+ * Mesh validity, native construction, and aggregate output limits are checked later.
1607
+ *
1608
+ * @see {@link internalThreadCutter}
1609
+ */
1408
1610
  export declare function preflightInternalThreadCutter(
1409
1611
  options: InternalThreadCutterOptions,
1410
1612
  ): HelicalThreadSolidMeshPreflight;
1411
1613
 
1412
- /** Nut/cutter facts using host resolution and limits; requires active synchronous model execution. */
1614
+ /**
1615
+ * Checks nut dimensions, chamfers, end-face wall, and the extended compensated cutter's allocation plan.
1616
+ *
1617
+ * Requires active synchronous model execution and uses its resolution and limits, without mesh
1618
+ * buffers or native objects. Returned thread estimates cover the cutter, excluding the body and
1619
+ * Boolean result. Mesh validity, native construction, and aggregate output limits are checked later.
1620
+ *
1621
+ * @see {@link threadedNut}
1622
+ */
1413
1623
  export declare function preflightThreadedNut(
1414
1624
  options: ThreadedNutOptions,
1415
1625
  ): ThreadedNutPreflight;
1416
1626
 
1417
- /** External-thread facts using host resolution and limits; requires active synchronous model execution. */
1627
+ /**
1628
+ * Checks compensated rod dimensions and conservative mesh estimates against host output limits.
1629
+ *
1630
+ * Requires active synchronous model execution and uses its resolution and limits. Returns selected
1631
+ * sampling and conservative row/triangle estimates without mesh buffers or native objects.
1632
+ * Mesh validity, native construction, and aggregate output limits are checked later.
1633
+ *
1634
+ * @see {@link threadedRod}
1635
+ */
1418
1636
  export declare function preflightThreadedRod(
1419
1637
  options: ThreadedRodOptions,
1420
1638
  ): HelicalThreadSolidMeshPreflight;
@@ -1454,7 +1672,13 @@ export declare interface PrintableThreadFitPolicy {
1454
1672
  readonly maleRadialInset: number;
1455
1673
  }
1456
1674
 
1457
- /** An explicit component/contour/span topology, before shared family sampling. */
1675
+ /**
1676
+ * An explicit component/contour/span topology, before shared family sampling with matchProfiles.
1677
+ * Component, contour and span identities establish correspondence across a loft or sweep family.
1678
+ *
1679
+ * @see {@link CorrespondingProfile}
1680
+ * @see {@link matchProfiles}
1681
+ */
1458
1682
  export declare interface Profile {
1459
1683
  /** Ordered components with explicit contour identities. */
1460
1684
  readonly components: readonly ProfileComponent2[];
@@ -1470,7 +1694,13 @@ export declare interface ProfileComponent2 {
1470
1694
  readonly holes: readonly ProfileContour2[];
1471
1695
  }
1472
1696
 
1473
- /** Ordered, closed spans. Outer winding is CCW and hole winding is CW. */
1697
+ /**
1698
+ * An identified closed boundary of curve spans, before shared family sampling.
1699
+ * Outer winding is CCW and hole winding is CW. matchProfiles retains span identities in sampled contours.
1700
+ *
1701
+ * @see {@link Contour} for sampled point coordinates.
1702
+ * @see {@link CorrespondingContour} for sampled coordinates with correspondence metadata.
1703
+ */
1474
1704
  export declare interface ProfileContour2 {
1475
1705
  /** Stable canonical lowercase identity; unique within the containing topology or output. */
1476
1706
  readonly id: string;
@@ -1487,7 +1717,7 @@ export declare interface ProfiledEdgeTreatment {
1487
1717
  * First coordinates decrease and second coordinates increase. Cylinder/extrusion ends use
1488
1718
  * cap inset first, side setback second; planar corners use incoming then outgoing edges.
1489
1719
  */
1490
- readonly profile: readonly Vector2Tuple[];
1720
+ readonly profile: readonly Vector2Data[];
1491
1721
  }
1492
1722
 
1493
1723
  /** An identified line, circular arc, or cubic Bézier between corresponding landmarks. */
@@ -1503,15 +1733,15 @@ export declare type ProfileSpan2 = {
1503
1733
  /** Selects a straight span. */
1504
1734
  readonly kind: "line";
1505
1735
  /** Start point in millimetres. */
1506
- readonly start: Vector2Tuple;
1736
+ readonly start: Vector2Data;
1507
1737
  /** End point in millimetres. */
1508
- readonly end: Vector2Tuple;
1738
+ readonly end: Vector2Data;
1509
1739
  }
1510
1740
  | {
1511
1741
  /** Selects the geometric curve or span family. */
1512
1742
  readonly kind: "arc";
1513
1743
  /** Center point in millimetres. */
1514
- readonly center: Vector2Tuple;
1744
+ readonly center: Vector2Data;
1515
1745
  /** Circular radius in millimetres. */
1516
1746
  readonly radius: number;
1517
1747
  /** Initial counterclockwise angle in degrees. */
@@ -1523,13 +1753,13 @@ export declare type ProfileSpan2 = {
1523
1753
  /** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
1524
1754
  readonly kind: "cubic";
1525
1755
  /** Start point in millimetres. */
1526
- readonly start: Vector2Tuple;
1756
+ readonly start: Vector2Data;
1527
1757
  /** First control point in millimetres. */
1528
- readonly control1: Vector2Tuple;
1758
+ readonly control1: Vector2Data;
1529
1759
  /** Second control point in millimetres. */
1530
- readonly control2: Vector2Tuple;
1760
+ readonly control2: Vector2Data;
1531
1761
  /** End point in millimetres. */
1532
- readonly end: Vector2Tuple;
1762
+ readonly end: Vector2Data;
1533
1763
  }
1534
1764
  );
1535
1765
 
@@ -1589,6 +1819,9 @@ export declare interface RadialSizingOptions {
1589
1819
  /**
1590
1820
  * Filled rectangular section with uniform or independently treated corners.
1591
1821
  *
1822
+ * Use [rectangleContour](/docs/reference/geometry/rectangleContour) for sampled boundary coordinates,
1823
+ * or [rectangleProfile](/docs/reference/geometry/rectangleProfile) to retain identified loft landmarks.
1824
+ *
1592
1825
  * @example Round the corners
1593
1826
  * ```ts
1594
1827
  * rectangle({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
@@ -1601,7 +1834,7 @@ export declare function rectangle(options: RectangleOptions): Section;
1601
1834
  */
1602
1835
  export declare interface RectangleContourOptions {
1603
1836
  /** Positive uniform size or explicit XY extents in millimetres. */
1604
- readonly size: number | Vector2Tuple;
1837
+ readonly size: number | Vector2Data;
1605
1838
  /** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
1606
1839
  readonly center?: boolean;
1607
1840
  /** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
@@ -1632,7 +1865,12 @@ export declare type RectangleCornerTreatments = readonly [
1632
1865
  export declare interface RectangleOptions
1633
1866
  extends RectangleContourOptions, PrimitiveAttachment {}
1634
1867
 
1635
- /** A two-dimensional region represented by disjoint filled polygons. */
1868
+ /**
1869
+ * A two-dimensional region represented by disjoint filled polygons.
1870
+ * Each PolygonData owns one exterior and its holes; an empty region contains no material.
1871
+ *
1872
+ * @see {@link PolygonData}
1873
+ */
1636
1874
  export declare type RegionData = readonly PolygonData[];
1637
1875
 
1638
1876
  /**
@@ -1705,7 +1943,9 @@ export declare interface RoundedEdgeTreatment extends CircularPrimitiveOptions {
1705
1943
  }
1706
1944
 
1707
1945
  /**
1708
- * Immutable deferred filled XY section recipe. Construction and composition require no engine.
1946
+ * Immutable deferred filled XY section recipe.
1947
+ *
1948
+ * Construction and composition require no engine.
1709
1949
  * Ordinary recipes may be reused across sessions regardless of where constructed.
1710
1950
  * Observed components and recipes using them can only be evaluated in their originating session.
1711
1951
  * Methods leave the source unchanged; observations require a synchronous model execution.
@@ -1812,9 +2052,9 @@ export declare interface SectionInspection {
1812
2052
  /** Number of extracted outer and hole contours. */
1813
2053
  readonly contourCount: number;
1814
2054
  /** Inclusive maximum coordinates in millimetres. */
1815
- readonly max: Vector2Tuple;
2055
+ readonly max: Vector2Data;
1816
2056
  /** Inclusive minimum coordinates in millimetres. */
1817
- readonly min: Vector2Tuple;
2057
+ readonly min: Vector2Data;
1818
2058
  /** Number of disconnected filled section components. */
1819
2059
  readonly componentCount: number;
1820
2060
  /** Number of native section vertices. */
@@ -1851,7 +2091,9 @@ export declare interface SmoothEdgeTreatment {
1851
2091
  }
1852
2092
 
1853
2093
  /**
1854
- * Immutable deferred solid recipe. Construction and composition require no engine.
2094
+ * Immutable deferred solid recipe.
2095
+ *
2096
+ * Construction and composition require no engine.
1855
2097
  * Ordinary recipes may be reused across sessions regardless of where constructed.
1856
2098
  * Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults.
1857
2099
  * Observed components and recipes using them can only be evaluated in their originating session.
@@ -1952,9 +2194,9 @@ export declare interface SolidInspection {
1952
2194
  /** Whether this native solid contains no material. */
1953
2195
  readonly isEmpty: boolean;
1954
2196
  /** Inclusive maximum coordinates in millimetres. */
1955
- readonly max: Vector3Tuple;
2197
+ readonly max: Vector3Data;
1956
2198
  /** Inclusive minimum coordinates in millimetres. */
1957
- readonly min: Vector3Tuple;
2199
+ readonly min: Vector3Data;
1958
2200
  /** Number of disconnected material components, each retaining enclosed cavities. */
1959
2201
  readonly componentCount: number;
1960
2202
  /** Enclosed native solid volume in cubic millimetres. */
@@ -1972,9 +2214,9 @@ export declare interface SolidSegmentHit {
1972
2214
  /** Distance from the segment origin in millimetres. */
1973
2215
  readonly distance: number;
1974
2216
  /** Intersection position in millimetres. */
1975
- readonly position: Vector3Tuple;
2217
+ readonly position: Vector3Data;
1976
2218
  /** Outward unit surface normal at the intersection. */
1977
- readonly normal: Vector3Tuple;
2219
+ readonly normal: Vector3Data;
1978
2220
  }
1979
2221
 
1980
2222
  /**
@@ -2339,7 +2581,7 @@ export declare interface ThreadedNutOptions extends Omit<
2339
2581
  readonly width: number;
2340
2582
  }
2341
2583
 
2342
- /** Allocation-free body, cutter, and end-face facts resolved for a threaded nut. */
2584
+ /** Resolved body and end-face dimensions plus conservative allocation estimates for the thread cutter. */
2343
2585
  export declare interface ThreadedNutPreflight {
2344
2586
  /** Polygon segment count used by the nut body. */
2345
2587
  readonly bodySegments: number;
@@ -2351,7 +2593,7 @@ export declare interface ThreadedNutPreflight {
2351
2593
  readonly minimumBodyFaceInradius: number;
2352
2594
  /** Smallest radial wall left between the body and cutter at either requested face. */
2353
2595
  readonly minimumFaceWall: number;
2354
- /** Conservative allocation facts for the exact extended internal-thread cutter mesh. */
2596
+ /** Conservative allocation estimates for the extended cutter; excludes the body and Boolean result. */
2355
2597
  readonly thread: HelicalThreadSolidMeshPreflight;
2356
2598
  /** Start-aligned circular facet count used by the compensated thread cutter. */
2357
2599
  readonly threadCircularSegments: number;
@@ -2453,7 +2695,7 @@ export declare interface ThreadProfile {
2453
2695
  /** Adjacent axial thread spacing in millimetres. */
2454
2696
  readonly pitch: number;
2455
2697
  /** Immutable open `[axial, radial]` path spanning one pitch. */
2456
- readonly points: readonly Vector2Tuple[];
2698
+ readonly points: readonly Vector2Data[];
2457
2699
  /** Axial width of the flat at the minor envelope. */
2458
2700
  readonly rootFlatWidth: number;
2459
2701
  }
@@ -2530,32 +2772,33 @@ export declare interface Transform2 {
2530
2772
  /** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
2531
2773
  applyNormal(normal: Vector2Input): Vector2;
2532
2774
  /** Returns the frozen canonical row-major 3x3 matrix for interchange. */
2533
- toMatrix(): Transform2Matrix;
2775
+ toData(): Transform2Data;
2534
2776
  /** Embeds this placement in XYZ, leaving Z unchanged, for solids and 3D paths. */
2535
2777
  to3D(): Transform3;
2536
2778
  }
2537
2779
 
2538
2780
  /**
2539
- * Creates an immutable XY transform, identity by default. Matrices are copied and validated.
2781
+ * Creates an immutable XY transform, identity by default.
2782
+ *
2783
+ * Values and data are copied and validated.
2540
2784
  * Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ.
2541
2785
  * Zero scales and singular matrices throw GeometryError; negative scales reflect.
2542
2786
  *
2787
+ * Use `toData()` for frozen matrix interchange.
2788
+ *
2543
2789
  * @example
2544
2790
  * ```ts
2545
2791
  * const placement = transform2().rotate(90).translate([10, 0]);
2546
- * placement.applyPoint([1, 0]).toArray(); // approximately [10, 1]
2792
+ * placement.applyPoint([1, 0]).toData(); // approximately [10, 1]
2547
2793
  * ```
2548
2794
  */
2549
- export declare function transform2(matrix?: Transform2Matrix): Transform2;
2550
-
2551
- /** An immutable XY transform or its canonical row-major matrix for interchange. */
2552
- export declare type Transform2Input = Transform2 | Transform2Matrix;
2795
+ export declare function transform2(input?: Transform2Input): Transform2;
2553
2796
 
2554
2797
  /**
2555
2798
  * A row-major affine 3x3 XY matrix applied to column vectors.
2556
2799
  * Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`.
2557
2800
  */
2558
- export declare type Transform2Matrix = readonly [
2801
+ export declare type Transform2Data = readonly [
2559
2802
  m00: number,
2560
2803
  m01: number,
2561
2804
  m02: number,
@@ -2567,6 +2810,9 @@ export declare type Transform2Matrix = readonly [
2567
2810
  m22: number,
2568
2811
  ];
2569
2812
 
2813
+ /** An immutable XY transform or its canonical row-major matrix for interchange. */
2814
+ export declare type Transform2Input = Transform2 | Transform2Data;
2815
+
2570
2816
  /** Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. */
2571
2817
  export declare interface Transform3 {
2572
2818
  /** Applies a translation in model units after this placement. */
@@ -2592,27 +2838,29 @@ export declare interface Transform3 {
2592
2838
  /** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
2593
2839
  applyNormal(normal: Vector3Input): Vector3;
2594
2840
  /** Returns the frozen canonical row-major 4x4 matrix for interchange. */
2595
- toMatrix(): Transform3Matrix;
2841
+ toData(): Transform3Data;
2596
2842
  /** Restricts to XY; throws GeometryError for a plane change or singular XY restriction. */
2597
2843
  to2D(): Transform2;
2598
2844
  }
2599
2845
 
2600
2846
  /**
2601
- * Creates an immutable XYZ transform, identity by default. Matrices are copied and validated.
2847
+ * Creates an immutable XYZ transform, identity by default.
2848
+ *
2849
+ * Values and data are copied and validated.
2602
2850
  * Calls apply in written order; rotations use degrees and pivots use current world coordinates.
2603
2851
  * Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError.
2604
2852
  * Use frameTransform3(frame) as the input for existing orthonormal frame placement.
2605
2853
  *
2854
+ * Use `toData()` for frozen matrix interchange.
2855
+ * [composeTransform3](/docs/reference/geometry/composeTransform3) takes matrices in after, before order.
2856
+ *
2606
2857
  * @example
2607
2858
  * ```ts
2608
2859
  * const placement = transform3().rotate([0, 0, 90]).translate([10, 0, 0]);
2609
- * placement.applyPoint([1, 0, 0]).toArray(); // approximately [10, 1, 0]
2860
+ * placement.applyPoint([1, 0, 0]).toData(); // approximately [10, 1, 0]
2610
2861
  * ```
2611
2862
  */
2612
- export declare function transform3(matrix?: Transform3Matrix): Transform3;
2613
-
2614
- /** An immutable XYZ transform or its canonical row-major matrix for interchange. */
2615
- export declare type Transform3Input = Transform3 | Transform3Matrix;
2863
+ export declare function transform3(input?: Transform3Input): Transform3;
2616
2864
 
2617
2865
  /**
2618
2866
  * A row-major affine 4x4 matrix applied to column vectors.
@@ -2620,7 +2868,7 @@ export declare type Transform3Input = Transform3 | Transform3Matrix;
2620
2868
  * Translation occupies indices 3, 7, and 11. The final row must be
2621
2869
  * `[0, 0, 0, 1]` within the active geometry tolerance.
2622
2870
  */
2623
- export declare type Transform3Matrix = readonly [
2871
+ export declare type Transform3Data = readonly [
2624
2872
  m00: number,
2625
2873
  m01: number,
2626
2874
  m02: number,
@@ -2639,6 +2887,9 @@ export declare type Transform3Matrix = readonly [
2639
2887
  m33: number,
2640
2888
  ];
2641
2889
 
2890
+ /** An immutable XYZ transform or its canonical row-major matrix for interchange. */
2891
+ export declare type Transform3Input = Transform3 | Transform3Data;
2892
+
2642
2893
  /** Trapezoidal thread profile with a configurable included angle. */
2643
2894
  declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
2644
2895
  /** Selects the trapezoidal profile family. */
@@ -2681,7 +2932,7 @@ export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
2681
2932
  */
2682
2933
  export declare interface TriangleMeshMeasurements {
2683
2934
  /** Axis-aligned bounds. */
2684
- readonly bounds: Bounds3;
2935
+ readonly bounds: Bounds3Data;
2685
2936
  /** Signed enclosed volume; positive values correspond to outward winding. */
2686
2937
  readonly signedVolume: number;
2687
2938
  /** Sum of all triangle areas in squared model units. */
@@ -2778,22 +3029,26 @@ export declare interface Vector2 {
2778
3029
  /** Returns Euclidean distance to another vector in the same coordinate units. */
2779
3030
  distance(other: Vector2Input): number;
2780
3031
  /** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
2781
- toArray(): Vector2Tuple;
3032
+ toData(): Vector2Data;
2782
3033
  }
2783
3034
 
2784
3035
  /**
2785
3036
  * Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates.
3037
+ *
2786
3038
  * Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
2787
3039
  * and overflow throw `NON_FINITE_VALUE` GeometryError.
2788
3040
  * Use transform2().applyDirection(value) for rotations and nonuniform scaling.
3041
+ *
3042
+ * Use `toData()` for frozen tuple interchange, or
3043
+ * [normalize2](/docs/reference/geometry/normalize2) for tuple-based normalization in numerical loops.
2789
3044
  */
2790
3045
  export declare function vector2(input: Vector2Input): Vector2;
2791
3046
 
2792
- /** An XY tuple or immutable fluent vector accepted by vector operations. */
2793
- export declare type Vector2Input = Vector2Tuple | Vector2;
2794
-
2795
3047
  /** A two-dimensional Cartesian vector or point. */
2796
- export declare type Vector2Tuple = readonly [x: number, y: number];
3048
+ export declare type Vector2Data = readonly [x: number, y: number];
3049
+
3050
+ /** An XY tuple or immutable fluent vector accepted by vector operations. */
3051
+ export declare type Vector2Input = Vector2Data | Vector2;
2797
3052
 
2798
3053
  /** Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. */
2799
3054
  export declare interface Vector3 {
@@ -2822,15 +3077,19 @@ export declare interface Vector3 {
2822
3077
  /** Returns Euclidean distance to another vector in the same coordinate units. */
2823
3078
  distance(other: Vector3Input): number;
2824
3079
  /** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
2825
- toArray(): Vector3Tuple;
3080
+ toData(): Vector3Data;
2826
3081
  }
2827
3082
 
2828
3083
  /**
2829
3084
  * Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates.
3085
+ *
2830
3086
  * Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
2831
3087
  * and overflow throw `NON_FINITE_VALUE` GeometryError.
2832
3088
  * Use transform3().applyDirection(value) for rotations and nonuniform scaling.
2833
3089
  *
3090
+ * Use `toData()` for frozen tuple interchange, or
3091
+ * [normalize3](/docs/reference/geometry/normalize3) for tuple-based normalization in numerical loops.
3092
+ *
2834
3093
  * @example
2835
3094
  * ```ts
2836
3095
  * const direction = vector3([1, 2, 3]).add([4, 0, 0]).normalize().scale(10);
@@ -2839,11 +3098,11 @@ export declare interface Vector3 {
2839
3098
  */
2840
3099
  export declare function vector3(input: Vector3Input): Vector3;
2841
3100
 
2842
- /** An XYZ tuple or immutable fluent vector accepted by vector operations. */
2843
- export declare type Vector3Input = Vector3Tuple | Vector3;
2844
-
2845
3101
  /** A three-dimensional Cartesian vector or point. */
2846
- export declare type Vector3Tuple = readonly [x: number, y: number, z: number];
3102
+ export declare type Vector3Data = readonly [x: number, y: number, z: number];
3103
+
3104
+ /** An XYZ tuple or immutable fluent vector accepted by vector operations. */
3105
+ export declare type Vector3Input = Vector3Data | Vector3;
2847
3106
 
2848
3107
  /**
2849
3108
  * Immutable vector layout with no browser, font parser, or kernel ownership.
@@ -2858,7 +3117,7 @@ export declare interface VectorTextLayout {
2858
3117
  /** Text measurements from the same immutable layout that supplies geometry and SVG outlines. */
2859
3118
  export declare interface VectorTextMetrics {
2860
3119
  /** Visible curve bounds after alignment, or null when the text has no ink. */
2861
- readonly bounds: Bounds2 | null;
3120
+ readonly bounds: Bounds2Data | null;
2862
3121
  /** Unaligned logical advance and negative baseline displacement in mm; arcs retain [arc length, 0]. */
2863
3122
  readonly advance: readonly [number, number];
2864
3123
  /** Maximum logical line advance in millimetres, including spaces; arc length on circular baselines. */