@metamesh/modeling 0.15.0 → 0.17.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 (719) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +54 -6
  3. package/dist/api/engine.d.ts +4 -3
  4. package/dist/api/geometry.d.ts +608 -266
  5. package/dist/api/index.d.ts +516 -110
  6. package/dist/api/text.d.ts +6 -6
  7. package/dist/docs/guides/concepts.md +298 -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 +68 -36
  13. package/dist/docs/guides/standalone-model.md +42 -0
  14. package/dist/docs/manifest.json +1034 -296
  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/Bounds2Options.md +72 -0
  43. package/dist/docs/reference/geometry/Bounds3-type.md +127 -0
  44. package/dist/docs/reference/geometry/Bounds3Data.md +45 -0
  45. package/dist/docs/reference/geometry/Bounds3Input.md +21 -0
  46. package/dist/docs/reference/geometry/Bounds3Options.md +72 -0
  47. package/dist/docs/reference/geometry/BoundsFit2.md +6 -5
  48. package/dist/docs/reference/geometry/BoundsFit3.md +6 -5
  49. package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -1
  50. package/dist/docs/reference/geometry/BoxAnchorFace.md +2 -1
  51. package/dist/docs/reference/geometry/BoxAnchorOptions.md +5 -4
  52. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  53. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  54. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  55. package/dist/docs/reference/geometry/BoxOptions.md +3 -3
  56. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +8 -1
  57. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +5 -1
  58. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  59. package/dist/docs/reference/geometry/CircleContourOptions.md +5 -1
  60. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
  61. package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
  62. package/dist/docs/reference/geometry/CircularSampling.md +41 -0
  63. package/dist/docs/reference/geometry/CircularSamplingOptions.md +14 -0
  64. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +6 -1
  65. package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -1
  66. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +6 -1
  67. package/dist/docs/reference/geometry/Contour.md +10 -4
  68. package/dist/docs/reference/geometry/ContourCurve.md +5 -1
  69. package/dist/docs/reference/geometry/ContourPoint.md +6 -1
  70. package/dist/docs/reference/geometry/ContourSegment.md +5 -1
  71. package/dist/docs/reference/geometry/CorrespondingComponent.md +5 -1
  72. package/dist/docs/reference/geometry/CorrespondingContour.md +5 -1
  73. package/dist/docs/reference/geometry/CorrespondingProfile.md +5 -1
  74. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +5 -1
  75. package/dist/docs/reference/geometry/CubicBezierCurve2.md +10 -6
  76. package/dist/docs/reference/geometry/CubicBezierCurve3.md +10 -6
  77. package/dist/docs/reference/geometry/Curve2.md +5 -1
  78. package/dist/docs/reference/geometry/Curve3.md +5 -1
  79. package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -1
  80. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +7 -3
  81. package/dist/docs/reference/geometry/CylinderAnchorFace.md +2 -1
  82. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -3
  83. package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
  84. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +6 -1
  85. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -1
  86. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +5 -1
  87. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +5 -1
  88. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +5 -1
  89. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +6 -1
  90. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +5 -1
  91. package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -1
  92. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  93. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  94. package/dist/docs/reference/geometry/EllipseContourOptions.md +7 -3
  95. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  96. package/dist/docs/reference/geometry/ExtrudeOptions.md +5 -1
  97. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -1
  98. package/dist/docs/reference/geometry/FittedTextLayout.md +7 -3
  99. package/dist/docs/reference/geometry/Frame3.md +10 -6
  100. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  101. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  102. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  103. package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
  104. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +5 -1
  105. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  106. package/dist/docs/reference/geometry/GridPatternOptions.md +4 -4
  107. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +5 -1
  108. package/dist/docs/reference/geometry/HeightfieldOptions.md +9 -5
  109. package/dist/docs/reference/geometry/HeightfieldPreflight.md +9 -4
  110. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -1
  111. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +5 -1
  112. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +7 -2
  113. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +4 -3
  114. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +5 -1
  115. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +82 -0
  116. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +148 -0
  117. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +46 -0
  118. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +51 -0
  119. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +22 -0
  120. package/dist/docs/reference/geometry/LineCurve2.md +8 -4
  121. package/dist/docs/reference/geometry/LineCurve3.md +8 -4
  122. package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
  123. package/dist/docs/reference/geometry/LoftCorrespondence.md +6 -1
  124. package/dist/docs/reference/geometry/LoftMeshStation.md +5 -1
  125. package/dist/docs/reference/geometry/LoftOptions.md +5 -1
  126. package/dist/docs/reference/geometry/LoftPlacement.md +5 -1
  127. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +5 -1
  128. package/dist/docs/reference/geometry/MatchProfilesOptions.md +5 -1
  129. package/dist/docs/reference/geometry/MetricFastenerSize.md +9 -2
  130. package/dist/docs/reference/geometry/MetricFastenerStandard.md +5 -1
  131. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +6 -1
  132. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +6 -1
  133. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  134. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +5 -1
  135. package/dist/docs/reference/geometry/Path2-type.md +12 -8
  136. package/dist/docs/reference/geometry/Path2Data.md +40 -4
  137. package/dist/docs/reference/geometry/Path2Input.md +8 -3
  138. package/dist/docs/reference/geometry/Path3-type.md +12 -8
  139. package/dist/docs/reference/geometry/Path3Data.md +40 -4
  140. package/dist/docs/reference/geometry/Path3Input.md +8 -3
  141. package/dist/docs/reference/geometry/PathFrame.md +9 -5
  142. package/dist/docs/reference/geometry/PathLocation.md +5 -1
  143. package/dist/docs/reference/geometry/PathNormalGuide.md +8 -4
  144. package/dist/docs/reference/geometry/PathOptions.md +5 -1
  145. package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
  146. package/dist/docs/reference/geometry/PathPlacement.md +8 -4
  147. package/dist/docs/reference/geometry/PathResamplingOptions.md +5 -1
  148. package/dist/docs/reference/geometry/Pivot2Options.md +2 -1
  149. package/dist/docs/reference/geometry/Pivot3Options.md +2 -1
  150. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +8 -1
  151. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +5 -1
  152. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +5 -1
  153. package/dist/docs/reference/geometry/PlanarPatchQuality.md +7 -3
  154. package/dist/docs/reference/geometry/PolygonData.md +7 -2
  155. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +5 -1
  156. package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -1
  157. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
  158. package/dist/docs/reference/geometry/PrintableThreadFit.md +8 -1
  159. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +6 -1
  160. package/dist/docs/reference/geometry/Profile.md +8 -2
  161. package/dist/docs/reference/geometry/ProfileComponent2.md +5 -1
  162. package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
  163. package/dist/docs/reference/geometry/ProfileSpan2.md +7 -3
  164. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
  165. package/dist/docs/reference/geometry/RackPitchDimensions.md +6 -1
  166. package/dist/docs/reference/geometry/RackPitchSpec.md +6 -1
  167. package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
  168. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  169. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  170. package/dist/docs/reference/geometry/RectangleContourOptions.md +7 -3
  171. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +5 -1
  172. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +5 -1
  173. package/dist/docs/reference/geometry/RectangleProfileOptions.md +7 -3
  174. package/dist/docs/reference/geometry/RegionData.md +6 -2
  175. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +5 -1
  176. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  177. package/dist/docs/reference/geometry/RevolveOptions.md +5 -1
  178. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  179. package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -1
  180. package/dist/docs/reference/geometry/SampleContourOptions.md +5 -1
  181. package/dist/docs/reference/geometry/SampleHelixOptions.md +5 -1
  182. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +5 -1
  183. package/dist/docs/reference/geometry/SampledCurve2.md +8 -4
  184. package/dist/docs/reference/geometry/SampledCurve3.md +8 -4
  185. package/dist/docs/reference/geometry/SampledThreadHelices.md +7 -3
  186. package/dist/docs/reference/geometry/SideProfileCurve.md +5 -1
  187. package/dist/docs/reference/geometry/SideProfilePoint.md +6 -1
  188. package/dist/docs/reference/geometry/SideProfileSegment.md +5 -1
  189. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  190. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +5 -1
  191. package/dist/docs/reference/geometry/SphereOptions.md +1 -1
  192. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +5 -1
  193. package/dist/docs/reference/geometry/StrokeCap.md +8 -1
  194. package/dist/docs/reference/geometry/StrokeJoin.md +8 -1
  195. package/dist/docs/reference/geometry/StrokeOptions.md +5 -1
  196. package/dist/docs/reference/geometry/SvgImportOptions.md +20 -1
  197. package/dist/docs/reference/geometry/SvgRegionPreflight.md +21 -2
  198. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +7 -3
  199. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +6 -1
  200. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +6 -1
  201. package/dist/docs/reference/geometry/SweepOptions.md +5 -1
  202. package/dist/docs/reference/geometry/SweepOrientation.md +5 -1
  203. package/dist/docs/reference/geometry/ThreadBevelOptions.md +5 -1
  204. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -1
  205. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +5 -1
  206. package/dist/docs/reference/geometry/ThreadEndStyle.md +8 -1
  207. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +5 -1
  208. package/dist/docs/reference/geometry/ThreadHandedness.md +8 -1
  209. package/dist/docs/reference/geometry/ThreadHelixOptions.md +5 -1
  210. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +8 -1
  211. package/dist/docs/reference/geometry/ThreadLeadInShape.md +8 -1
  212. package/dist/docs/reference/geometry/ThreadProfile-type.md +7 -3
  213. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +5 -1
  214. package/dist/docs/reference/geometry/ThreadProfileSpec.md +5 -1
  215. package/dist/docs/reference/geometry/ThreadRole.md +8 -1
  216. package/dist/docs/reference/geometry/ThreadedNutBevel.md +8 -1
  217. package/dist/docs/reference/geometry/ThreadedNutOptions.md +5 -1
  218. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +7 -3
  219. package/dist/docs/reference/geometry/ThreadedNutShape.md +8 -1
  220. package/dist/docs/reference/geometry/ThreadedRodOptions.md +5 -1
  221. package/dist/docs/reference/geometry/TorusOptions.md +1 -1
  222. package/dist/docs/reference/geometry/Transform2-type.md +6 -5
  223. package/dist/docs/reference/geometry/Transform2Data.md +15 -0
  224. package/dist/docs/reference/geometry/Transform2Input.md +4 -3
  225. package/dist/docs/reference/geometry/Transform3-type.md +6 -5
  226. package/dist/docs/reference/geometry/Transform3Data.md +18 -0
  227. package/dist/docs/reference/geometry/Transform3Input.md +4 -3
  228. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -1
  229. package/dist/docs/reference/geometry/TriangleMesh.md +6 -1
  230. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +7 -3
  231. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +5 -1
  232. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +7 -3
  233. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +5 -1
  234. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +5 -1
  235. package/dist/docs/reference/geometry/TriangleMeshSignature.md +7 -3
  236. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +6 -1
  237. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +6 -1
  238. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +5 -1
  239. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +5 -1
  240. package/dist/docs/reference/geometry/TubeOptions.md +1 -1
  241. package/dist/docs/reference/geometry/Vector2-type.md +6 -5
  242. package/dist/docs/reference/geometry/Vector2Data.md +15 -0
  243. package/dist/docs/reference/geometry/Vector2Input.md +4 -3
  244. package/dist/docs/reference/geometry/Vector3-type.md +6 -5
  245. package/dist/docs/reference/geometry/Vector3Data.md +15 -0
  246. package/dist/docs/reference/geometry/Vector3Input.md +4 -3
  247. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +6 -1
  248. package/dist/docs/reference/geometry/VectorTextLayout.md +5 -1
  249. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +7 -3
  250. package/dist/docs/reference/geometry/VectorTextMetrics.md +7 -3
  251. package/dist/docs/reference/geometry/VectorTextOptions.md +5 -1
  252. package/dist/docs/reference/geometry/add2.md +7 -6
  253. package/dist/docs/reference/geometry/add3.md +7 -6
  254. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +5 -1
  255. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +5 -1
  256. package/dist/docs/reference/geometry/anchor3.md +2 -1
  257. package/dist/docs/reference/geometry/anchorFrame3.md +5 -1
  258. package/dist/docs/reference/geometry/applyTransformDirection3.md +8 -7
  259. package/dist/docs/reference/geometry/applyTransformPoint3.md +8 -7
  260. package/dist/docs/reference/geometry/attachmentTransform3.md +5 -4
  261. package/dist/docs/reference/geometry/bounds2.md +39 -0
  262. package/dist/docs/reference/geometry/bounds3.md +39 -0
  263. package/dist/docs/reference/geometry/boundsCenter.md +12 -11
  264. package/dist/docs/reference/geometry/boundsSize.md +12 -11
  265. package/dist/docs/reference/geometry/boxAnchor3.md +4 -3
  266. package/dist/docs/reference/geometry/categories/bounds-layout.md +25 -9
  267. package/dist/docs/reference/geometry/categories/curves-paths.md +21 -9
  268. package/dist/docs/reference/geometry/categories/mechanical.md +22 -10
  269. package/dist/docs/reference/geometry/categories/meshes.md +16 -7
  270. package/dist/docs/reference/geometry/categories/pattern-placement.md +6 -4
  271. package/dist/docs/reference/geometry/categories/primitive-options.md +8 -2
  272. package/dist/docs/reference/geometry/categories/profiles-regions.md +21 -12
  273. package/dist/docs/reference/geometry/categories/resolution-errors.md +8 -3
  274. package/dist/docs/reference/geometry/categories/transforms-math.md +21 -12
  275. package/dist/docs/reference/geometry/categories/vector-import.md +11 -5
  276. package/dist/docs/reference/geometry/circleContour.md +5 -1
  277. package/dist/docs/reference/geometry/closeToAxis.md +14 -5
  278. package/dist/docs/reference/geometry/compensateThreadDiameters.md +5 -1
  279. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -1
  280. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -1
  281. package/dist/docs/reference/geometry/composeTransform3.md +7 -6
  282. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -1
  283. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +11 -2
  284. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +13 -5
  285. package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +5 -1
  286. package/dist/docs/reference/geometry/contourContainsPoint.md +8 -4
  287. package/dist/docs/reference/geometry/cross2.md +6 -5
  288. package/dist/docs/reference/geometry/cross3.md +7 -6
  289. package/dist/docs/reference/geometry/cylinderAnchor3.md +3 -2
  290. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +5 -1
  291. package/dist/docs/reference/geometry/distance2.md +6 -5
  292. package/dist/docs/reference/geometry/distance3.md +6 -5
  293. package/dist/docs/reference/geometry/distributeAlongPath.md +5 -1
  294. package/dist/docs/reference/geometry/dot2.md +6 -5
  295. package/dist/docs/reference/geometry/dot3.md +6 -5
  296. package/dist/docs/reference/geometry/ellipseContour.md +5 -1
  297. package/dist/docs/reference/geometry/eulerTransform3.md +7 -6
  298. package/dist/docs/reference/geometry/extrudeMesh.md +5 -1
  299. package/dist/docs/reference/geometry/fitBounds.md +10 -9
  300. package/dist/docs/reference/geometry/fitTextLayout.md +13 -5
  301. package/dist/docs/reference/geometry/frameTransform3.md +5 -4
  302. package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +5 -1
  303. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +5 -1
  304. package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
  305. package/dist/docs/reference/geometry/heightfieldMesh.md +11 -2
  306. package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +5 -1
  307. package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +5 -1
  308. package/dist/docs/reference/geometry/inverseTransform3.md +6 -5
  309. package/dist/docs/reference/geometry/isGeometryError.md +5 -2
  310. package/dist/docs/reference/geometry/joinTriangleMeshes.md +5 -1
  311. package/dist/docs/reference/geometry/layoutRow.md +11 -7
  312. package/dist/docs/reference/geometry/length2.md +5 -4
  313. package/dist/docs/reference/geometry/length3.md +5 -4
  314. package/dist/docs/reference/geometry/lerp2.md +7 -6
  315. package/dist/docs/reference/geometry/lerp3.md +7 -6
  316. package/dist/docs/reference/geometry/linearPatternTransforms.md +4 -4
  317. package/dist/docs/reference/geometry/loftMesh.md +5 -1
  318. package/dist/docs/reference/geometry/matchProfiles.md +11 -2
  319. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +5 -1
  320. package/dist/docs/reference/geometry/meshBounds.md +8 -4
  321. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +5 -1
  322. package/dist/docs/reference/geometry/normalize2.md +10 -6
  323. package/dist/docs/reference/geometry/normalize3.md +10 -6
  324. package/dist/docs/reference/geometry/normalizeContour.md +8 -4
  325. package/dist/docs/reference/geometry/normalizePolygon.md +5 -1
  326. package/dist/docs/reference/geometry/normalizeRegion.md +5 -1
  327. package/dist/docs/reference/geometry/optimizePlanarPatches.md +5 -1
  328. package/dist/docs/reference/geometry/path2.md +14 -2
  329. package/dist/docs/reference/geometry/path3.md +8 -1
  330. package/dist/docs/reference/geometry/pathPatternTransforms.md +9 -5
  331. package/dist/docs/reference/geometry/preflightHeightfield.md +11 -2
  332. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +11 -2
  333. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +13 -2
  334. package/dist/docs/reference/geometry/preflightSvgRegion.md +24 -2
  335. package/dist/docs/reference/geometry/preflightThreadedNut.md +12 -2
  336. package/dist/docs/reference/geometry/preflightThreadedRod.md +12 -2
  337. package/dist/docs/reference/geometry/projectOntoPlane3.md +7 -6
  338. package/dist/docs/reference/geometry/radialPatternTransforms.md +4 -4
  339. package/dist/docs/reference/geometry/rectangleContour.md +10 -3
  340. package/dist/docs/reference/geometry/rectangleProfile.md +10 -2
  341. package/dist/docs/reference/geometry/regionArea.md +5 -1
  342. package/dist/docs/reference/geometry/regionBounds.md +8 -4
  343. package/dist/docs/reference/geometry/regularPolygonContour.md +8 -4
  344. package/dist/docs/reference/geometry/resamplePolyline2.md +8 -4
  345. package/dist/docs/reference/geometry/resamplePolyline3.md +8 -4
  346. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
  347. package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
  348. package/dist/docs/reference/geometry/resolveCircularSampling.md +40 -0
  349. package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
  350. package/dist/docs/reference/geometry/resolveCylindricalGear.md +5 -1
  351. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +5 -1
  352. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +5 -1
  353. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -1
  354. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  355. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +59 -0
  356. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +5 -1
  357. package/dist/docs/reference/geometry/resolveRackPitch.md +5 -1
  358. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +5 -1
  359. package/dist/docs/reference/geometry/reverseTriangleMesh.md +5 -1
  360. package/dist/docs/reference/geometry/revolveMesh.md +5 -1
  361. package/dist/docs/reference/geometry/rotate2.md +6 -5
  362. package/dist/docs/reference/geometry/rotationTransform3.md +7 -6
  363. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -4
  364. package/dist/docs/reference/geometry/sampleContour.md +12 -2
  365. package/dist/docs/reference/geometry/sampleCurve2.md +6 -3
  366. package/dist/docs/reference/geometry/sampleCurve3.md +5 -1
  367. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +5 -1
  368. package/dist/docs/reference/geometry/sampleHelix.md +13 -5
  369. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +5 -1
  370. package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -4
  371. package/dist/docs/reference/geometry/sampleSideProfile.md +15 -5
  372. package/dist/docs/reference/geometry/sampleTextContours.md +5 -1
  373. package/dist/docs/reference/geometry/sampleThreadHelices.md +5 -1
  374. package/dist/docs/reference/geometry/scale2.md +6 -5
  375. package/dist/docs/reference/geometry/scale3.md +6 -5
  376. package/dist/docs/reference/geometry/scaleTransform3.md +7 -6
  377. package/dist/docs/reference/geometry/signedContourArea.md +5 -1
  378. package/dist/docs/reference/geometry/starContour.md +8 -4
  379. package/dist/docs/reference/geometry/strokeRegionData.md +5 -1
  380. package/dist/docs/reference/geometry/subtract2.md +7 -6
  381. package/dist/docs/reference/geometry/subtract3.md +7 -6
  382. package/dist/docs/reference/geometry/sweepMesh.md +5 -1
  383. package/dist/docs/reference/geometry/threadProfile.md +5 -1
  384. package/dist/docs/reference/geometry/transform2.md +14 -7
  385. package/dist/docs/reference/geometry/transform3.md +16 -7
  386. package/dist/docs/reference/geometry/transformDeterminant3.md +5 -4
  387. package/dist/docs/reference/geometry/transformRegionData.md +5 -1
  388. package/dist/docs/reference/geometry/transformTriangleMesh.md +5 -1
  389. package/dist/docs/reference/geometry/translationTransform3.md +7 -6
  390. package/dist/docs/reference/geometry/triangulateContour.md +5 -1
  391. package/dist/docs/reference/geometry/validateSolidMesh.md +9 -2
  392. package/dist/docs/reference/geometry/validateTransform3.md +6 -5
  393. package/dist/docs/reference/geometry/validateTriangleMesh.md +5 -1
  394. package/dist/docs/reference/geometry/vector2.md +10 -2
  395. package/dist/docs/reference/geometry/vector3.md +10 -2
  396. package/dist/docs/reference/geometry.md +7 -5
  397. package/dist/docs/reference/model/Anchor3.md +6 -5
  398. package/dist/docs/reference/model/AttachOptions.md +2 -1
  399. package/dist/docs/reference/model/Bounds2-type.md +125 -0
  400. package/dist/docs/reference/model/Bounds2Data.md +44 -0
  401. package/dist/docs/reference/model/Bounds2Input.md +19 -0
  402. package/dist/docs/reference/model/Bounds2Options.md +70 -0
  403. package/dist/docs/reference/model/Bounds3-type.md +125 -0
  404. package/dist/docs/reference/model/Bounds3Data.md +44 -0
  405. package/dist/docs/reference/model/Bounds3Input.md +19 -0
  406. package/dist/docs/reference/model/Bounds3Options.md +70 -0
  407. package/dist/docs/reference/model/BoxEdge.md +1 -1
  408. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  409. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  410. package/dist/docs/reference/model/BoxOptions.md +3 -3
  411. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  412. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  413. package/dist/docs/reference/model/CircleOptions.md +1 -1
  414. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
  415. package/dist/docs/reference/model/Computed.md +6 -1
  416. package/dist/docs/reference/model/ComputedValue.md +5 -1
  417. package/dist/docs/reference/model/Contour.md +6 -4
  418. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  419. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  420. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  421. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  422. package/dist/docs/reference/model/CylinderOptions.md +1 -1
  423. package/dist/docs/reference/model/DiagnosticOptions.md +6 -1
  424. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  425. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  426. package/dist/docs/reference/model/EllipseOptions.md +1 -1
  427. package/dist/docs/reference/model/EndTreatments.md +1 -1
  428. package/dist/docs/reference/model/ExtrudeOptions.md +1 -1
  429. package/dist/docs/reference/model/FinalizedModel.md +3 -3
  430. package/dist/docs/reference/model/FinalizedPart.md +1 -1
  431. package/dist/docs/reference/model/Frame3.md +6 -6
  432. package/dist/docs/reference/model/GenerateCallback.md +5 -1
  433. package/dist/docs/reference/model/GenerateContext.md +5 -1
  434. package/dist/docs/reference/model/GeneratedPart.md +5 -1
  435. package/dist/docs/reference/model/GenerationDiagnostic.md +6 -1
  436. package/dist/docs/reference/model/GenerationError.md +5 -1
  437. package/dist/docs/reference/model/GeometryResolution.md +1 -1
  438. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  439. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  440. package/dist/docs/reference/model/GridPatternOptions.md +5 -4
  441. package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
  442. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +2 -1
  443. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +3 -2
  444. package/dist/docs/reference/model/HoleCutterOptions.md +77 -0
  445. package/dist/docs/reference/model/HoleCutterOverrun.md +35 -0
  446. package/dist/docs/reference/model/HoleCutterRecess.md +87 -0
  447. package/dist/docs/reference/model/HullOptions.md +1 -1
  448. package/dist/docs/reference/model/ImmutableBuffer-type.md +5 -1
  449. package/dist/docs/reference/model/ImmutableTriangleMesh.md +5 -1
  450. package/dist/docs/reference/model/ImplicitOptions.md +6 -6
  451. package/dist/docs/reference/model/InternalThreadCutterOptions.md +2 -1
  452. package/dist/docs/reference/model/KnuckleHinge-type.md +47 -0
  453. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +77 -0
  454. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +38 -0
  455. package/dist/docs/reference/model/KnuckleHingeOptions.md +38 -0
  456. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +47 -0
  457. package/dist/docs/reference/model/KnuckleHingeSpec.md +18 -0
  458. package/dist/docs/reference/model/KnuckleHingeWeb.md +53 -0
  459. package/dist/docs/reference/model/LinearPatternOptions.md +2 -1
  460. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  461. package/dist/docs/reference/model/LoftOptions.md +1 -1
  462. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  463. package/dist/docs/reference/model/LoftStation.md +1 -1
  464. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  465. package/dist/docs/reference/model/ModelProgram.md +5 -1
  466. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  467. package/dist/docs/reference/model/NumericArray.md +8 -1
  468. package/dist/docs/reference/model/PartGeometry.md +5 -1
  469. package/dist/docs/reference/model/PartOptions.md +5 -1
  470. package/dist/docs/reference/model/Path2-type.md +12 -8
  471. package/dist/docs/reference/model/Path2Data.md +40 -4
  472. package/dist/docs/reference/model/Path2Input.md +8 -3
  473. package/dist/docs/reference/model/Path3-type.md +12 -8
  474. package/dist/docs/reference/model/Path3Data.md +40 -4
  475. package/dist/docs/reference/model/Path3Input.md +8 -3
  476. package/dist/docs/reference/model/PathLocation.md +5 -1
  477. package/dist/docs/reference/model/PathNormalGuide.md +4 -4
  478. package/dist/docs/reference/model/PathOptions.md +5 -1
  479. package/dist/docs/reference/model/PathPatternOptions.md +2 -1
  480. package/dist/docs/reference/model/PathResamplingOptions.md +5 -1
  481. package/dist/docs/reference/model/PatternSource.md +2 -1
  482. package/dist/docs/reference/model/Pivot2Options.md +2 -1
  483. package/dist/docs/reference/model/Pivot3Options.md +2 -1
  484. package/dist/docs/reference/model/PlaneOptions.md +1 -1
  485. package/dist/docs/reference/model/PolygonData.md +3 -2
  486. package/dist/docs/reference/model/PolygonOptions.md +1 -1
  487. package/dist/docs/reference/model/PrimitiveAttachment.md +2 -1
  488. package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +2 -1
  489. package/dist/docs/reference/model/PrintableThreadFit.md +2 -1
  490. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +2 -1
  491. package/dist/docs/reference/model/Profile.md +4 -2
  492. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  493. package/dist/docs/reference/model/ProfileContour2.md +4 -2
  494. package/dist/docs/reference/model/ProfileSpan2.md +3 -3
  495. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
  496. package/dist/docs/reference/model/RadialPatternOptions.md +2 -1
  497. package/dist/docs/reference/model/RadialSizing.md +1 -1
  498. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  499. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  500. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  501. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  502. package/dist/docs/reference/model/RectangleOptions.md +3 -3
  503. package/dist/docs/reference/model/RegionData.md +2 -2
  504. package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
  505. package/dist/docs/reference/model/RevolveOptions.md +1 -1
  506. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  507. package/dist/docs/reference/model/Section.md +9 -2
  508. package/dist/docs/reference/model/SectionHullOptions.md +1 -1
  509. package/dist/docs/reference/model/SectionInspection.md +4 -4
  510. package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
  511. package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
  512. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  513. package/dist/docs/reference/model/Solid.md +9 -2
  514. package/dist/docs/reference/model/SolidInspection.md +4 -4
  515. package/dist/docs/reference/model/SolidSegmentHit.md +4 -4
  516. package/dist/docs/reference/model/SphereOptions.md +1 -1
  517. package/dist/docs/reference/model/StarOptions.md +1 -1
  518. package/dist/docs/reference/model/StrokeCap.md +1 -1
  519. package/dist/docs/reference/model/StrokeJoin.md +1 -1
  520. package/dist/docs/reference/model/StrokeOptions.md +1 -1
  521. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  522. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  523. package/dist/docs/reference/model/SvgSectionOptions.md +14 -1
  524. package/dist/docs/reference/model/SweepOptions.md +1 -1
  525. package/dist/docs/reference/model/SweepOrientation.md +1 -1
  526. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  527. package/dist/docs/reference/model/ThreadEndStyle.md +2 -1
  528. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +2 -1
  529. package/dist/docs/reference/model/ThreadHandedness.md +2 -1
  530. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +2 -1
  531. package/dist/docs/reference/model/ThreadLeadInShape.md +2 -1
  532. package/dist/docs/reference/model/ThreadProfile.md +4 -3
  533. package/dist/docs/reference/model/ThreadRidgeOptions.md +2 -1
  534. package/dist/docs/reference/model/ThreadedNutBevel.md +2 -1
  535. package/dist/docs/reference/model/ThreadedNutOptions.md +2 -1
  536. package/dist/docs/reference/model/ThreadedNutPreflight.md +4 -3
  537. package/dist/docs/reference/model/ThreadedNutShape.md +2 -1
  538. package/dist/docs/reference/model/ThreadedRodOptions.md +2 -1
  539. package/dist/docs/reference/model/TorusOptions.md +1 -1
  540. package/dist/docs/reference/model/Transform2-type.md +6 -5
  541. package/dist/docs/reference/model/Transform2Data.md +16 -0
  542. package/dist/docs/reference/model/Transform2Input.md +4 -3
  543. package/dist/docs/reference/model/Transform3-type.md +6 -5
  544. package/dist/docs/reference/model/Transform3Data.md +19 -0
  545. package/dist/docs/reference/model/Transform3Input.md +4 -3
  546. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  547. package/dist/docs/reference/model/TriangleMeshAnalysis.md +3 -3
  548. package/dist/docs/reference/model/TriangleMeshMeasurements.md +3 -3
  549. package/dist/docs/reference/model/TubeOptions.md +1 -1
  550. package/dist/docs/reference/model/Vector2-type.md +6 -5
  551. package/dist/docs/reference/model/{Vector2Tuple.md → Vector2Data.md} +3 -3
  552. package/dist/docs/reference/model/Vector2Input.md +4 -3
  553. package/dist/docs/reference/model/Vector3-type.md +6 -5
  554. package/dist/docs/reference/model/{Vector3Tuple.md → Vector3Data.md} +3 -3
  555. package/dist/docs/reference/model/Vector3Input.md +4 -3
  556. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  557. package/dist/docs/reference/model/VectorTextMetrics.md +3 -3
  558. package/dist/docs/reference/model/anchor.md +2 -1
  559. package/dist/docs/reference/model/bounds2.md +37 -0
  560. package/dist/docs/reference/model/bounds3.md +37 -0
  561. package/dist/docs/reference/model/box.md +2 -2
  562. package/dist/docs/reference/model/castSegment.md +1 -1
  563. package/dist/docs/reference/model/categories/boolean-operations.md +10 -3
  564. package/dist/docs/reference/model/categories/bounded-surfaces.md +5 -3
  565. package/dist/docs/reference/model/categories/bounds.md +38 -0
  566. package/dist/docs/reference/model/categories/contracts.md +4 -2
  567. package/dist/docs/reference/model/categories/core-values-errors.md +11 -11
  568. package/dist/docs/reference/model/categories/explicit-profiles.md +6 -4
  569. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +12 -3
  570. package/dist/docs/reference/model/categories/generation.md +11 -2
  571. package/dist/docs/reference/model/categories/hinges.md +38 -0
  572. package/dist/docs/reference/model/categories/inspection.md +9 -2
  573. package/dist/docs/reference/model/categories/mesh-inspection.md +5 -3
  574. package/dist/docs/reference/model/categories/paths.md +15 -7
  575. package/dist/docs/reference/model/categories/primitives.md +14 -4
  576. package/dist/docs/reference/model/categories/resolution.md +4 -2
  577. package/dist/docs/reference/model/categories/sections.md +10 -5
  578. package/dist/docs/reference/model/categories/threads.md +10 -7
  579. package/dist/docs/reference/model/categories/transforms-placement.md +17 -9
  580. package/dist/docs/reference/model/circle.md +1 -1
  581. package/dist/docs/reference/model/components.md +1 -1
  582. package/dist/docs/reference/model/compose.md +1 -1
  583. package/dist/docs/reference/model/cylinder.md +1 -1
  584. package/dist/docs/reference/model/distance.md +1 -1
  585. package/dist/docs/reference/model/ellipse.md +1 -1
  586. package/dist/docs/reference/model/extrude.md +1 -1
  587. package/dist/docs/reference/model/generate.md +5 -1
  588. package/dist/docs/reference/model/gridPattern.md +2 -1
  589. package/dist/docs/reference/model/heightfield.md +5 -2
  590. package/dist/docs/reference/model/holeCutter.md +45 -0
  591. package/dist/docs/reference/model/hull.md +1 -1
  592. package/dist/docs/reference/model/immutableBuffer.md +5 -1
  593. package/dist/docs/reference/model/immutableMesh.md +5 -1
  594. package/dist/docs/reference/model/implicit.md +3 -3
  595. package/dist/docs/reference/model/inspectSection.md +1 -1
  596. package/dist/docs/reference/model/inspectSolid.md +1 -1
  597. package/dist/docs/reference/model/internalThreadCutter.md +2 -1
  598. package/dist/docs/reference/model/intersect.md +1 -1
  599. package/dist/docs/reference/model/isEmpty.md +1 -1
  600. package/dist/docs/reference/model/knuckleHinge.md +47 -0
  601. package/dist/docs/reference/model/linearPattern.md +2 -1
  602. package/dist/docs/reference/model/loft.md +1 -1
  603. package/dist/docs/reference/model/matchProfiles.md +1 -1
  604. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  605. package/dist/docs/reference/model/path2.md +14 -2
  606. package/dist/docs/reference/model/path3.md +8 -1
  607. package/dist/docs/reference/model/pathPattern.md +2 -1
  608. package/dist/docs/reference/model/polygon.md +5 -2
  609. package/dist/docs/reference/model/preflightInternalThreadCutter.md +8 -2
  610. package/dist/docs/reference/model/preflightThreadedNut.md +8 -2
  611. package/dist/docs/reference/model/preflightThreadedRod.md +8 -2
  612. package/dist/docs/reference/model/radialPattern.md +2 -1
  613. package/dist/docs/reference/model/rectangle.md +5 -2
  614. package/dist/docs/reference/model/regularPolygon.md +1 -1
  615. package/dist/docs/reference/model/revolve.md +1 -1
  616. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  617. package/dist/docs/reference/model/sphere.md +1 -1
  618. package/dist/docs/reference/model/split.md +1 -1
  619. package/dist/docs/reference/model/splitByPlane.md +1 -1
  620. package/dist/docs/reference/model/star.md +1 -1
  621. package/dist/docs/reference/model/stroke.md +1 -1
  622. package/dist/docs/reference/model/svgPathSection.md +1 -1
  623. package/dist/docs/reference/model/svgSection.md +5 -1
  624. package/dist/docs/reference/model/sweep.md +1 -1
  625. package/dist/docs/reference/model/textSection.md +1 -1
  626. package/dist/docs/reference/model/threadRidge.md +2 -1
  627. package/dist/docs/reference/model/threadedNut.md +2 -1
  628. package/dist/docs/reference/model/threadedRod.md +2 -1
  629. package/dist/docs/reference/model/torus.md +1 -1
  630. package/dist/docs/reference/model/transform2.md +14 -7
  631. package/dist/docs/reference/model/transform3.md +16 -7
  632. package/dist/docs/reference/model/tube.md +1 -1
  633. package/dist/docs/reference/model/union.md +1 -1
  634. package/dist/docs/reference/model/vector2.md +10 -2
  635. package/dist/docs/reference/model/vector3.md +10 -2
  636. package/dist/docs/reference/model.md +15 -8
  637. package/dist/docs/reference/text/Bounds2Data.md +34 -0
  638. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  639. package/dist/docs/reference/text/Vector2Data.md +7 -0
  640. package/dist/docs/reference/text/VectorFont.md +7 -7
  641. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  642. package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
  643. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  644. package/dist/docs/reference/text/VectorTextLayoutOptions.md +3 -3
  645. package/dist/docs/reference/text/VectorTextMetrics.md +3 -3
  646. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  647. package/dist/docs/reference/text/categories/font-preparation.md +6 -4
  648. package/dist/docs/reference/text/prepareVectorFont.md +1 -1
  649. package/dist/docs/reference/text.md +4 -2
  650. package/dist/engine/construction-operations.js +1 -1
  651. package/dist/engine/extrusion-finishing.js +2 -29
  652. package/dist/engine/hole-cutter-operation.js +148 -0
  653. package/dist/engine/knuckle-hinge-operation.js +128 -0
  654. package/dist/engine/loft-operations.js +1 -1
  655. package/dist/engine/mechanical-operations.js +3 -1
  656. package/dist/engine/modeling-context.js +20 -1
  657. package/dist/engine/primitive-operations.js +19 -6
  658. package/dist/engine/recipe-realization.js +4 -2
  659. package/dist/engine/section-operations.js +2 -2
  660. package/dist/engine/transform-operations.js +3 -3
  661. package/dist/geometry/bounds-value.js +121 -0
  662. package/dist/geometry/bounds.js +10 -25
  663. package/dist/geometry/circular-sampling.js +45 -0
  664. package/dist/geometry/convex-offset.js +41 -0
  665. package/dist/geometry/curves/sampling.js +1 -2
  666. package/dist/geometry/errors.js +1 -0
  667. package/dist/geometry/heightfield.js +12 -1
  668. package/dist/geometry/index.js +5 -2
  669. package/dist/geometry/math/immutable-value.js +1 -1
  670. package/dist/geometry/math/vector-value.js +11 -3
  671. package/dist/geometry/math/vector2.js +1 -0
  672. package/dist/geometry/math/vector3.js +1 -0
  673. package/dist/geometry/mechanical/index.js +1 -0
  674. package/dist/geometry/mechanical/knuckle-hinge.js +110 -0
  675. package/dist/geometry/mechanical/thread-mesh-plan.js +7 -2
  676. package/dist/geometry/mechanical/thread-solids.js +29 -4
  677. package/dist/geometry/mesh/mesh-centroid.js +1 -0
  678. package/dist/geometry/mesh/mesh-solid.js +1 -0
  679. package/dist/geometry/paths/frames.js +1 -0
  680. package/dist/geometry/paths/helix.js +1 -0
  681. package/dist/geometry/paths/path-value.js +43 -27
  682. package/dist/geometry/paths/resampling.js +2 -2
  683. package/dist/geometry/patterns/placements.js +3 -3
  684. package/dist/geometry/patterns.js +3 -1
  685. package/dist/geometry/profiles/contour.js +1 -0
  686. package/dist/geometry/profiles/matched.js +1 -0
  687. package/dist/geometry/profiles/profiles.js +3 -23
  688. package/dist/geometry/profiles/rectangle.js +10 -1
  689. package/dist/geometry/profiles/side-profile.js +2 -0
  690. package/dist/geometry/svg/matrix.js +21 -0
  691. package/dist/geometry/svg-import.js +140 -52
  692. package/dist/geometry/sweeps/options.js +1 -1
  693. package/dist/geometry/text-fitting.js +1 -0
  694. package/dist/geometry/transform-matrix.js +1 -1
  695. package/dist/geometry/{transform-chain.js → transform-value.js} +24 -15
  696. package/dist/index.js +2 -1
  697. package/dist/model/execution-binding.js +1 -1
  698. package/dist/model/geometry-recipes.js +1 -1
  699. package/dist/model/hole-cutter.js +1 -0
  700. package/dist/model/immutable-generation-data.js +4 -12
  701. package/dist/model/knuckle-hinge.js +1 -0
  702. package/dist/model/operations.js +78 -3
  703. package/dist/model/recipe-declaration.js +11 -2
  704. package/package.json +1 -1
  705. package/dist/docs/reference/geometry/Bounds2.md +0 -39
  706. package/dist/docs/reference/geometry/Bounds3.md +0 -39
  707. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +0 -23
  708. package/dist/docs/reference/geometry/Transform2Matrix.md +0 -14
  709. package/dist/docs/reference/geometry/Transform3Matrix.md +0 -17
  710. package/dist/docs/reference/geometry/Vector2Tuple.md +0 -14
  711. package/dist/docs/reference/geometry/Vector3Tuple.md +0 -14
  712. package/dist/docs/reference/geometry/boundsFromSize.md +0 -83
  713. package/dist/docs/reference/geometry/containsBounds.md +0 -72
  714. package/dist/docs/reference/model/Bounds2.md +0 -39
  715. package/dist/docs/reference/model/Bounds3.md +0 -39
  716. package/dist/docs/reference/model/Transform2Matrix.md +0 -15
  717. package/dist/docs/reference/model/Transform3Matrix.md +0 -18
  718. package/dist/docs/reference/text/Bounds2.md +0 -34
  719. package/dist/docs/reference/text/Vector2Tuple.md +0 -7
@@ -2,7 +2,15 @@
2
2
 
3
3
  Sample reusable lines, arcs, cubic curves, and path frames with explicit physical policies.
4
4
 
5
- Use immutable `path2(points, { closed })` and `path3(points, { closed })` values for sampled trajectories. Closure belongs to the value; closed paths omit the duplicated endpoint. Chain transform, reverse and resample without mutating reusable paths. length includes the closing edge, bounds returns undefined for empty paths, and closestPoint returns a fluent point, distance, edge index and fraction within that edge. Reflections preserve traversal; polygon construction handles filled-shape winding. Geometry accepts matching path values directly. Path2Data and Path3Data are tuple collections for interchange; toArray omits closure metadata. Analytic Curve definitions remain distinct: sampleCurve2/3 retain directed endpoints and tangents; exact curve intervals are uniform in the curve parameter. Low-level resamplePolyline2/3 return tuple points plus tangents at equal arc length. Sampling uses physical policies and checked vertex ceilings. Sweep frames require explicit seam and orientation choices.
5
+ Use immutable `path2(points, { closed })` and `path3(points, { closed })` values for sampled trajectories. Closed paths omit the duplicated endpoint. Geometry accepts matching path values directly.
6
+
7
+ - **Transform:** `transform()`, `reverse()`, and `resample()` return new paths. Reflections preserve traversal; polygon construction handles filled-shape winding.
8
+ - **Query:** `length()` includes the closing edge. `bounds()` returns fluent bounds or `undefined` for empty paths. `closestPoint()` returns a fluent point, distance, edge index, and fraction within that edge.
9
+ - **Interchange:** `toData()` returns `Path2Data` or `Path3Data` with dimension, closure, and point tuples.
10
+ - **Sample curves:** analytic `Curve` definitions are separate. `sampleCurve2`/`sampleCurve3` retain directed endpoints and tangents; exact intervals are uniform in the curve parameter.
11
+ - **Resample:** `resamplePolyline2`/`resamplePolyline3` return tuple points and tangents at equal arc lengths. Sampling uses physical policies and checked vertex ceilings.
12
+
13
+ Sweep frames require explicit seam and orientation choices.
6
14
 
7
15
  ## Functions
8
16
 
@@ -14,7 +22,7 @@ Use immutable `path2(points, { closed })` and `path3(points, { closed })` values
14
22
  | [resolveGeometrySamplingLimits](../resolveGeometrySamplingLimits.md) | Resolves finite positive safe-integer allocation ceilings without ambient state. |
15
23
  | [resamplePolyline2](../resamplePolyline2.md) | Resamples a planar polyline with the same point, tangent, seam and budget guarantees as 3D. |
16
24
  | [resamplePolyline3](../resamplePolyline3.md) | Resamples a spatial polyline at equal arc lengths with directed outgoing tangents. |
17
- | [path2](../path2.md) | Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization. Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed. Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError. A path input retains its closure. Limits bound construction only; resampling takes its own limits. |
25
+ | [path2](../path2.md) | Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization. |
18
26
  | [path3](../path3.md) | Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam, allocation and error rules as path2. Analytic curves must be sampled explicitly first. |
19
27
 
20
28
  ## Interfaces
@@ -41,6 +49,8 @@ Use immutable `path2(points, { closed })` and `path3(points, { closed })` values
41
49
  | [PathOptions](../PathOptions.md) | Topology and allocation ceiling for an immutable sampled path. |
42
50
  | [PathLocation](../PathLocation.md) | Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. |
43
51
  | [PathResamplingOptions](../PathResamplingOptions.md) | Equal arc-length sampling; the path itself owns whether its closing edge is included. |
52
+ | [Path2Data](../Path2Data.md) | Complete plain XY path representation, including topology and empty-path dimensional identity. |
53
+ | [Path3Data](../Path3Data.md) | Complete plain XYZ path representation, including topology and empty-path dimensional identity. |
44
54
 
45
55
  ## Type aliases
46
56
 
@@ -49,20 +59,22 @@ Use immutable `path2(points, { closed })` and `path3(points, { closed })` values
49
59
  | [Curve2](../Curve2.md) | Reusable planar curve definition. |
50
60
  | [Curve3](../Curve3.md) | Reusable spatial curve definition. |
51
61
  | [PathNormalGuide](../PathNormalGuide.md) | Supplies a profile-X orientation guide for each original normalized sweep station. |
52
- | [Path2Input](../Path2Input.md) | An immutable XY sampled path or a collection of XY tuples and fluent vectors. |
53
- | [Path3Input](../Path3Input.md) | An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. |
54
- | [Path2Data](../Path2Data.md) | XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. |
55
- | [Path3Data](../Path3Data.md) | XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value. |
62
+ | [Path2Input](../Path2Input.md) | A matching path value, complete plain path data, or a collection of vectors. |
63
+ | [Path3Input](../Path3Input.md) | A matching path value, complete plain path data, or a collection of vectors. |
56
64
 
57
65
  ## Values
58
66
 
59
67
  | API | Summary |
60
68
  | --- | --- |
61
69
  | [computeClosedParallelTransportFrames](../computeClosedParallelTransportFrames.md) | Builds rotation-minimizing frames for a non-duplicated closed path. |
62
- | [computeParallelTransportFrames](../computeParallelTransportFrames.md) | Builds rotation-minimizing frames by parallel-transporting the previous normal. This avoids the sudden profile flips produced by picking a fresh up-vector per ring. Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation. Requires open path values; raw tuples are interpreted as an open path. Invalid paths throw GeometryError. Nonfinite normals and guide results reject. A finite initial guide parallel to the tangent selects a canonical fallback. |
70
+ | [computeParallelTransportFrames](../computeParallelTransportFrames.md) | Builds rotation-minimizing frames by parallel-transporting the previous normal. |
63
71
  | [defaultGeometrySamplingLimits](../defaultGeometrySamplingLimits.md) | Conservative defaults; trusted callers can supply larger explicit ceilings. |
64
72
  | [distributeAlongPath](../distributeAlongPath.md) | Places an exact item count at equal arc-length intervals along a sampled path. |
65
73
  | [roundClosedPolylinePath](../roundClosedPolylinePath.md) | Replaces each vertex of a non-duplicated closed polyline with a sampled quadratic corner in the same coordinate system as the input. |
66
- | [sampleHelix](../sampleHelix.md) | Creates `segments + 1` points including exact helix endpoints from finite positive dimensions. Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive exact counts reject before evaluating axial weights or allocating sample arrays. Invalid inputs use GeometryError; exceptions thrown by axialWeight propagate unchanged. |
74
+ | [sampleHelix](../sampleHelix.md) | Creates `segments + 1` points including exact helix endpoints from finite positive dimensions. |
75
+
76
+ ## Guides
77
+
78
+ - [Path queries and closure-preserving interchange](../../../guides/concepts.md#query-paths-and-preserve-closure)
67
79
 
68
- Package: `@metamesh/modeling@0.15.0`.
80
+ Package: `@metamesh/modeling@0.17.0`.
@@ -1,13 +1,16 @@
1
1
  # Mechanical foundations
2
2
 
3
- Resolve gears, fastener standards, thread profiles, fit, and predictable allocations.
3
+ Resolve gears, knuckle joints, fastener standards, thread profiles, fit, and predictable allocations.
4
4
 
5
- Pure kernels resolve dimensions and emit outlines or meshes without native state. Keep physical clearance separate from Boolean overtravel. Thread and gear results are modeling aids rather than certified manufacturing or strength specifications.
5
+ Pure kernels resolve dimensions and emit outlines or meshes without native state. Keep physical clearance separate from Boolean overtravel.
6
+
7
+ Thread and gear results are modeling aids, not certified manufacturing or strength specifications.
6
8
 
7
9
  ## Functions
8
10
 
9
11
  | API | Summary |
10
12
  | --- | --- |
13
+ | [resolveKnuckleHinge](../resolveKnuckleHinge.md) | Resolves equal alternating knuckles along +X, centered at the origin, in millimetres. |
11
14
  | [helicalThreadRidgeMesh](../helicalThreadRidgeMesh.md) | Builds closed thread-ridge components with every profile locked to the shaft's radial/axial frame. The mesh is intended for union with its minor-envelope cylinder and never owns WASM objects. |
12
15
  | [helicalThreadSolidMesh](../helicalThreadSolidMesh.md) | Builds one closed threaded cylinder without a ridge/core Boolean seam. |
13
16
  | [compensateThreadDiameters](../compensateThreadDiameters.md) | Applies role-specific radial compensation while preserving thread depth. |
@@ -18,10 +21,10 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
18
21
  | [getMetricFastenerStandard](../getMetricFastenerStandard.md) | Returns the immutable standards record for one supported metric size. |
19
22
  | [measureInternalCylindricalGearPairMotion](../measureInternalCylindricalGearPairMotion.md) | Measures sampled kinematic interference over one tooth cycle of an internal gear pair. |
20
23
  | [minimumCylindricalGearToothCountWithoutUndercut](../minimumCylindricalGearToothCountWithoutUndercut.md) | Returns the smallest unshifted full-depth external tooth count that avoids rack-cutter undercut. |
21
- | [preflightHelicalThreadSolidMesh](../preflightHelicalThreadSolidMesh.md) | Validates a direct thread solid and returns its conservative allocation estimate without constructing vertex or index buffers. |
22
- | [preflightInternalThreadCutter](../preflightInternalThreadCutter.md) | Preflights the exact extended mesh used by the internal thread cutter constructor. |
23
- | [preflightThreadedNut](../preflightThreadedNut.md) | Resolves a nut's exact body/cutter chamfer and preflights its extended thread mesh without allocating Manifold WASM objects. |
24
- | [preflightThreadedRod](../preflightThreadedRod.md) | Preflights the exact compensated direct mesh used by the threaded rod constructor. |
24
+ | [preflightHelicalThreadSolidMesh](../preflightHelicalThreadSolidMesh.md) | Checks thread dimensions, profile, end treatments, sampling, and conservative estimates against output limits. |
25
+ | [preflightInternalThreadCutter](../preflightInternalThreadCutter.md) | Resolves compensated cutter dimensions and checks extended mesh estimates against output limits. |
26
+ | [preflightThreadedNut](../preflightThreadedNut.md) | Checks nut dimensions, chamfers, end-face wall, and the extended compensated cutter's allocation plan. |
27
+ | [preflightThreadedRod](../preflightThreadedRod.md) | Resolves compensated rod dimensions and checks conservative mesh estimates against output limits. |
25
28
  | [resolveCylindricalGear](../resolveCylindricalGear.md) | Resolves a validated unshifted full-depth external cylindrical gear. |
26
29
  | [resolveCylindricalGearPair](../resolveCylindricalGearPair.md) | Resolves ratio, center distance, and helix relationship for a gear pair. |
27
30
  | [resolvePrintableThreadFitPolicy](../resolvePrintableThreadFitPolicy.md) | Resolves and validates a named or caller-defined print-fit policy. |
@@ -37,6 +40,10 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
37
40
  | API | Summary |
38
41
  | --- | --- |
39
42
  | [AcmeThreadProfileSpec](../AcmeThreadProfileSpec.md) | ACME 29-degree included-angle profile. |
43
+ | [KnuckleHingeBaseSpec](../KnuckleHingeBaseSpec.md) | Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. |
44
+ | [KnuckleHingeSamplingOptions](../KnuckleHingeSamplingOptions.md) | Shared circular sampling for barrels, shafts, and bores. |
45
+ | [KnuckleHingeDimensions](../KnuckleHingeDimensions.md) | Immutable joint layout and conservative faceted envelopes; no engine initialization. |
46
+ | [KnuckleHingeInterval](../KnuckleHingeInterval.md) | One equal-length barrel interval in the shared pin-centered frame. |
40
47
  | [ButtressThreadProfileSpec](../ButtressThreadProfileSpec.md) | Asymmetric printable buttress profile with 7/45-degree flanks. |
41
48
  | [ClearanceHoleDimensions](../ClearanceHoleDimensions.md) | Close, normal, and loose metric clearance-hole diameters in millimetres. |
42
49
  | [CompensatedThreadDiameters](../CompensatedThreadDiameters.md) | Compensated major/minor envelopes and the policy values used. |
@@ -50,7 +57,7 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
50
57
  | [CylindricalGearSpec](../CylindricalGearSpec.md) | Nominal dimensions for a standard full-depth cylindrical involute gear. |
51
58
  | [HelicalThreadRidgeMeshOptions](../HelicalThreadRidgeMeshOptions.md) | Runtime-neutral options for the dedicated helical ridge mesher. |
52
59
  | [HelicalThreadSolidMeshOptions](../HelicalThreadSolidMeshOptions.md) | Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. |
53
- | [HelicalThreadSolidMeshPreflight](../HelicalThreadSolidMeshPreflight.md) | Conservative allocation facts resolved before constructing a direct thread solid mesh. |
60
+ | [HelicalThreadSolidMeshPreflight](../HelicalThreadSolidMeshPreflight.md) | Selected sampling counts and conservative allocation estimates, before thread mesh construction. |
54
61
  | [InternalThreadCutterOptions](../InternalThreadCutterOptions.md) | Options for a compensated internal-thread subtraction tool along +Z. |
55
62
  | [MetricFastenerStandard](../MetricFastenerStandard.md) | Small immutable metric fastener record for modeling common mating features. |
56
63
  | [MetricHexNutDimensions](../MetricHexNutDimensions.md) | Regular hex-nut envelope dimensions in millimetres. |
@@ -64,7 +71,7 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
64
71
  | [ThreadCircularSegmentsOptions](../ThreadCircularSegmentsOptions.md) | Inputs for resolving one shared circular facet count for a mating thread pair. |
65
72
  | [ThreadCompensationOptions](../ThreadCompensationOptions.md) | Options for compensating nominal male or female thread diameters. |
66
73
  | [ThreadedNutOptions](../ThreadedNutOptions.md) | Options for a compensated nut with an internal thread. |
67
- | [ThreadedNutPreflight](../ThreadedNutPreflight.md) | Allocation-free body, cutter, and end-face facts resolved for a threaded nut. |
74
+ | [ThreadedNutPreflight](../ThreadedNutPreflight.md) | Resolved body and end-face dimensions plus conservative allocation estimates for the thread cutter. |
68
75
  | [ThreadedRodOptions](../ThreadedRodOptions.md) | Options for a compensated external threaded rod along +Z. |
69
76
  | [ThreadEndTreatmentOptions](../ThreadEndTreatmentOptions.md) | Axial end controls for a generated ridge. |
70
77
  | [ThreadHelixOptions](../ThreadHelixOptions.md) | Conventional helix options: `pitch` is adjacent spacing and lead is `pitch * starts`. |
@@ -77,10 +84,11 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
77
84
 
78
85
  | API | Summary |
79
86
  | --- | --- |
87
+ | [KnuckleHingeSpec](../KnuckleHingeSpec.md) | Knuckle-joint construction modes and interval ownership. |
80
88
  | [ButtressPressureFlankSide](../ButtressPressureFlankSide.md) | Axial side carrying the near-normal pressure flank of a buttress thread. |
81
89
  | [ClearanceHoleFit](../ClearanceHoleFit.md) | Common clearance-hole fit categories, ordered from smallest to largest. |
82
90
  | [CylindricalGearMeshKind](../CylindricalGearMeshKind.md) | Whether two cylindrical gears mesh on their outside teeth or as a pinion inside a ring. |
83
- | [MetricFastenerSize](../MetricFastenerSize.md) | Metric fastener sizes included in the first mechanical standards table. |
91
+ | [MetricFastenerSize](../MetricFastenerSize.md) | Supported metric fastener sizes. |
84
92
  | [PrintableThreadFit](../PrintableThreadFit.md) | Named baseline fit policies for calibrated FDM-style printed threads. |
85
93
  | [ThreadedNutBevel](../ThreadedNutBevel.md) | Nut-edge bevel selection. |
86
94
  | [ThreadedNutShape](../ThreadedNutShape.md) | Supported printable nut body shapes. |
@@ -98,4 +106,8 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
98
106
  | [METRIC_FASTENER_STANDARDS](../METRIC_FASTENER_STANDARDS.md) | Curated metric modeling dimensions for clearance holes, regular hex nuts, and socket-head cap screws. |
99
107
  | [PRINTABLE_THREAD_FIT_POLICIES](../PRINTABLE_THREAD_FIT_POLICIES.md) | Conservative baseline print-fit policies in millimetres. |
100
108
 
101
- Package: `@metamesh/modeling@0.15.0`.
109
+ ## Guides
110
+
111
+ - [Conservative estimates and preflight guarantees](../../../guides/concepts.md#check-preflight-guarantees)
112
+
113
+ Package: `@metamesh/modeling@0.17.0`.
@@ -2,7 +2,12 @@
2
2
 
3
3
  Build, transform, validate, analyze, and locally optimize copied indexed meshes.
4
4
 
5
- Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Closed oriented edge validation does not establish absence of self-intersections. Analysis freshly inspects caller-owned arrays. Signatures add quantized topology and a regression hash. Predictable mesh constructors reject unsafe allocations before sampling. extrudeMesh, loftMesh, sweepMesh and revolveMesh construct TriangleMesh data without a host engine. loftMesh requires a selected direct, reindex, fast-distance or distance correspondence method; LoftOptions, SweepOptions and ExtrudeOptions share the filled modeling vocabulary. Loft stations specify exactly one z or frame, retain original vertices, and interpolate slices in world coordinates. Aggregate association and grid work is bounded without fidelity reduction. validateSolidMesh adds bounded floating-point intersection and nested-shell orientation checks, including legitimate cavity boundaries; contacts within tolerance reject conservatively and work exhaustion fails explicitly. computeTriangleMeshCentroid measures the uniform-density volume centroid of consistently oriented closed geometry, including cavities.
5
+ Manufacturing meshes use `Float32Array` XYZ positions and `Uint32Array` triangle indices. Analysis freshly inspects caller-owned arrays; signatures add quantized topology and a regression hash. Predictable constructors reject unsafe allocations before sampling.
6
+
7
+ - **Construct:** `extrudeMesh`, `loftMesh`, `sweepMesh`, and `revolveMesh` return `TriangleMesh` data without a host engine. `LoftOptions`, `SweepOptions`, and `ExtrudeOptions` share the filled modeling vocabulary.
8
+ - **Match lofts:** `loftMesh` requires a `direct`, `reindex`, `fast-distance`, or `distance` method. Stations specify exactly one `z` or `frame`, retain original vertices, and interpolate slices in world coordinates. Association and grid work are bounded without reducing fidelity.
9
+ - **Validate:** closed oriented-edge checks do not establish freedom from self-intersections. `validateSolidMesh` adds bounded floating-point intersection and nested-shell orientation checks, including cavity boundaries. Contacts within tolerance reject conservatively; exhausted work limits fail explicitly.
10
+ - **Measure:** `computeTriangleMeshCentroid` returns the uniform-density volume centroid of consistently oriented closed geometry, including cavities.
6
11
 
7
12
  ## Functions
8
13
 
@@ -10,26 +15,26 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
10
15
  | --- | --- |
11
16
  | [analyzeTriangleMesh](../analyzeTriangleMesh.md) | Validates and measures a mesh in one position and one triangle traversal. |
12
17
  | [analyzeTriangleMeshQuality](../analyzeTriangleMeshQuality.md) | Measures triangle shape, edge topology, vertex concentration, and connected planar patches. |
13
- | [heightfieldMesh](../heightfieldMesh.md) | Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base. Heights run once per grid point after preflight; center-error adds one evaluation per cell. Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks. |
18
+ | [heightfieldMesh](../heightfieldMesh.md) | Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base. |
14
19
  | [computeTriangleMeshSignature](../computeTriangleMeshSignature.md) | Creates an order-independent regression signature for a manufacturing mesh. |
15
20
  | [joinTriangleMeshes](../joinTriangleMeshes.md) | Concatenates meshes into one indexed mesh without welding coincident vertices. |
16
21
  | [extrudeMesh](../extrudeMesh.md) | Linearly extrudes one simple profile along +Z with robust ear-clipped caps. Path2 profiles must be closed; raw point collections have an implicit closing edge. |
17
22
  | [loftMesh](../loftMesh.md) | Lofts simple point loops at z heights or explicit right-handed frames, in input order. |
18
- | [preflightHeightfield](../preflightHeightfield.md) | Checks grid dimensions, coordinate precision, and allocation bounds before evaluating heights. |
23
+ | [preflightHeightfield](../preflightHeightfield.md) | Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts. |
19
24
  | [reverseTriangleMesh](../reverseTriangleMesh.md) | Returns a copy of a mesh with every triangle winding reversed. |
20
25
  | [sweepMesh](../sweepMesh.md) | Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam. |
21
26
  | [transformTriangleMesh](../transformTriangleMesh.md) | Applies an affine transform to a mesh and preserves outward face orientation. |
22
27
  | [validateTriangleMesh](../validateTriangleMesh.md) | Validates mesh buffers, indices, triangle area, and optionally closed topology. |
23
28
  | [optimizePlanarPatches](../optimizePlanarPatches.md) | Improves pathological planar triangulation with bounded legal diagonal flips. |
24
29
  | [resolveExtrusionDivisions](../resolveExtrusionDivisions.md) | Resolves intermediate profile copies for linear extrusion from physical curve resolution. |
25
- | [validateSolidMesh](../validateSolidMesh.md) | Checks closed indexed topology, triangle intersections, and alternating nested shell orientation. Outward exterior shells and inward cavity shells are accepted. Separate shells must not touch, intersect, or overlap as material. Indexed neighbours may share their own vertex or edge. |
26
- | [computeTriangleMeshCentroid](../computeTriangleMeshCentroid.md) | Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells. Coordinates are millimetres. Indexed closure and positive aggregate volume are required; callers may use validateSolidMesh first when geometric intersections and shell orientation are untrusted. Fresh mutable input is inspected on every call, and buffers are never changed. |
30
+ | [validateSolidMesh](../validateSolidMesh.md) | Checks closed indexed topology, triangle intersections, and alternating nested shell orientation. |
31
+ | [computeTriangleMeshCentroid](../computeTriangleMeshCentroid.md) | Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells. |
27
32
 
28
33
  ## Interfaces
29
34
 
30
35
  | API | Summary |
31
36
  | --- | --- |
32
- | [HeightfieldPreflight](../HeightfieldPreflight.md) | Predictable rectilinear-grid allocation facts; this does not evaluate the height callback. |
37
+ | [HeightfieldPreflight](../HeightfieldPreflight.md) | Exact grid and mesh buffer allocation counts resolved without evaluating the height callback. |
33
38
  | [PlanarMeshOptimizationOptions](../PlanarMeshOptimizationOptions.md) | Options controlling bounded, connectivity-only optimization of planar triangle patches. |
34
39
  | [PlanarMeshOptimizationResult](../PlanarMeshOptimizationResult.md) | Outcome of bounded planar-patch optimization, including before/after diagnostics. |
35
40
  | [RevolveOptions](../RevolveOptions.md) | Circumferential sampling and degree sweep shared by pure and filled revolution. |
@@ -69,4 +74,8 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
69
74
  | [meshBounds](../meshBounds.md) | Computes axis-aligned bounds for a non-empty mesh. |
70
75
  | [revolveMesh](../revolveMesh.md) | Revolves a non-duplicated closed `[radius, z]` profile around +Z. |
71
76
 
72
- Package: `@metamesh/modeling@0.15.0`.
77
+ ## Guides
78
+
79
+ - [Exact counts and preflight guarantees](../../../guides/concepts.md#check-preflight-guarantees)
80
+
81
+ Package: `@metamesh/modeling@0.17.0`.
@@ -1,8 +1,10 @@
1
- # Pattern Placement
1
+ # Pattern placement
2
2
 
3
3
  Calculate pure linear, radial, grid, and path transforms.
4
4
 
5
- Pure pattern transforms use the same counts, spacing, centering and frames as root pattern operations. Transform3Matrix values can place points, meshes or explicit geometry without a native engine. Linear and grid spacing use millimetres; radial angles use degrees. Paths use physical arc-length intervals and omit the seam when closed.
5
+ Pure pattern transforms share counts, spacing, centering, and frames with root pattern operations. Use `Transform3Data` to place points, meshes, or explicit geometry without a native engine.
6
+
7
+ Linear and grid spacing use millimetres; radial angles use degrees. Paths use physical arc-length intervals and omit the repeated seam when closed.
6
8
 
7
9
  ## Functions
8
10
 
@@ -11,7 +13,7 @@ Pure pattern transforms use the same counts, spacing, centering and frames as ro
11
13
  | [linearPatternTransforms](../linearPatternTransforms.md) | Spatial XYZ matrix placements in millimetres, including the original at the origin. |
12
14
  | [radialPatternTransforms](../radialPatternTransforms.md) | Rotations about an explicit axis; angles use degrees and the first placement is identity. |
13
15
  | [gridPatternTransforms](../gridPatternTransforms.md) | Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. |
14
- | [pathPatternTransforms](../pathPatternTransforms.md) | Equal physical arc-length placements along a sampled XYZ path. Tangent orientation maps +Z onto the local path tangent; fixed orientation only translates. Closed paths omit a repeated seam. Explicit sampling ceilings bound both input points and output placements. |
16
+ | [pathPatternTransforms](../pathPatternTransforms.md) | Equal physical arc-length placements along a sampled XYZ path. |
15
17
 
16
18
  ## Interfaces
17
19
 
@@ -31,4 +33,4 @@ Pure pattern transforms use the same counts, spacing, centering and frames as ro
31
33
 
32
34
  - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
33
35
 
34
- Package: `@metamesh/modeling@0.15.0`.
36
+ Package: `@metamesh/modeling@0.17.0`.
@@ -2,7 +2,13 @@
2
2
 
3
3
  Share one option contract for dimensional primitives and edge treatments.
4
4
 
5
- Dimensional shapes share object options, millimetre units and explicit placement. Boxes use scalar or XYZ size; cylinders use scalar or bottom/top radii and independent end treatments. Circular shapes share exact segments, physical resolution and vertex/face radial sizing where applicable. EdgeTreatment distinguishes circular radius from equal or unequal setbacks, smooth cubic transitions and exact custom setback profiles. PrimitiveAttachmentOptions maps a local anchor to a target with alignment, gap and degree spin.
5
+ Dimensional shapes share object options, millimetre units, and explicit placement:
6
+
7
+ - Boxes use a scalar or XYZ size.
8
+ - Cylinders use uniform or bottom/top radii and independent end treatments.
9
+ - Circular shapes share exact segments, physical resolution, and vertex/face radial sizing where applicable.
10
+ - `EdgeTreatment` distinguishes circular radius, equal or unequal setbacks, smooth cubic transitions, and exact custom setback profiles.
11
+ - `PrimitiveAttachmentOptions` maps a local anchor to a target with alignment, gap, and degree spin.
6
12
 
7
13
  ## Interfaces
8
14
 
@@ -33,4 +39,4 @@ Dimensional shapes share object options, millimetre units and explicit placement
33
39
  | [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
34
40
  | [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
35
41
 
36
- Package: `@metamesh/modeling@0.15.0`.
42
+ Package: `@metamesh/modeling@0.17.0`.
@@ -2,7 +2,12 @@
2
2
 
3
3
  Define winding, holes, stable profile landmarks, and reusable planar boundaries.
4
4
 
5
- Outer contours are counterclockwise and holes clockwise in Y-up coordinates, with implicit closing edges. Contour factories return point data; regularPolygonContour uses degree rotation and explicit vertex/face sizing. Path2.transform preserves traversal, while transformRegionData accepts a Transform2 placement or canonical Transform2Matrix data and retains reflection-safe filled winding. Use Section.transform for ordinary filled-shape authoring; transformRegionData serves serialized data preparation. `rectangleProfile({ size, treatment, id })` returns identified spans for family matching, not sampled points. Profile families preserve component, contour and span identities; matchProfiles returns CorrespondingProfile values with stable shared landmarks. No automatic topology guessing or reordering occurs. closeToAxis closes an open upward radius/height outline into a solid-body contour; hollow walls and bores require explicit material contours.
5
+ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, with implicit closing edges.
6
+
7
+ - **Contours:** factories return point data. `regularPolygonContour` uses degree rotation and explicit vertex/face sizing.
8
+ - **Transforms:** `Path2.transform()` preserves traversal. `transformRegionData` accepts a `Transform2` or canonical `Transform2Data`, preserving filled winding after reflection. Use `Section.transform()` for filled-shape authoring and `transformRegionData` for serialized data preparation.
9
+ - **Profile families:** `rectangleProfile({ size, treatment, id })` returns identified spans. Families preserve component, contour, and span identities; `matchProfiles` creates `CorrespondingProfile` values with shared landmarks. It does not guess topology or reorder components.
10
+ - **Side outlines:** `closeToAxis` closes an upward radius/height outline into a solid-body contour. Hollow walls and bores require explicit material contours.
6
11
 
7
12
  ## Functions
8
13
 
@@ -10,20 +15,20 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
10
15
  | --- | --- |
11
16
  | [ellipseContour](../ellipseContour.md) | Creates an immutable centered CCW ellipse with +X seam within the selected sampling ceiling. |
12
17
  | [contourContainsPoint](../contourContainsPoint.md) | Returns true when a point lies inside or on the boundary of a loop. |
13
- | [matchProfiles](../matchProfiles.md) | Explicitly matches identified component/contour/span topology across a family. Every paired span uses the maximum physical subdivision count requested by any member. Cubics share a checked uniform parameter grid, including grids selected by exact paired requests. Input order and winding are preserved. Collapsed spans retain repeated logical slots, which the engine maps to shared physical vertices while omitting degenerate faces. |
18
+ | [matchProfiles](../matchProfiles.md) | Explicitly matches identified component/contour/span topology across a family. |
14
19
  | [normalizeContour](../normalizeContour.md) | Cleans and validates one closed loop. |
15
20
  | [normalizePolygon](../normalizePolygon.md) | Validates explicit polygon topology and normalizes its winding. |
16
21
  | [normalizeRegion](../normalizeRegion.md) | Validates a disjoint explicit region and returns immutable normalized data. Previously validated immutable results may be returned unchanged under the same tolerance policy. |
17
- | [rectangleContour](../rectangleContour.md) | Creates an immutable CCW rectangle loop. Round radius zero is square; tangent saturated endpoints occur once. |
22
+ | [rectangleContour](../rectangleContour.md) | Creates an immutable sampled CCW rectangle boundary. Round radius zero is square; tangent saturated endpoints occur once. |
18
23
  | [regionArea](../regionArea.md) | Returns the total filled area of a normalized region in square millimetres. |
19
24
  | [regionBounds](../regionBounds.md) | Returns finite axis-aligned bounds for a non-empty region. |
20
25
  | [rectangleProfile](../rectangleProfile.md) | Creates an identified rectangle whose edge/corner spans survive zero and saturated round radii. Outer winding is CCW. |
21
- | [sampleSideProfile](../sampleSideProfile.md) | Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline. Anchors must progress strictly upward; nonnegative-radius cubic controls must have ordered heights between their endpoints. Cubics use de Casteljau subdivision with a conservative control-hull chord-error bound. Lines also obey the optional physical edge-length ceiling. Neither normalized coordinates nor editor metadata are required. Endpoints are retained once; no axis closure, winding normalization, or manufacturing repair is performed. |
22
- | [sampleContour](../sampleContour.md) | Samples 2–32 connected line/cubic segments into a simple, nonzero-area, immutable CCW XY loop. Physical scaling precedes adaptive curve sampling; the final end must repeat start exactly. Shared anchors and the closing seam are emitted once. Winding normalization may change the starting vertex. The sampled loop is checked for self-intersection and degeneracy by `normalizeContour`; this is a single contour without holes. No editor modes or normalized coordinate range are required. No native engine, SDK, or ambient resolution is used. |
26
+ | [sampleSideProfile](../sampleSideProfile.md) | Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline. |
27
+ | [sampleContour](../sampleContour.md) | Samples 2–32 connected line/cubic segments into a simple, nonzero-area, immutable CCW XY loop. |
23
28
  | [signedContourArea](../signedContourArea.md) | Returns the signed area of a non-duplicated loop; positive means CCW. |
24
29
  | [transformRegionData](../transformRegionData.md) | Transforms serialized polygon data with reflection-safe winding, without an engine. Use Section.transform(placement) when authoring filled geometry; this utility serves pure data preparation. |
25
30
  | [triangulateContour](../triangulateContour.md) | Ear-clips one normalized simple CCW loop into stable local vertex indices. |
26
- | [closeToAxis](../closeToAxis.md) | Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once. Returns a counterclockwise filled-boundary contour without a repeated seam vertex. Radii must be nonnegative; the result must enclose nonzero area without touching itself. This is a solid-body closure, not a hollow-wall or mounting-bore construction. |
31
+ | [closeToAxis](../closeToAxis.md) | Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. |
27
32
 
28
33
  ## Interfaces
29
34
 
@@ -35,10 +40,10 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
35
40
  | [ContourCurve](../ContourCurve.md) | One explicitly closed planar contour, independent of editor metadata and parameter contracts. |
36
41
  | [ContourPoint](../ContourPoint.md) | Planar X and upward Y in millimetres, or in units converted by sampling scales. |
37
42
  | [SideProfilePoint](../SideProfilePoint.md) | Radius and upward height in millimetres, or in units converted by sampling scales. |
38
- | [PolygonData](../PolygonData.md) | One bounded two-dimensional polygon. |
39
- | [Profile](../Profile.md) | An explicit component/contour/span topology, before shared family sampling. |
43
+ | [PolygonData](../PolygonData.md) | One filled two-dimensional polygon with an exterior and optional holes. |
44
+ | [Profile](../Profile.md) | An explicit component/contour/span topology, before shared family sampling with matchProfiles. Component, contour and span identities establish correspondence across a loft or sweep family. |
40
45
  | [ProfileComponent2](../ProfileComponent2.md) | One component and its explicitly identified holes. |
41
- | [ProfileContour2](../ProfileContour2.md) | Ordered, closed spans. Outer winding is CCW and hole winding is CW. |
46
+ | [ProfileContour2](../ProfileContour2.md) | An identified closed boundary of curve spans, before shared family sampling. Outer winding is CCW and hole winding is CW. matchProfiles retains span identities in sampled contours. |
42
47
  | [RectangleContourOptions](../RectangleContourOptions.md) | Shared rectangle dimensions, origin and uniform or per-corner treatment. |
43
48
  | [RectangleProfileOptions](../RectangleProfileOptions.md) | Shared rectangle options with an identified component for explicit profile families. |
44
49
  | [SampleSideProfileOptions](../SampleSideProfileOptions.md) | Physical scaling and bounded adaptive subdivision for an open profile. |
@@ -53,12 +58,12 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
53
58
  | --- | --- |
54
59
  | [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
55
60
  | [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
56
- | [Contour](../Contour.md) | A closed two-dimensional boundary whose first point is not repeated at the end. |
61
+ | [Contour](../Contour.md) | A sampled closed two-dimensional boundary whose first point is not repeated at the end. |
57
62
  | [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at an explicit height or right-handed spatial frame. |
58
63
  | [ContourSegment](../ContourSegment.md) | Straight or cubic Bézier segment in one closed planar contour. |
59
64
  | [SideProfileSegment](../SideProfileSegment.md) | One straight or cubic segment of an open, upward-progressing radius/height outline. |
60
65
  | [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
61
- | [RegionData](../RegionData.md) | A two-dimensional region represented by disjoint filled polygons. |
66
+ | [RegionData](../RegionData.md) | A two-dimensional region represented by disjoint filled polygons. Each PolygonData owns one exterior and its holes; an empty region contains no material. |
62
67
  | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
63
68
  | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
64
69
 
@@ -70,4 +75,8 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
70
75
  | [regularPolygonContour](../regularPolygonContour.md) | Creates a centered CCW point loop with vertex or face radial sizing and an implicit seam. |
71
76
  | [starContour](../starContour.md) | Creates a centered CCW alternating-radius star within the selected profile sampling ceiling. |
72
77
 
73
- Package: `@metamesh/modeling@0.15.0`.
78
+ ## Guides
79
+
80
+ - [Choose a geometry representation](../../../guides/concepts.md#geometry-vocabulary)
81
+
82
+ Package: `@metamesh/modeling@0.17.0`.
@@ -2,16 +2,19 @@
2
2
 
3
3
  Resolve physical sampling, numerical tolerances, and contextual failures.
4
4
 
5
- Defaults are 0.05 mm maximum circular chord error and 16–512 segments per complete circle. Face-sized circular sampling bounds outward radial excess and actual edge lengths. Exact local counts win. Algorithm limits fail explicitly. GeometryError supplies structured codes and operation context; no ambient resolution state exists.
5
+ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per complete circle. Face-sized circular sampling bounds outward radial excess and actual edge lengths. `resolveCircularSampling` returns the full-circle count and sampled vertex/face radii without constructing boundary points; `circleContour` uses the same calculation. Exact local counts take precedence.
6
+
7
+ Algorithm limits fail explicitly. `GeometryError` provides structured codes and operation context; resolution has no ambient state.
6
8
 
7
9
  ## Functions
8
10
 
9
11
  | API | Summary |
10
12
  | --- | --- |
11
- | [isGeometryError](../isGeometryError.md) | Recognizes structured geometry errors from separately bundled Modeling copies in the same realm. Ordinary errors and unmarked code-shaped objects are rejected. The marker is execution-local and does not survive structured cloning; worker protocols carry their own serialized error envelope. |
13
+ | [isGeometryError](../isGeometryError.md) | Recognizes structured geometry errors from separately bundled Modeling copies in the same realm. |
12
14
  | [resolveAlignedCircularSegments](../resolveAlignedCircularSegments.md) | Resolves a deterministic full-circle count aligned to reusable topology factors. |
13
15
  | [resolveArcSegments](../resolveArcSegments.md) | Resolves the number of segments needed for a circular arc. |
14
16
  | [resolveCircularSegments](../resolveCircularSegments.md) | Resolves a deterministic full-circle segment count for one radius. |
17
+ | [resolveCircularSampling](../resolveCircularSampling.md) | Resolves circular sampling and its actual radial envelopes without allocating boundary points. |
15
18
  | [resolveGeometryTolerance](../resolveGeometryTolerance.md) | Resolves comparison tolerances for a characteristic model scale. |
16
19
 
17
20
  ## Classes
@@ -26,6 +29,7 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
26
29
  | --- | --- |
27
30
  | [AlignedCircularSegmentsOptions](../AlignedCircularSegmentsOptions.md) | Controls full-circle sampling that must satisfy one or more topology alignments. |
28
31
  | [CircularResolutionOptions](../CircularResolutionOptions.md) | Circular sampling measured from the nominal inscribed or circumscribed radius. |
32
+ | [CircularSampling](../CircularSampling.md) | Full-circle count and radial envelopes of its regular sampled polygon, in millimetres. |
29
33
  | [GeometryErrorContext](../GeometryErrorContext.md) | Serializable context attached to a geometry failure. |
30
34
  | [GeometryResolution](../GeometryResolution.md) | Tessellation policy for sampled geometry measured in millimetres. |
31
35
  | [GeometryToleranceOptions](../GeometryToleranceOptions.md) | Optional overrides for MetaMesh's geometry comparison policy. |
@@ -36,6 +40,7 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
36
40
 
37
41
  | API | Summary |
38
42
  | --- | --- |
43
+ | [CircularSamplingOptions](../CircularSamplingOptions.md) | Nominal circle size and explicit physical sampling; supply exactly one radius or diameter. |
39
44
  | [GeometryErrorCode](../GeometryErrorCode.md) | Stable categories for invalid inputs, topology, allocation, and runtime failures. |
40
45
 
41
46
  ## Values
@@ -44,4 +49,4 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
44
49
  | --- | --- |
45
50
  | [DEFAULT_GEOMETRY_TOLERANCE](../DEFAULT_GEOMETRY_TOLERANCE.md) | Default absolute, relative, and angular tolerances for millimetre-scale models. |
46
51
 
47
- Package: `@metamesh/modeling@0.15.0`.
52
+ Package: `@metamesh/modeling@0.17.0`.
@@ -2,16 +2,24 @@
2
2
 
3
3
  Build immutable reusable placements and calculate with fluent vectors or tuple kernels.
4
4
 
5
- Use immutable vector2/vector3 and transform2/transform3 values for ordinary authoring. Operations return new values; tuples remain convenient inputs. dot, length and distance return numbers; cross returns a signed scalar in 2D and a right-handed vector in 3D. Normalization rejects zero vectors; fluent values reject nonfinite inputs and results. Rotations use degrees and named optional `{ pivot }` points in world coordinates. Calls and andThen composition apply in execution order. Points include translation; directions exclude it and retain scale; normals use inverse-transpose normalization. Shape methods and path helpers accept matching transforms directly. toArray and toMatrix serve interchange using Vector2Tuple/Vector3Tuple and canonical Transform2Matrix/Transform3Matrix data. to3D/to2D convert dimensions explicitly; XY restriction requires a preserved plane. Raw tuple kernels avoid fluent object allocation in hot loops, and matrix constructors provide lower-level interoperability. rotationTransform3 requires an explicit degrees or radians object; composeTransform3(after, before) applies before first. Attachment matches source and target frames; physical clearance is an application decision.
5
+ Use immutable `vector2`/`vector3` and `transform2`/`transform3` values for ordinary authoring. Operations return new values; tuples remain convenient inputs.
6
+
7
+ - **Arithmetic:** `dot()`, `length()`, and `distance()` return numbers. `cross()` returns a signed scalar in 2D and a right-handed vector in 3D. Normalization rejects zero vectors; fluent values reject nonfinite inputs and results.
8
+ - **Order and units:** rotations use degrees and optional `{ pivot }` points in world coordinates. Calls and `andThen()` composition apply in execution order.
9
+ - **Transformed values:** points include translation; directions exclude it and retain scale; normals use inverse-transpose normalization. Shape methods and path helpers accept matching transforms.
10
+ - **Interchange:** `toData()` returns `Vector2Data`/`Vector3Data` tuples or `Transform2Data`/`Transform3Data` matrices. `to3D()`/`to2D()` convert dimensions explicitly; XY restriction requires a preserved plane.
11
+ - **Low-level work:** tuple kernels avoid fluent object allocation in hot loops. Matrix constructors support interoperability. `rotationTransform3` requires an explicit degrees or radians object; `composeTransform3(after, before)` applies `before` first.
12
+
13
+ Attachment matches source and target frames. You choose physical clearance.
6
14
 
7
15
  ## Functions
8
16
 
9
17
  | API | Summary |
10
18
  | --- | --- |
11
- | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. Matrices are copied and validated. Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ. Zero scales and singular matrices throw GeometryError; negative scales reflect. |
12
- | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. Matrices are copied and validated. Calls apply in written order; rotations use degrees and pivots use current world coordinates. Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError. Use frameTransform3(frame) as the input for existing orthonormal frame placement. |
13
- | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform2().applyDirection(value) for rotations and nonuniform scaling. |
14
- | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform3().applyDirection(value) for rotations and nonuniform scaling. |
19
+ | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. |
20
+ | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. |
21
+ | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. |
22
+ | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. |
15
23
  | [applyTransformDirection3](../applyTransformDirection3.md) | Applies only the linear component of an affine transform to a direction. |
16
24
  | [applyTransformPoint3](../applyTransformPoint3.md) | Applies an affine transform to a point, including translation. |
17
25
  | [attachmentTransform3](../attachmentTransform3.md) | Builds the transform that moves a source anchor onto a target anchor. |
@@ -54,10 +62,10 @@ Use immutable vector2/vector3 and transform2/transform3 values for ordinary auth
54
62
  | [AxisAngleRotation3](../AxisAngleRotation3.md) | One explicitly unit-labelled right-handed axis-angle rotation. |
55
63
  | [BoxAnchorFace](../BoxAnchorFace.md) | Named face on an axis-aligned box. |
56
64
  | [CylinderAnchorFace](../CylinderAnchorFace.md) | Named face on a cylinder parallel to +Z. |
57
- | [Transform2Matrix](../Transform2Matrix.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
58
- | [Transform3Matrix](../Transform3Matrix.md) | A row-major affine 4x4 matrix applied to column vectors. |
59
- | [Vector2Tuple](../Vector2Tuple.md) | A two-dimensional Cartesian vector or point. |
60
- | [Vector3Tuple](../Vector3Tuple.md) | A three-dimensional Cartesian vector or point. |
65
+ | [Transform2Data](../Transform2Data.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
66
+ | [Transform3Data](../Transform3Data.md) | A row-major affine 4x4 matrix applied to column vectors. |
67
+ | [Vector2Data](../Vector2Data.md) | A two-dimensional Cartesian vector or point. |
68
+ | [Vector3Data](../Vector3Data.md) | A three-dimensional Cartesian vector or point. |
61
69
 
62
70
  ## Values
63
71
 
@@ -76,8 +84,8 @@ Use immutable vector2/vector3 and transform2/transform3 values for ordinary auth
76
84
  | [length2](../length2.md) | Returns Euclidean vector length in the vector's coordinate units. |
77
85
  | [lerp3](../lerp3.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
78
86
  | [lerp2](../lerp2.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
79
- | [normalize3](../normalize3.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
80
- | [normalize2](../normalize2.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
87
+ | [normalize3](../normalize3.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). |
88
+ | [normalize2](../normalize2.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). |
81
89
  | [projectOntoPlane3](../projectOntoPlane3.md) | Removes the component parallel to a normalized plane normal. |
82
90
  | [rotate2](../rotate2.md) | Rotates a finite vector counter-clockwise in XY by `degrees` about the origin. Throws `NON_FINITE_VALUE` for nonfinite coordinates, angles, or derived coordinates. |
83
91
  | [scale3](../scale3.md) | Multiplies a vector by a dimensionless scalar. |
@@ -88,5 +96,6 @@ Use immutable vector2/vector3 and transform2/transform3 values for ordinary auth
88
96
  ## Guides
89
97
 
90
98
  - [Reusable transforms and vector math](../../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
99
+ - [Fluent values and tuple kernels](../../../guides/concepts.md#choose-fluent-values-or-standalone-algorithms)
91
100
 
92
- Package: `@metamesh/modeling@0.15.0`.
101
+ Package: `@metamesh/modeling@0.17.0`.
@@ -2,16 +2,18 @@
2
2
 
3
3
  Parse bounded painted SVG and carry explicit prepared text geometry.
4
4
 
5
- SVG input is bounded and rejects unsupported resources or content contextually. Transforms and physical unit conversion precede sampling; input Y-down coordinates convert to model Y-up. Font preparation belongs to the optional text entrypoint and never enters pure parsing or synchronous modeling. fitTextLayout uniformly fits and centers visible ink before sampling, preserving final millimetre tolerance. It rejects invisible layouts; maxScale: 1 prevents enlargement.
5
+ SVG parsing bounds input and reports unsupported resources or content with context. Transforms and physical unit conversion precede sampling; Y-down input converts to model Y-up coordinates.
6
+
7
+ Font preparation belongs to the optional text entry point, outside pure parsing and synchronous modeling. `fitTextLayout` uniformly fits and centers visible ink before sampling, preserving final millimetre tolerance. It rejects invisible layouts; `maxScale: 1` prevents enlargement.
6
8
 
7
9
  ## Functions
8
10
 
9
11
  | API | Summary |
10
12
  | --- | --- |
11
- | [preflightSvgRegion](../preflightSvgRegion.md) | Preflights bounded SVG geometry without browser or Manifold dependencies. |
13
+ | [preflightSvgRegion](../preflightSvgRegion.md) | Parses and validates bounded SVG input, constructing its normalized sampled region and diagnostics. |
12
14
  | [sampleTextContours](../sampleTextContours.md) | Samples a prepared text layout without shaping text again or loading a font. |
13
15
  | [strokeRegionData](../strokeRegionData.md) | Converts a sampled millimetre path into the filled region covered by a centered stroke. |
14
- | [fitTextLayout](../fitTextLayout.md) | Uniformly fits visible text ink inside finite XY bounds, centering it on the target. Transforms retained vector paths before sampling, so later textSection/sampleTextContours resolution remains in final millimetres. Logical advances scale without translation; line count is unchanged. The input layout is preserved. |
16
+ | [fitTextLayout](../fitTextLayout.md) | Uniformly fits visible text ink inside finite XY bounds, centering it on the target. |
15
17
 
16
18
  ## Interfaces
17
19
 
@@ -19,7 +21,7 @@ SVG input is bounded and rejects unsupported resources or content contextually.
19
21
  | --- | --- |
20
22
  | [StrokeOptions](../StrokeOptions.md) | Physical stroke and topology controls shared by pure regions and native Sections. |
21
23
  | [SvgImportOptions](../SvgImportOptions.md) | Sampling controls for deterministic SVG-to-region conversion. |
22
- | [SvgRegionPreflight](../SvgRegionPreflight.md) | Exact normalized SVG region plus bounded source, geometry, and safe-repair diagnostics. |
24
+ | [SvgRegionPreflight](../SvgRegionPreflight.md) | Normalized sampled SVG region plus bounded source, geometry, and safe-repair diagnostics. |
23
25
  | [SvgRegionPreflightRepairs](../SvgRegionPreflightRepairs.md) | Visible, appearance-preserving cleanup counters from bounded SVG import. |
24
26
  | [VectorTextArcBaseline](../VectorTextArcBaseline.md) | A circular baseline centered at the XY origin, with rigid shaped glyph groups. |
25
27
  | [VectorTextLayout](../VectorTextLayout.md) | Immutable vector layout with no browser, font parser, or kernel ownership. |
@@ -37,4 +39,8 @@ SVG input is bounded and rejects unsupported resources or content contextually.
37
39
  | [StrokeCap](../StrokeCap.md) | End-cap treatment for an open stroked path. |
38
40
  | [StrokeJoin](../StrokeJoin.md) | Join treatment where adjacent stroked path segments meet. |
39
41
 
40
- Package: `@metamesh/modeling@0.15.0`.
42
+ ## Guides
43
+
44
+ - [SVG preflight work and guarantees](../../../guides/concepts.md#check-preflight-guarantees)
45
+
46
+ Package: `@metamesh/modeling@0.17.0`.
@@ -30,4 +30,8 @@ circleContour({ diameter: 20, segments: 32 });
30
30
  - [CircleContourOptions](CircleContourOptions.md)
31
31
  - [Contour](Contour.md)
32
32
 
33
- Package: `@metamesh/modeling@0.15.0`.
33
+ ## Guides
34
+
35
+ - [Choose a geometry representation](../../guides/concepts.md#geometry-vocabulary)
36
+
37
+ Package: `@metamesh/modeling@0.17.0`.
@@ -1,16 +1,21 @@
1
1
  # closeToAxis
2
2
 
3
- Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once. Returns a counterclockwise filled-boundary contour without a repeated seam vertex. Radii must be nonnegative; the result must enclose nonzero area without touching itself. This is a solid-body closure, not a hollow-wall or mounting-bore construction.
3
+ Closes an open, strictly upward [radius, height] side outline to the radius-zero axis.
4
4
 
5
- **closeToAxis**(`side`: readonly [`Vector2Tuple`](Vector2Tuple.md)[], `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>): [`Contour`](Contour.md)
5
+ **closeToAxis**(`side`: readonly [`Vector2Data`](Vector2Data.md)[], `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>): [`Contour`](Contour.md)
6
6
 
7
7
 
8
8
 
9
+ Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once.
10
+ Returns a counterclockwise filled-boundary contour without a repeated seam vertex.
11
+ Radii must be nonnegative; the result must enclose nonzero area without touching itself.
12
+ This is a solid-body closure, not a hollow-wall or mounting-bore construction.
13
+
9
14
  ## Parameters
10
15
 
11
16
  <a id="side"></a>
12
17
 
13
- **`side`** · readonly [`Vector2Tuple`](Vector2Tuple.md)[] · Required
18
+ **`side`** · readonly [`Vector2Data`](Vector2Data.md)[] · Required
14
19
 
15
20
 
16
21
 
@@ -29,6 +34,10 @@ Closes an open, strictly upward [radius, height] side outline to the radius-zero
29
34
 
30
35
  - [Contour](Contour.md)
31
36
  - [GeometrySamplingLimits](GeometrySamplingLimits.md)
32
- - [Vector2Tuple](Vector2Tuple.md)
37
+ - [Vector2Data](Vector2Data.md)
38
+
39
+ ## Guides
40
+
41
+ - [Choose a geometry representation](../../guides/concepts.md#geometry-vocabulary)
33
42
 
34
- Package: `@metamesh/modeling@0.15.0`.
43
+ Package: `@metamesh/modeling@0.17.0`.
@@ -48,4 +48,8 @@ allowances as radial mating clearance.
48
48
  - [CompensatedThreadDiameters](CompensatedThreadDiameters.md)
49
49
  - [ThreadCompensationOptions](ThreadCompensationOptions.md)
50
50
 
51
- Package: `@metamesh/modeling@0.15.0`.
51
+ ## Guides
52
+
53
+ - [Conservative estimates and preflight guarantees](../../guides/concepts.md#check-preflight-guarantees)
54
+
55
+ Package: `@metamesh/modeling@0.17.0`.
@@ -39,4 +39,8 @@ change. The returned profile is a new deeply immutable value.
39
39
 
40
40
  - [ThreadProfile](ThreadProfile-type.md)
41
41
 
42
- Package: `@metamesh/modeling@0.15.0`.
42
+ ## Guides
43
+
44
+ - [Conservative estimates and preflight guarantees](../../guides/concepts.md#check-preflight-guarantees)
45
+
46
+ Package: `@metamesh/modeling@0.17.0`.
@@ -53,4 +53,8 @@ it exactly.
53
53
 
54
54
  - [ThreadProfile](ThreadProfile-type.md)
55
55
 
56
- Package: `@metamesh/modeling@0.15.0`.
56
+ ## Guides
57
+
58
+ - [Conservative estimates and preflight guarantees](../../guides/concepts.md#check-preflight-guarantees)
59
+
60
+ Package: `@metamesh/modeling@0.17.0`.