@metamesh/modeling 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (775) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +55 -13
  3. package/dist/api/engine.d.ts +15 -7
  4. package/dist/api/geometry.d.ts +853 -562
  5. package/dist/api/index.d.ts +604 -227
  6. package/dist/api/text.d.ts +9 -7
  7. package/dist/docs/guides/concepts.md +295 -91
  8. package/dist/docs/guides/fonts.md +9 -8
  9. package/dist/docs/guides/fundamentals.md +22 -23
  10. package/dist/docs/guides/generation.md +24 -23
  11. package/dist/docs/guides/hosting.md +26 -11
  12. package/dist/docs/guides/recipes.md +74 -48
  13. package/dist/docs/guides/standalone-model.md +42 -0
  14. package/dist/docs/manifest.json +1555 -749
  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 +4 -8
  22. package/dist/docs/reference/engine/ModelSession.md +1 -1
  23. package/dist/docs/reference/engine/ModelSnapshot.md +21 -10
  24. package/dist/docs/reference/engine/SessionOptions.md +1 -1
  25. package/dist/docs/reference/engine/SnapshotPart.md +6 -3
  26. package/dist/docs/reference/engine/categories/host-lifecycle.md +7 -2
  27. package/dist/docs/reference/engine/createModelEngine.md +3 -3
  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 +4 -4
  34. package/dist/docs/reference/geometry/{Anchor3.md → Anchor3-type.md} +6 -5
  35. package/dist/docs/reference/geometry/ArcCurve2.md +11 -7
  36. package/dist/docs/reference/geometry/ArcCurve3.md +13 -9
  37. package/dist/docs/reference/geometry/{AttachTransformOptions.md → AttachOptions.md} +11 -5
  38. package/dist/docs/reference/geometry/AxisAngleRotation3.md +2 -1
  39. package/dist/docs/reference/geometry/Bounds2-type.md +127 -0
  40. package/dist/docs/reference/geometry/Bounds2Data.md +45 -0
  41. package/dist/docs/reference/geometry/Bounds2Input.md +21 -0
  42. package/dist/docs/reference/geometry/Bounds3-type.md +127 -0
  43. package/dist/docs/reference/geometry/Bounds3Data.md +45 -0
  44. package/dist/docs/reference/geometry/Bounds3Input.md +21 -0
  45. package/dist/docs/reference/geometry/BoundsFit2.md +6 -5
  46. package/dist/docs/reference/geometry/BoundsFit3.md +6 -5
  47. package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -1
  48. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +2 -1
  49. package/dist/docs/reference/geometry/BoxAnchorFace.md +2 -1
  50. package/dist/docs/reference/geometry/BoxAnchorOptions.md +5 -4
  51. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  52. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  53. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  54. package/dist/docs/reference/geometry/BoxOptions.md +10 -10
  55. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +8 -1
  56. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +5 -1
  57. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  58. package/dist/docs/reference/geometry/CircleContourOptions.md +5 -1
  59. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
  60. package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -7
  61. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +6 -1
  62. package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -1
  63. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +6 -1
  64. package/dist/docs/reference/geometry/Contour.md +10 -4
  65. package/dist/docs/reference/geometry/ContourCurve.md +5 -1
  66. package/dist/docs/reference/geometry/ContourPoint.md +6 -1
  67. package/dist/docs/reference/geometry/ContourSegment.md +5 -1
  68. package/dist/docs/reference/geometry/CorrespondingComponent.md +5 -1
  69. package/dist/docs/reference/geometry/CorrespondingContour.md +5 -1
  70. package/dist/docs/reference/geometry/CorrespondingProfile.md +5 -1
  71. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +5 -1
  72. package/dist/docs/reference/geometry/CubicBezierCurve2.md +10 -6
  73. package/dist/docs/reference/geometry/CubicBezierCurve3.md +10 -6
  74. package/dist/docs/reference/geometry/Curve2.md +5 -1
  75. package/dist/docs/reference/geometry/Curve3.md +5 -1
  76. package/dist/docs/reference/geometry/CurveSamplingOptions.md +9 -3
  77. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +7 -3
  78. package/dist/docs/reference/geometry/CylinderAnchorFace.md +2 -1
  79. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +6 -5
  80. package/dist/docs/reference/geometry/CylinderOptions.md +3 -3
  81. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +8 -3
  82. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -1
  83. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +5 -1
  84. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +7 -3
  85. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +5 -1
  86. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +6 -1
  87. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +5 -1
  88. package/dist/docs/reference/geometry/CylindricalGearSpec.md +11 -6
  89. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  90. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  91. package/dist/docs/reference/geometry/EllipseContourOptions.md +7 -3
  92. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  93. package/dist/docs/reference/geometry/ExtrudeOptions.md +10 -6
  94. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +9 -5
  95. package/dist/docs/reference/geometry/FittedTextLayout.md +7 -3
  96. package/dist/docs/reference/geometry/Frame3.md +10 -6
  97. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  98. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  99. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  100. package/dist/docs/reference/geometry/GeometryResolution.md +5 -5
  101. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +5 -1
  102. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  103. package/dist/docs/reference/geometry/GridPatternOptions.md +11 -5
  104. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +5 -1
  105. package/dist/docs/reference/geometry/HeightfieldOptions.md +9 -5
  106. package/dist/docs/reference/geometry/HeightfieldPreflight.md +9 -4
  107. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +9 -5
  108. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +10 -6
  109. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +7 -2
  110. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +4 -3
  111. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +10 -6
  112. package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +82 -0
  113. package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +148 -0
  114. package/dist/docs/reference/geometry/KnuckleHingeInterval.md +46 -0
  115. package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +51 -0
  116. package/dist/docs/reference/geometry/KnuckleHingeSpec.md +22 -0
  117. package/dist/docs/reference/geometry/LineCurve2.md +8 -4
  118. package/dist/docs/reference/geometry/LineCurve3.md +8 -4
  119. package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -5
  120. package/dist/docs/reference/geometry/LoftCorrespondence.md +6 -1
  121. package/dist/docs/reference/geometry/LoftMeshStation.md +8 -4
  122. package/dist/docs/reference/geometry/LoftOptions.md +5 -1
  123. package/dist/docs/reference/geometry/LoftPlacement.md +5 -1
  124. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +5 -1
  125. package/dist/docs/reference/geometry/MatchProfilesOptions.md +5 -1
  126. package/dist/docs/reference/geometry/MetricFastenerSize.md +9 -2
  127. package/dist/docs/reference/geometry/MetricFastenerStandard.md +5 -1
  128. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +6 -1
  129. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +6 -1
  130. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  131. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +5 -1
  132. package/dist/docs/reference/geometry/Path2-type.md +196 -0
  133. package/dist/docs/reference/geometry/Path2Data.md +50 -0
  134. package/dist/docs/reference/geometry/Path2Input.md +20 -0
  135. package/dist/docs/reference/geometry/Path3-type.md +196 -0
  136. package/dist/docs/reference/geometry/Path3Data.md +50 -0
  137. package/dist/docs/reference/geometry/Path3Input.md +20 -0
  138. package/dist/docs/reference/geometry/PathFrame.md +9 -5
  139. package/dist/docs/reference/geometry/PathLocation.md +69 -0
  140. package/dist/docs/reference/geometry/PathNormalGuide.md +10 -5
  141. package/dist/docs/reference/geometry/PathOptions.md +38 -0
  142. package/dist/docs/reference/geometry/PathPatternOptions.md +3 -3
  143. package/dist/docs/reference/geometry/PathPlacement.md +8 -4
  144. package/dist/docs/reference/geometry/PathResamplingOptions.md +84 -0
  145. package/dist/docs/reference/geometry/Pivot2Options.md +2 -1
  146. package/dist/docs/reference/geometry/Pivot3Options.md +2 -1
  147. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +8 -1
  148. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +26 -22
  149. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +5 -1
  150. package/dist/docs/reference/geometry/PlanarPatchQuality.md +7 -3
  151. package/dist/docs/reference/geometry/PolygonData.md +7 -2
  152. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -4
  153. package/dist/docs/reference/geometry/PrimitiveAttachment.md +31 -0
  154. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +104 -0
  155. package/dist/docs/reference/geometry/PrintableThreadFit.md +8 -1
  156. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +6 -1
  157. package/dist/docs/reference/geometry/Profile.md +8 -2
  158. package/dist/docs/reference/geometry/ProfileComponent2.md +5 -1
  159. package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
  160. package/dist/docs/reference/geometry/ProfileSpan2.md +7 -3
  161. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
  162. package/dist/docs/reference/geometry/RackPitchDimensions.md +6 -1
  163. package/dist/docs/reference/geometry/RackPitchSpec.md +10 -5
  164. package/dist/docs/reference/geometry/RadialPatternOptions.md +17 -22
  165. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  166. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  167. package/dist/docs/reference/geometry/RectangleContourOptions.md +7 -3
  168. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +5 -1
  169. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +5 -1
  170. package/dist/docs/reference/geometry/RectangleProfileOptions.md +7 -3
  171. package/dist/docs/reference/geometry/RegionData.md +6 -2
  172. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +7 -3
  173. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  174. package/dist/docs/reference/geometry/RevolveOptions.md +13 -4
  175. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  176. package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -1
  177. package/dist/docs/reference/geometry/SampleContourOptions.md +7 -3
  178. package/dist/docs/reference/geometry/SampleHelixOptions.md +5 -1
  179. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +7 -3
  180. package/dist/docs/reference/geometry/SampledCurve2.md +8 -4
  181. package/dist/docs/reference/geometry/SampledCurve3.md +8 -4
  182. package/dist/docs/reference/geometry/SampledThreadHelices.md +7 -3
  183. package/dist/docs/reference/geometry/SideProfileCurve.md +5 -1
  184. package/dist/docs/reference/geometry/SideProfilePoint.md +6 -1
  185. package/dist/docs/reference/geometry/SideProfileSegment.md +5 -1
  186. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  187. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +7 -3
  188. package/dist/docs/reference/geometry/SphereOptions.md +3 -3
  189. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +5 -1
  190. package/dist/docs/reference/geometry/StrokeCap.md +14 -0
  191. package/dist/docs/reference/geometry/StrokeJoin.md +14 -0
  192. package/dist/docs/reference/geometry/{StrokePathRegionOptions.md → StrokeOptions.md} +11 -7
  193. package/dist/docs/reference/geometry/SvgImportOptions.md +5 -1
  194. package/dist/docs/reference/geometry/SvgRegionPreflight.md +6 -2
  195. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +19 -15
  196. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +16 -11
  197. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +14 -9
  198. package/dist/docs/reference/geometry/SweepOptions.md +10 -6
  199. package/dist/docs/reference/geometry/SweepOrientation.md +11 -7
  200. package/dist/docs/reference/geometry/ThreadBevelOptions.md +5 -1
  201. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +9 -5
  202. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +5 -1
  203. package/dist/docs/reference/geometry/ThreadEndStyle.md +8 -1
  204. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +5 -1
  205. package/dist/docs/reference/geometry/ThreadHandedness.md +8 -1
  206. package/dist/docs/reference/geometry/ThreadHelixOptions.md +7 -3
  207. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +8 -1
  208. package/dist/docs/reference/geometry/ThreadLeadInShape.md +8 -1
  209. package/dist/docs/reference/geometry/{ThreadProfile.md → ThreadProfile-type.md} +7 -3
  210. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +5 -1
  211. package/dist/docs/reference/geometry/ThreadProfileSpec.md +5 -1
  212. package/dist/docs/reference/geometry/ThreadRole.md +8 -1
  213. package/dist/docs/reference/geometry/ThreadedNutBevel.md +8 -1
  214. package/dist/docs/reference/geometry/ThreadedNutOptions.md +10 -6
  215. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +7 -3
  216. package/dist/docs/reference/geometry/ThreadedNutShape.md +8 -1
  217. package/dist/docs/reference/geometry/ThreadedRodOptions.md +10 -6
  218. package/dist/docs/reference/geometry/TorusOptions.md +8 -8
  219. package/dist/docs/reference/geometry/Transform2-type.md +6 -5
  220. package/dist/docs/reference/geometry/Transform2Data.md +15 -0
  221. package/dist/docs/reference/geometry/Transform2Input.md +4 -3
  222. package/dist/docs/reference/geometry/Transform3-type.md +6 -5
  223. package/dist/docs/reference/geometry/Transform3Data.md +18 -0
  224. package/dist/docs/reference/geometry/Transform3Input.md +4 -3
  225. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +9 -4
  226. package/dist/docs/reference/geometry/TriangleMesh.md +6 -1
  227. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +8 -4
  228. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +5 -1
  229. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +7 -3
  230. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +7 -3
  231. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +5 -1
  232. package/dist/docs/reference/geometry/TriangleMeshSignature.md +8 -4
  233. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +8 -3
  234. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +6 -1
  235. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +5 -1
  236. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +5 -1
  237. package/dist/docs/reference/geometry/TubeOptions.md +8 -8
  238. package/dist/docs/reference/geometry/Vector2-type.md +6 -5
  239. package/dist/docs/reference/geometry/Vector2Data.md +15 -0
  240. package/dist/docs/reference/geometry/Vector2Input.md +4 -3
  241. package/dist/docs/reference/geometry/Vector3-type.md +6 -5
  242. package/dist/docs/reference/geometry/Vector3Data.md +15 -0
  243. package/dist/docs/reference/geometry/Vector3Input.md +4 -3
  244. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +8 -3
  245. package/dist/docs/reference/geometry/VectorTextLayout.md +5 -1
  246. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +5 -1
  247. package/dist/docs/reference/geometry/VectorTextMetrics.md +7 -3
  248. package/dist/docs/reference/geometry/VectorTextOptions.md +5 -1
  249. package/dist/docs/reference/geometry/add2.md +7 -6
  250. package/dist/docs/reference/geometry/add3.md +7 -6
  251. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +5 -1
  252. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +6 -2
  253. package/dist/docs/reference/geometry/{createAnchor3.md → anchor3.md} +10 -9
  254. package/dist/docs/reference/geometry/anchorFrame3.md +9 -5
  255. package/dist/docs/reference/geometry/applyTransformDirection3.md +8 -7
  256. package/dist/docs/reference/geometry/applyTransformPoint3.md +8 -7
  257. package/dist/docs/reference/geometry/{attachTransform.md → attachmentTransform3.md} +16 -15
  258. package/dist/docs/reference/geometry/bounds2.md +38 -0
  259. package/dist/docs/reference/geometry/bounds3.md +38 -0
  260. package/dist/docs/reference/geometry/boundsCenter.md +12 -11
  261. package/dist/docs/reference/geometry/boundsFromSize.md +12 -11
  262. package/dist/docs/reference/geometry/boundsSize.md +12 -11
  263. package/dist/docs/reference/geometry/boxAnchor3.md +7 -6
  264. package/dist/docs/reference/geometry/categories/bounds-layout.md +23 -6
  265. package/dist/docs/reference/geometry/categories/curves-paths.md +27 -13
  266. package/dist/docs/reference/geometry/categories/mechanical.md +27 -15
  267. package/dist/docs/reference/geometry/categories/meshes.md +18 -10
  268. package/dist/docs/reference/geometry/categories/pattern-placement.md +11 -9
  269. package/dist/docs/reference/geometry/categories/primitive-options.md +10 -4
  270. package/dist/docs/reference/geometry/categories/profiles-regions.md +21 -13
  271. package/dist/docs/reference/geometry/categories/resolution-errors.md +5 -3
  272. package/dist/docs/reference/geometry/categories/transforms-math.md +25 -16
  273. package/dist/docs/reference/geometry/categories/vector-import.md +15 -9
  274. package/dist/docs/reference/geometry/circleContour.md +5 -1
  275. package/dist/docs/reference/geometry/closeToAxis.md +14 -5
  276. package/dist/docs/reference/geometry/compensateThreadDiameters.md +5 -1
  277. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +9 -5
  278. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +9 -5
  279. package/dist/docs/reference/geometry/composeTransform3.md +7 -6
  280. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +14 -6
  281. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +17 -7
  282. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +13 -5
  283. package/dist/docs/reference/geometry/{createTriangleMeshSignature.md → computeTriangleMeshSignature.md} +8 -4
  284. package/dist/docs/reference/geometry/containsBounds.md +10 -9
  285. package/dist/docs/reference/geometry/contourContainsPoint.md +8 -4
  286. package/dist/docs/reference/geometry/cross2.md +6 -5
  287. package/dist/docs/reference/geometry/cross3.md +7 -6
  288. package/dist/docs/reference/geometry/cylinderAnchor3.md +7 -6
  289. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +5 -1
  290. package/dist/docs/reference/geometry/distance2.md +6 -5
  291. package/dist/docs/reference/geometry/distance3.md +6 -5
  292. package/dist/docs/reference/geometry/distributeAlongPath.md +12 -6
  293. package/dist/docs/reference/geometry/dot2.md +6 -5
  294. package/dist/docs/reference/geometry/dot3.md +6 -5
  295. package/dist/docs/reference/geometry/ellipseContour.md +5 -1
  296. package/dist/docs/reference/geometry/eulerTransform3.md +7 -6
  297. package/dist/docs/reference/geometry/extrudeMesh.md +12 -8
  298. package/dist/docs/reference/geometry/fitBounds.md +10 -9
  299. package/dist/docs/reference/geometry/fitTextLayout.md +13 -5
  300. package/dist/docs/reference/geometry/frameTransform3.md +5 -4
  301. package/dist/docs/reference/geometry/{getMetricClearanceHole.md → getMetricClearanceHoleDiameter.md} +7 -3
  302. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +5 -1
  303. package/dist/docs/reference/geometry/gridPatternTransforms.md +5 -5
  304. package/dist/docs/reference/geometry/heightfieldMesh.md +11 -2
  305. package/dist/docs/reference/geometry/{buildHelicalThreadRidgeMesh.md → helicalThreadRidgeMesh.md} +9 -5
  306. package/dist/docs/reference/geometry/{buildHelicalThreadSolidMesh.md → helicalThreadSolidMesh.md} +9 -5
  307. package/dist/docs/reference/geometry/inverseTransform3.md +6 -5
  308. package/dist/docs/reference/geometry/isGeometryError.md +5 -2
  309. package/dist/docs/reference/geometry/joinTriangleMeshes.md +5 -1
  310. package/dist/docs/reference/geometry/layoutRow.md +11 -7
  311. package/dist/docs/reference/geometry/length2.md +5 -4
  312. package/dist/docs/reference/geometry/length3.md +5 -4
  313. package/dist/docs/reference/geometry/lerp2.md +7 -6
  314. package/dist/docs/reference/geometry/lerp3.md +7 -6
  315. package/dist/docs/reference/geometry/linearPatternTransforms.md +5 -5
  316. package/dist/docs/reference/geometry/loftMesh.md +6 -1
  317. package/dist/docs/reference/geometry/matchProfiles.md +11 -2
  318. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +5 -1
  319. package/dist/docs/reference/geometry/meshBounds.md +8 -4
  320. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +7 -3
  321. package/dist/docs/reference/geometry/normalize2.md +10 -6
  322. package/dist/docs/reference/geometry/normalize3.md +10 -6
  323. package/dist/docs/reference/geometry/normalizeContour.md +8 -4
  324. package/dist/docs/reference/geometry/normalizePolygon.md +5 -1
  325. package/dist/docs/reference/geometry/normalizeRegion.md +5 -1
  326. package/dist/docs/reference/geometry/optimizePlanarPatches.md +15 -11
  327. package/dist/docs/reference/geometry/path2.md +54 -0
  328. package/dist/docs/reference/geometry/path3.md +49 -0
  329. package/dist/docs/reference/geometry/pathPatternTransforms.md +13 -9
  330. package/dist/docs/reference/geometry/preflightHeightfield.md +11 -2
  331. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +13 -4
  332. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +15 -4
  333. package/dist/docs/reference/geometry/preflightSvgRegion.md +15 -2
  334. package/dist/docs/reference/geometry/preflightThreadedNut.md +14 -4
  335. package/dist/docs/reference/geometry/preflightThreadedRod.md +14 -4
  336. package/dist/docs/reference/geometry/projectOntoPlane3.md +7 -6
  337. package/dist/docs/reference/geometry/radialPatternTransforms.md +4 -20
  338. package/dist/docs/reference/geometry/rectangleContour.md +10 -3
  339. package/dist/docs/reference/geometry/rectangleProfile.md +10 -2
  340. package/dist/docs/reference/geometry/regionArea.md +5 -1
  341. package/dist/docs/reference/geometry/regionBounds.md +8 -4
  342. package/dist/docs/reference/geometry/regularPolygonContour.md +9 -5
  343. package/dist/docs/reference/geometry/resamplePolyline2.md +9 -5
  344. package/dist/docs/reference/geometry/resamplePolyline3.md +9 -5
  345. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +4 -4
  346. package/dist/docs/reference/geometry/resolveArcSegments.md +4 -4
  347. package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
  348. package/dist/docs/reference/geometry/resolveCylindricalGear.md +5 -1
  349. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +5 -1
  350. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +7 -3
  351. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -1
  352. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  353. package/dist/docs/reference/geometry/resolveKnuckleHinge.md +59 -0
  354. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +5 -1
  355. package/dist/docs/reference/geometry/resolveRackPitch.md +5 -1
  356. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +8 -4
  357. package/dist/docs/reference/geometry/reverseTriangleMesh.md +5 -1
  358. package/dist/docs/reference/geometry/revolveMesh.md +14 -10
  359. package/dist/docs/reference/geometry/rotate2.md +6 -5
  360. package/dist/docs/reference/geometry/rotationTransform3.md +7 -6
  361. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +12 -6
  362. package/dist/docs/reference/geometry/sampleContour.md +14 -4
  363. package/dist/docs/reference/geometry/sampleCurve2.md +8 -5
  364. package/dist/docs/reference/geometry/sampleCurve3.md +6 -2
  365. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +5 -1
  366. package/dist/docs/reference/geometry/sampleHelix.md +13 -5
  367. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +5 -1
  368. package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -4
  369. package/dist/docs/reference/geometry/sampleSideProfile.md +17 -7
  370. package/dist/docs/reference/geometry/sampleTextContours.md +5 -1
  371. package/dist/docs/reference/geometry/sampleThreadHelices.md +6 -2
  372. package/dist/docs/reference/geometry/scale2.md +6 -5
  373. package/dist/docs/reference/geometry/scale3.md +6 -5
  374. package/dist/docs/reference/geometry/scaleTransform3.md +7 -6
  375. package/dist/docs/reference/geometry/signedContourArea.md +5 -1
  376. package/dist/docs/reference/geometry/starContour.md +8 -4
  377. package/dist/docs/reference/geometry/strokeRegionData.md +67 -0
  378. package/dist/docs/reference/geometry/subtract2.md +7 -6
  379. package/dist/docs/reference/geometry/subtract3.md +7 -6
  380. package/dist/docs/reference/geometry/sweepMesh.md +13 -9
  381. package/dist/docs/reference/geometry/{createThreadProfile.md → threadProfile.md} +10 -6
  382. package/dist/docs/reference/geometry/transform2.md +14 -7
  383. package/dist/docs/reference/geometry/transform3.md +16 -7
  384. package/dist/docs/reference/geometry/transformDeterminant3.md +5 -4
  385. package/dist/docs/reference/geometry/transformRegionData.md +5 -1
  386. package/dist/docs/reference/geometry/transformTriangleMesh.md +10 -6
  387. package/dist/docs/reference/geometry/translationTransform3.md +7 -6
  388. package/dist/docs/reference/geometry/triangulateContour.md +5 -1
  389. package/dist/docs/reference/geometry/validateSolidMesh.md +10 -3
  390. package/dist/docs/reference/geometry/validateTransform3.md +6 -5
  391. package/dist/docs/reference/geometry/validateTriangleMesh.md +5 -1
  392. package/dist/docs/reference/geometry/vector2.md +10 -2
  393. package/dist/docs/reference/geometry/vector3.md +10 -2
  394. package/dist/docs/reference/geometry.md +8 -6
  395. package/dist/docs/reference/model/Anchor3.md +6 -5
  396. package/dist/docs/reference/model/AttachOptions.md +11 -5
  397. package/dist/docs/reference/model/Bounds2-type.md +125 -0
  398. package/dist/docs/reference/model/Bounds2Data.md +44 -0
  399. package/dist/docs/reference/model/Bounds2Input.md +19 -0
  400. package/dist/docs/reference/model/Bounds3-type.md +125 -0
  401. package/dist/docs/reference/model/Bounds3Data.md +44 -0
  402. package/dist/docs/reference/model/Bounds3Input.md +19 -0
  403. package/dist/docs/reference/model/BoxEdge.md +1 -1
  404. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  405. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  406. package/dist/docs/reference/model/BoxOptions.md +10 -10
  407. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  408. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  409. package/dist/docs/reference/model/CircleOptions.md +3 -3
  410. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
  411. package/dist/docs/reference/model/Computed.md +6 -1
  412. package/dist/docs/reference/model/ComputedValue.md +5 -1
  413. package/dist/docs/reference/model/Contour.md +6 -4
  414. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  415. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  416. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  417. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  418. package/dist/docs/reference/model/CylinderOptions.md +3 -3
  419. package/dist/docs/reference/model/DiagnosticOptions.md +6 -1
  420. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  421. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  422. package/dist/docs/reference/model/EllipseOptions.md +3 -3
  423. package/dist/docs/reference/model/EndTreatments.md +1 -1
  424. package/dist/docs/reference/model/ExtrudeOptions.md +6 -6
  425. package/dist/docs/reference/model/FinalizedModel.md +20 -10
  426. package/dist/docs/reference/model/FinalizedPart.md +1 -1
  427. package/dist/docs/reference/model/Frame3.md +6 -6
  428. package/dist/docs/reference/model/GenerateCallback.md +5 -1
  429. package/dist/docs/reference/model/GenerateContext.md +5 -1
  430. package/dist/docs/reference/model/GeneratedPart.md +5 -1
  431. package/dist/docs/reference/model/GenerationDiagnostic.md +6 -1
  432. package/dist/docs/reference/model/GenerationError.md +5 -1
  433. package/dist/docs/reference/model/GeometryResolution.md +5 -5
  434. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  435. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  436. package/dist/docs/reference/model/GridPatternOptions.md +12 -5
  437. package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
  438. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +4 -3
  439. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +3 -2
  440. package/dist/docs/reference/model/HullOptions.md +5 -5
  441. package/dist/docs/reference/model/ImmutableBuffer-type.md +5 -1
  442. package/dist/docs/reference/model/ImmutableTriangleMesh.md +5 -1
  443. package/dist/docs/reference/model/ImplicitOptions.md +6 -6
  444. package/dist/docs/reference/model/InternalThreadCutterOptions.md +5 -4
  445. package/dist/docs/reference/model/KnuckleHinge-type.md +47 -0
  446. package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +77 -0
  447. package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +34 -0
  448. package/dist/docs/reference/model/KnuckleHingeOptions.md +38 -0
  449. package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +47 -0
  450. package/dist/docs/reference/model/KnuckleHingeSpec.md +18 -0
  451. package/dist/docs/reference/model/KnuckleHingeWeb.md +53 -0
  452. package/dist/docs/reference/model/LinearPatternOptions.md +13 -5
  453. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  454. package/dist/docs/reference/model/LoftOptions.md +1 -1
  455. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  456. package/dist/docs/reference/model/LoftStation.md +3 -3
  457. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  458. package/dist/docs/reference/model/ModelProgram.md +5 -1
  459. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  460. package/dist/docs/reference/model/NumericArray.md +8 -1
  461. package/dist/docs/reference/model/PartGeometry.md +5 -1
  462. package/dist/docs/reference/model/PartOptions.md +5 -1
  463. package/dist/docs/reference/model/Path2-type.md +196 -0
  464. package/dist/docs/reference/model/Path2Data.md +50 -0
  465. package/dist/docs/reference/model/Path2Input.md +20 -0
  466. package/dist/docs/reference/model/Path3-type.md +196 -0
  467. package/dist/docs/reference/model/Path3Data.md +50 -0
  468. package/dist/docs/reference/model/Path3Input.md +20 -0
  469. package/dist/docs/reference/model/PathLocation.md +69 -0
  470. package/dist/docs/reference/model/PathNormalGuide.md +6 -5
  471. package/dist/docs/reference/model/PathOptions.md +38 -0
  472. package/dist/docs/reference/model/PathPatternOptions.md +4 -3
  473. package/dist/docs/reference/model/PathResamplingOptions.md +83 -0
  474. package/dist/docs/reference/model/PatternSource.md +2 -1
  475. package/dist/docs/reference/model/Pivot2Options.md +2 -1
  476. package/dist/docs/reference/model/Pivot3Options.md +2 -1
  477. package/dist/docs/reference/model/PlaneOptions.md +3 -3
  478. package/dist/docs/reference/model/PolygonData.md +3 -2
  479. package/dist/docs/reference/model/PolygonOptions.md +8 -8
  480. package/dist/docs/reference/model/{PrimitivePlacement.md → PrimitiveAttachment.md} +8 -7
  481. package/dist/docs/reference/model/{PrimitivePlacementOptions.md → PrimitiveAttachmentOptions.md} +42 -20
  482. package/dist/docs/reference/model/PrintableThreadFit.md +2 -1
  483. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +2 -1
  484. package/dist/docs/reference/model/Profile.md +4 -2
  485. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  486. package/dist/docs/reference/model/ProfileContour2.md +4 -2
  487. package/dist/docs/reference/model/ProfileSpan2.md +3 -3
  488. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
  489. package/dist/docs/reference/model/RadialPatternOptions.md +18 -22
  490. package/dist/docs/reference/model/RadialSizing.md +1 -1
  491. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  492. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  493. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  494. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  495. package/dist/docs/reference/model/RectangleOptions.md +10 -10
  496. package/dist/docs/reference/model/RegionData.md +2 -2
  497. package/dist/docs/reference/model/RegularPolygonOptions.md +5 -5
  498. package/dist/docs/reference/model/RevolveOptions.md +9 -4
  499. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  500. package/dist/docs/reference/model/Section.md +20 -12
  501. package/dist/docs/reference/model/SectionHullOptions.md +5 -5
  502. package/dist/docs/reference/model/SectionInspection.md +10 -10
  503. package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
  504. package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
  505. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  506. package/dist/docs/reference/model/Solid.md +31 -7
  507. package/dist/docs/reference/model/SolidInspection.md +7 -7
  508. package/dist/docs/reference/model/{SolidRayHit.md → SolidSegmentHit.md} +6 -6
  509. package/dist/docs/reference/model/SphereOptions.md +3 -3
  510. package/dist/docs/reference/model/StarOptions.md +10 -10
  511. package/dist/docs/reference/model/{StrokePathCap.md → StrokeCap.md} +3 -3
  512. package/dist/docs/reference/model/{StrokePathJoin.md → StrokeJoin.md} +3 -3
  513. package/dist/docs/reference/model/StrokeOptions.md +6 -6
  514. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  515. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  516. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  517. package/dist/docs/reference/model/SweepOptions.md +6 -6
  518. package/dist/docs/reference/model/SweepOrientation.md +7 -7
  519. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  520. package/dist/docs/reference/model/ThreadEndStyle.md +2 -1
  521. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +2 -1
  522. package/dist/docs/reference/model/ThreadHandedness.md +2 -1
  523. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +2 -1
  524. package/dist/docs/reference/model/ThreadLeadInShape.md +2 -1
  525. package/dist/docs/reference/model/ThreadProfile.md +4 -3
  526. package/dist/docs/reference/model/ThreadRidgeOptions.md +2 -1
  527. package/dist/docs/reference/model/ThreadedNutBevel.md +2 -1
  528. package/dist/docs/reference/model/ThreadedNutOptions.md +5 -4
  529. package/dist/docs/reference/model/ThreadedNutPreflight.md +4 -3
  530. package/dist/docs/reference/model/ThreadedNutShape.md +2 -1
  531. package/dist/docs/reference/model/ThreadedRodOptions.md +5 -4
  532. package/dist/docs/reference/model/TorusOptions.md +8 -8
  533. package/dist/docs/reference/model/Transform2-type.md +6 -5
  534. package/dist/docs/reference/model/Transform2Data.md +16 -0
  535. package/dist/docs/reference/model/Transform2Input.md +4 -3
  536. package/dist/docs/reference/model/Transform3-type.md +6 -5
  537. package/dist/docs/reference/model/Transform3Data.md +19 -0
  538. package/dist/docs/reference/model/Transform3Input.md +4 -3
  539. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  540. package/dist/docs/reference/model/TriangleMeshAnalysis.md +4 -4
  541. package/dist/docs/reference/model/TriangleMeshMeasurements.md +3 -3
  542. package/dist/docs/reference/model/TubeOptions.md +8 -8
  543. package/dist/docs/reference/model/Vector2-type.md +6 -5
  544. package/dist/docs/reference/model/{Vector2Tuple.md → Vector2Data.md} +3 -3
  545. package/dist/docs/reference/model/Vector2Input.md +4 -3
  546. package/dist/docs/reference/model/Vector3-type.md +6 -5
  547. package/dist/docs/reference/model/{Vector3Tuple.md → Vector3Data.md} +3 -3
  548. package/dist/docs/reference/model/Vector3Input.md +4 -3
  549. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  550. package/dist/docs/reference/model/VectorTextMetrics.md +3 -3
  551. package/dist/docs/reference/model/anchor.md +2 -1
  552. package/dist/docs/reference/model/bounds2.md +36 -0
  553. package/dist/docs/reference/model/bounds3.md +36 -0
  554. package/dist/docs/reference/model/box.md +4 -4
  555. package/dist/docs/reference/model/castSegment.md +40 -0
  556. package/dist/docs/reference/model/categories/boolean-operations.md +10 -3
  557. package/dist/docs/reference/model/categories/bounded-surfaces.md +5 -3
  558. package/dist/docs/reference/model/categories/bounds.md +36 -0
  559. package/dist/docs/reference/model/categories/contracts.md +4 -2
  560. package/dist/docs/reference/model/categories/core-values-errors.md +11 -11
  561. package/dist/docs/reference/model/categories/explicit-profiles.md +7 -5
  562. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +12 -3
  563. package/dist/docs/reference/model/categories/generation.md +11 -2
  564. package/dist/docs/reference/model/categories/hinges.md +38 -0
  565. package/dist/docs/reference/model/categories/inspection.md +12 -6
  566. package/dist/docs/reference/model/categories/mesh-inspection.md +5 -3
  567. package/dist/docs/reference/model/categories/paths.md +41 -0
  568. package/dist/docs/reference/model/categories/primitives.md +10 -4
  569. package/dist/docs/reference/model/categories/resolution.md +4 -2
  570. package/dist/docs/reference/model/categories/sections.md +12 -8
  571. package/dist/docs/reference/model/categories/threads.md +11 -8
  572. package/dist/docs/reference/model/categories/transforms-placement.md +23 -15
  573. package/dist/docs/reference/model/circle.md +1 -1
  574. package/dist/docs/reference/model/components.md +6 -6
  575. package/dist/docs/reference/model/compose.md +1 -1
  576. package/dist/docs/reference/model/cylinder.md +1 -1
  577. package/dist/docs/reference/model/distance.md +1 -1
  578. package/dist/docs/reference/model/ellipse.md +1 -1
  579. package/dist/docs/reference/model/extrude.md +3 -3
  580. package/dist/docs/reference/model/generate.md +5 -1
  581. package/dist/docs/reference/model/gridPattern.md +5 -4
  582. package/dist/docs/reference/model/heightfield.md +5 -2
  583. package/dist/docs/reference/model/hull.md +1 -1
  584. package/dist/docs/reference/model/immutableBuffer.md +5 -1
  585. package/dist/docs/reference/model/immutableMesh.md +5 -1
  586. package/dist/docs/reference/model/implicit.md +3 -3
  587. package/dist/docs/reference/model/inspectSection.md +1 -1
  588. package/dist/docs/reference/model/inspectSolid.md +1 -1
  589. package/dist/docs/reference/model/internalThreadCutter.md +5 -4
  590. package/dist/docs/reference/model/intersect.md +1 -1
  591. package/dist/docs/reference/model/isEmpty.md +1 -1
  592. package/dist/docs/reference/model/knuckleHinge.md +47 -0
  593. package/dist/docs/reference/model/linearPattern.md +5 -4
  594. package/dist/docs/reference/model/loft.md +1 -1
  595. package/dist/docs/reference/model/matchProfiles.md +2 -2
  596. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  597. package/dist/docs/reference/model/path2.md +54 -0
  598. package/dist/docs/reference/model/path3.md +49 -0
  599. package/dist/docs/reference/model/pathPattern.md +14 -12
  600. package/dist/docs/reference/model/polygon.md +8 -5
  601. package/dist/docs/reference/model/preflightInternalThreadCutter.md +9 -3
  602. package/dist/docs/reference/model/preflightThreadedNut.md +9 -3
  603. package/dist/docs/reference/model/preflightThreadedRod.md +9 -3
  604. package/dist/docs/reference/model/radialPattern.md +6 -37
  605. package/dist/docs/reference/model/rectangle.md +7 -4
  606. package/dist/docs/reference/model/regularPolygon.md +1 -1
  607. package/dist/docs/reference/model/revolve.md +5 -4
  608. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  609. package/dist/docs/reference/model/sphere.md +1 -1
  610. package/dist/docs/reference/model/split.md +1 -1
  611. package/dist/docs/reference/model/splitByPlane.md +1 -1
  612. package/dist/docs/reference/model/star.md +4 -4
  613. package/dist/docs/reference/model/stroke.md +8 -8
  614. package/dist/docs/reference/model/svgPathSection.md +1 -1
  615. package/dist/docs/reference/model/svgSection.md +1 -1
  616. package/dist/docs/reference/model/sweep.md +7 -7
  617. package/dist/docs/reference/model/textSection.md +1 -1
  618. package/dist/docs/reference/model/threadRidge.md +3 -2
  619. package/dist/docs/reference/model/threadedNut.md +5 -4
  620. package/dist/docs/reference/model/threadedRod.md +5 -4
  621. package/dist/docs/reference/model/torus.md +3 -3
  622. package/dist/docs/reference/model/transform2.md +14 -7
  623. package/dist/docs/reference/model/transform3.md +16 -7
  624. package/dist/docs/reference/model/tube.md +3 -3
  625. package/dist/docs/reference/model/union.md +1 -1
  626. package/dist/docs/reference/model/vector2.md +10 -2
  627. package/dist/docs/reference/model/vector3.md +10 -2
  628. package/dist/docs/reference/model.md +17 -9
  629. package/dist/docs/reference/text/Bounds2Data.md +34 -0
  630. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  631. package/dist/docs/reference/text/Vector2Data.md +7 -0
  632. package/dist/docs/reference/text/VectorFont.md +2 -2
  633. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  634. package/dist/docs/reference/text/VectorTextArcBaseline.md +3 -3
  635. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  636. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  637. package/dist/docs/reference/text/VectorTextMetrics.md +3 -3
  638. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  639. package/dist/docs/reference/text/categories/font-preparation.md +8 -6
  640. package/dist/docs/reference/text/prepareVectorFont.md +2 -2
  641. package/dist/docs/reference/text.md +4 -2
  642. package/dist/engine/construction-operations.js +31 -14
  643. package/dist/engine/execution.js +39 -8
  644. package/dist/engine/extrusion-finishing.js +1 -1
  645. package/dist/engine/index.js +6 -1
  646. package/dist/engine/inspection-operations.js +13 -11
  647. package/dist/engine/knuckle-hinge-operation.js +85 -0
  648. package/dist/engine/loft-operations.js +35 -14
  649. package/dist/engine/mechanical-operations.js +3 -1
  650. package/dist/engine/model-summary.js +8 -5
  651. package/dist/engine/modeling-context.js +8 -1
  652. package/dist/engine/native/material-components.js +305 -0
  653. package/dist/engine/native/regions.js +2 -1
  654. package/dist/engine/native/threads.js +3 -3
  655. package/dist/engine/native/transforms.js +5 -7
  656. package/dist/engine/operation-environment.js +2 -2
  657. package/dist/engine/pattern-operations.js +1 -1
  658. package/dist/engine/placement.js +2 -2
  659. package/dist/engine/primitive-anchors.js +17 -17
  660. package/dist/engine/primitive-operations.js +1 -1
  661. package/dist/engine/primitive-profiles.js +7 -7
  662. package/dist/engine/profile-mesh.js +7 -7
  663. package/dist/engine/recipe-realization.js +10 -2
  664. package/dist/engine/section-operations.js +33 -8
  665. package/dist/engine/session-snapshot.js +14 -4
  666. package/dist/engine/session.js +10 -5
  667. package/dist/engine/shape-anchors.js +3 -3
  668. package/dist/engine/transform-operations.js +27 -27
  669. package/dist/geometry/anchors.js +40 -33
  670. package/dist/geometry/bounds-value.js +93 -0
  671. package/dist/geometry/bounds.js +10 -8
  672. package/dist/geometry/curves/sampling.js +15 -16
  673. package/dist/geometry/edge-finishing.js +1 -1
  674. package/dist/geometry/errors.js +1 -0
  675. package/dist/geometry/extrusion.js +13 -16
  676. package/dist/geometry/heightfield.js +12 -1
  677. package/dist/geometry/index.js +12 -11
  678. package/dist/geometry/loft/loft-simple-mesh.js +6 -6
  679. package/dist/geometry/loft/loft.js +22 -13
  680. package/dist/geometry/math/immutable-value.js +1 -1
  681. package/dist/geometry/math/vector-value.js +11 -3
  682. package/dist/geometry/math/vector2.js +1 -0
  683. package/dist/geometry/math/vector3.js +1 -0
  684. package/dist/geometry/mechanical/gear-motion.js +3 -3
  685. package/dist/geometry/mechanical/gears.js +38 -38
  686. package/dist/geometry/mechanical/index.js +4 -3
  687. package/dist/geometry/mechanical/knuckle-hinge.js +110 -0
  688. package/dist/geometry/mechanical/standards.js +1 -1
  689. package/dist/geometry/mechanical/thread-helices.js +2 -3
  690. package/dist/geometry/mechanical/thread-mesh-plan.js +11 -7
  691. package/dist/geometry/mechanical/thread-mesh.js +7 -7
  692. package/dist/geometry/mechanical/thread-profiles.js +5 -5
  693. package/dist/geometry/mechanical/thread-solids.js +31 -6
  694. package/dist/geometry/mechanical/thread-surface.js +1 -1
  695. package/dist/geometry/mechanical/threads.js +8 -8
  696. package/dist/geometry/mesh/mesh-centroid.js +1 -0
  697. package/dist/geometry/mesh/mesh-planar.js +25 -27
  698. package/dist/geometry/mesh/mesh-quality.js +5 -5
  699. package/dist/geometry/mesh/mesh-signature.js +13 -13
  700. package/dist/geometry/mesh/mesh-solid.js +8 -7
  701. package/dist/geometry/mesh/mesh.js +4 -15
  702. package/dist/geometry/paths/closest-point.js +8 -19
  703. package/dist/geometry/paths/frames.js +42 -11
  704. package/dist/geometry/paths/helix.js +17 -6
  705. package/dist/geometry/paths/path-value.js +268 -0
  706. package/dist/geometry/paths/planar.js +36 -23
  707. package/dist/geometry/paths/resampling.js +27 -5
  708. package/dist/geometry/patterns/placements.js +100 -27
  709. package/dist/geometry/patterns.js +5 -3
  710. package/dist/geometry/polygon-clipping.js +17 -0
  711. package/dist/geometry/profiles/contour.js +7 -6
  712. package/dist/geometry/profiles/matched.js +5 -4
  713. package/dist/geometry/profiles/profiles.js +4 -4
  714. package/dist/geometry/profiles/rectangle.js +14 -5
  715. package/dist/geometry/profiles/side-profile.js +9 -7
  716. package/dist/geometry/profiles/span-sampling.js +1 -1
  717. package/dist/geometry/resolution.js +34 -34
  718. package/dist/geometry/revolve/revolve-mesh.js +12 -7
  719. package/dist/geometry/stroke-path.js +12 -27
  720. package/dist/geometry/svg/fill.js +7 -21
  721. package/dist/geometry/svg-import.js +31 -25
  722. package/dist/geometry/sweeps/options.js +5 -4
  723. package/dist/geometry/sweeps/orientation.js +5 -5
  724. package/dist/geometry/sweeps/stations.js +10 -10
  725. package/dist/geometry/sweeps/sweep-closed.js +2 -2
  726. package/dist/geometry/sweeps/sweep-mesh.js +9 -3
  727. package/dist/geometry/sweeps/sweep-open.js +1 -1
  728. package/dist/geometry/sweeps/validation.js +4 -7
  729. package/dist/geometry/text-fitting.js +1 -0
  730. package/dist/geometry/transform-geometry.js +7 -14
  731. package/dist/geometry/transform-matrix.js +1 -1
  732. package/dist/geometry/{transform-chain.js → transform-value.js} +24 -15
  733. package/dist/index.js +3 -1
  734. package/dist/model/execution-binding.js +3 -3
  735. package/dist/model/geometry-recipes.js +1 -1
  736. package/dist/model/immutable-generation-data.js +62 -10
  737. package/dist/model/knuckle-hinge.js +1 -0
  738. package/dist/model/operations.js +79 -26
  739. package/dist/model/recipe-declaration.js +21 -7
  740. package/dist/model/shape-handles.js +2 -1
  741. package/dist/text/index.js +15 -9
  742. package/dist/text/vector-text-layout.js +31 -26
  743. package/package.json +1 -1
  744. package/dist/docs/reference/geometry/Bounds2.md +0 -39
  745. package/dist/docs/reference/geometry/Bounds3.md +0 -39
  746. package/dist/docs/reference/geometry/ClosestPointOnPathOptions.md +0 -34
  747. package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +0 -65
  748. package/dist/docs/reference/geometry/Path2.md +0 -14
  749. package/dist/docs/reference/geometry/Path3.md +0 -14
  750. package/dist/docs/reference/geometry/PrimitivePlacement.md +0 -31
  751. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +0 -83
  752. package/dist/docs/reference/geometry/StrokePathCap.md +0 -7
  753. package/dist/docs/reference/geometry/StrokePathJoin.md +0 -7
  754. package/dist/docs/reference/geometry/Transform2Matrix.md +0 -14
  755. package/dist/docs/reference/geometry/Transform3Matrix.md +0 -17
  756. package/dist/docs/reference/geometry/Vector2Tuple.md +0 -14
  757. package/dist/docs/reference/geometry/Vector3Tuple.md +0 -14
  758. package/dist/docs/reference/geometry/closestPointOnPath.md +0 -110
  759. package/dist/docs/reference/geometry/cumulativePathLengths.md +0 -33
  760. package/dist/docs/reference/geometry/measureTriangleMesh.md +0 -55
  761. package/dist/docs/reference/geometry/pathLength.md +0 -33
  762. package/dist/docs/reference/geometry/strokePathRegion.md +0 -63
  763. package/dist/docs/reference/geometry/transformContour.md +0 -42
  764. package/dist/docs/reference/geometry/transformPath2.md +0 -40
  765. package/dist/docs/reference/geometry/transformPath3.md +0 -33
  766. package/dist/docs/reference/model/Bounds2.md +0 -39
  767. package/dist/docs/reference/model/Bounds3.md +0 -39
  768. package/dist/docs/reference/model/Path2.md +0 -20
  769. package/dist/docs/reference/model/Transform2Matrix.md +0 -15
  770. package/dist/docs/reference/model/Transform3Matrix.md +0 -18
  771. package/dist/docs/reference/model/rayCast.md +0 -40
  772. package/dist/docs/reference/model/toTriangleMesh.md +0 -27
  773. package/dist/docs/reference/text/Bounds2.md +0 -34
  774. package/dist/docs/reference/text/Vector2Tuple.md +0 -7
  775. package/dist/geometry/paths/path.js +0 -32
@@ -2,7 +2,7 @@
2
2
 
3
3
  Creates an outward face-center anchor using the same local origin convention as box().
4
4
 
5
- **boxAnchor3**(`options`: [`BoxAnchorOptions`](BoxAnchorOptions.md)): [`Anchor3`](Anchor3.md)
5
+ **boxAnchor3**(`options`: [`BoxAnchorOptions`](BoxAnchorOptions.md)): [`Anchor3`](Anchor3-type.md)
6
6
 
7
7
 
8
8
 
@@ -12,7 +12,7 @@ Creates an outward face-center anchor using the same local origin convention as
12
12
 
13
13
  **`options`** · [`BoxAnchorOptions`](BoxAnchorOptions.md) · Required
14
14
 
15
- - [`size`](BoxAnchorOptions.md#size) · `number` \| [`Vector3Tuple`](Vector3Tuple.md) · Required
15
+ - [`size`](BoxAnchorOptions.md#size) · `number` \| [`Vector3Data`](Vector3Data.md) · Required
16
16
 
17
17
  XYZ dimensions, or one uniform dimension, in millimetres.
18
18
 
@@ -24,7 +24,7 @@ Creates an outward face-center anchor using the same local origin convention as
24
24
 
25
25
  Centers the box around its construction origin; defaults to true, matching box().
26
26
 
27
- - [`origin`](BoxAnchorOptions.md#origin) · [`Vector3Tuple`](Vector3Tuple.md) · Optional
27
+ - [`origin`](BoxAnchorOptions.md#origin) · [`Vector3Data`](Vector3Data.md) · Optional
28
28
 
29
29
  Construction origin; centered-box center or noncentered minimum corner. Defaults to zero.
30
30
 
@@ -32,7 +32,7 @@ Creates an outward face-center anchor using the same local origin convention as
32
32
 
33
33
  ## Returns
34
34
 
35
- [`Anchor3`](Anchor3.md)
35
+ [`Anchor3`](Anchor3-type.md)
36
36
 
37
37
  ## Remarks
38
38
 
@@ -42,11 +42,12 @@ resulting anchor frame explicitly; no anchor is inherited from a Boolean result.
42
42
 
43
43
  ## Related APIs
44
44
 
45
- - [Anchor3](Anchor3.md)
45
+ - [Anchor3](Anchor3-type.md)
46
46
  - [BoxAnchorOptions](BoxAnchorOptions.md)
47
47
 
48
48
  ## Guides
49
49
 
50
50
  - [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
51
+ - [Fluent values and tuple kernels](../../guides/concepts.md#choose-fluent-values-or-standalone-algorithms)
51
52
 
52
- Package: `@metamesh/modeling@0.14.0`.
53
+ Package: `@metamesh/modeling@0.16.0`.
@@ -1,35 +1,52 @@
1
- # Bounds & Layout
1
+ # Bounds and layout
2
2
 
3
3
  Measure finite bounds, test positioned containment, and fit or arrange geometry.
4
4
 
5
- Bounds2 and Bounds3 are shared min/max data for text, mesh measurements, and placement. boundsFromSize creates centered bounds unless center is false. containsBounds tests actual positioned containment, including boundary contact. fitBounds uniformly scales and centers into a target, returning scale, position and resulting bounds; maxScale limits enlargement. layoutRow returns translations for a +X row with minimum Y/Z grounded at zero; supply bounds after intended rotations and apply positions through part options.
5
+ Use `bounds2` and `bounds3` for immutable extents with fluent `size()`, `center()`, and `containsBounds()` queries. Zero extents are valid. Containment includes boundary contact in the same coordinate frame; it does not establish manufacturing fit.
6
+
7
+ - **Interchange:** measurements, snapshots, and `boundsFromSize` retain plain `Bounds2Data`/`Bounds3Data` min/max records. `toData()` returns a stable frozen record. Standalone helpers accept values or data.
8
+ - **Construct:** `boundsFromSize` centers on the origin unless `center` is `false`.
9
+ - **Fit:** `fitBounds` scales uniformly and centers in a target, returning scale, position, and resulting data bounds. `maxScale` limits enlargement.
10
+ - **Arrange:** `layoutRow` returns translations for a +X row with minimum Y/Z at zero. Supply bounds after intended rotations, then apply positions through part options.
6
11
 
7
12
  ## Functions
8
13
 
9
14
  | API | Summary |
10
15
  | --- | --- |
16
+ | [bounds2](../bounds2.md) | Snapshots finite ordered XY bounds in millimetres as an immutable fluent value. |
17
+ | [bounds3](../bounds3.md) | Snapshots finite ordered XYZ bounds in millimetres as an immutable fluent value. |
11
18
  | [boundsFromSize](../boundsFromSize.md) | Creates immutable centered XY bounds from nonnegative dimensions in millimetres. |
12
19
  | [boundsSize](../boundsSize.md) | Inclusive XY dimensions in millimetres; zero extents are retained. |
13
20
  | [boundsCenter](../boundsCenter.md) | Midpoint of finite XY bounds in millimetres. |
14
21
  | [containsBounds](../containsBounds.md) | Tests actual XY containment, including touching boundaries; dimensions must match. |
15
22
  | [fitBounds](../fitBounds.md) | Fits XY bounds uniformly and centers them in the target; zero source axes do not constrain scale. |
16
- | [layoutRow](../layoutRow.md) | Returns immutable translations for a +X row of finite XYZ bounds with a nonnegative gap. Each minimum Y/Z becomes zero, and the first minimum X becomes zero. Supply bounds after any intended part rotation; translations apply to those bounds. An empty input returns []. |
23
+ | [layoutRow](../layoutRow.md) | Returns immutable translations for a +X row of finite XYZ bounds with a nonnegative gap. |
17
24
 
18
25
  ## Interfaces
19
26
 
20
27
  | API | Summary |
21
28
  | --- | --- |
22
- | [Bounds2](../Bounds2.md) | Axis-aligned bounds in two-dimensional model space. |
23
- | [Bounds3](../Bounds3.md) | Axis-aligned bounds in three-dimensional model space. |
29
+ | [Bounds2](../Bounds2-type.md) | Immutable finite XY bounds in millimetres, with tuple coordinates for data interoperability. |
30
+ | [Bounds3](../Bounds3-type.md) | Immutable finite XYZ bounds in millimetres, with tuple coordinates for data interoperability. |
31
+ | [Bounds2Data](../Bounds2Data.md) | Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. |
32
+ | [Bounds3Data](../Bounds3Data.md) | Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. |
24
33
  | [BoundsFromSizeOptions](../BoundsFromSizeOptions.md) | Placement of bounds constructed from nonnegative millimetre dimensions. |
25
34
  | [BoundsFitOptions](../BoundsFitOptions.md) | Uniform fitting controls; fitting centers the source inside the target. |
26
35
  | [BoundsFit2](../BoundsFit2.md) | A uniform XY scale followed by translation, and the resulting bounds. |
27
36
  | [BoundsFit3](../BoundsFit3.md) | A uniform XYZ scale followed by translation, and the resulting bounds. |
28
37
  | [RowLayoutOptions](../RowLayoutOptions.md) | Simple +X row placement with every minimum Y and Z grounded at zero. |
29
38
 
39
+ ## Type aliases
40
+
41
+ | API | Summary |
42
+ | --- | --- |
43
+ | [Bounds2Input](../Bounds2Input.md) | An immutable XY bounds value or its plain min/max representation. |
44
+ | [Bounds3Input](../Bounds3Input.md) | An immutable XYZ bounds value or its plain min/max representation. |
45
+
30
46
  ## Guides
31
47
 
48
+ - [Measure and compare bounds](../../../guides/concepts.md#measure-and-compare-bounds)
32
49
  - [Text from a Font parameter](../../../guides/recipes.md#text-from-a-font-parameter)
33
50
  - [Solid inspection](../../../guides/recipes.md#solid-inspection)
34
51
 
35
- Package: `@metamesh/modeling@0.14.0`.
52
+ Package: `@metamesh/modeling@0.16.0`.
@@ -2,21 +2,28 @@
2
2
 
3
3
  Sample reusable lines, arcs, cubic curves, and path frames with explicit physical policies.
4
4
 
5
- sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are uniform in the curve parameter; resamplePolyline2/3 use equal arc length. Both resampling dimensions accept the same closed option and return points plus tangents; closed outputs include the closing edge without repeating the first point. Adaptive policies use millimetre deviation and edge length, with checked vertex ceilings. transformPath2 accepts Transform2 placements or Transform2Matrix data; transformPath3 accepts Transform3 placements or Transform3Matrix data. Paths retain point order after reflection. closestPointOnPath returns a point, distance, edge index and interpolation fraction on an open path or explicitly closed boundary. 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
 
9
17
  | API | Summary |
10
18
  | --- | --- |
11
19
  | [anchorFrame3](../anchorFrame3.md) | Converts an anchor into a right-handed frame with direction as local +Z. |
12
- | [closestPointOnPath](../closestPointOnPath.md) | Finds the closest position anywhere on an open XY path or closed contour. |
13
20
  | [sampleCurve2](../sampleCurve2.md) | Samples a planar curve with the same guarantees and policy as spatial sampling. |
14
21
  | [sampleCurve3](../sampleCurve3.md) | Samples a spatial curve, preserving endpoints and directed unit tangents. |
15
- | [transformPath2](../transformPath2.md) | Applies a canonical affine XY transform to a 2D path without changing point order. |
16
- | [transformPath3](../transformPath3.md) | Applies an affine transform to a 3D path without mutating its points. |
17
22
  | [resolveGeometrySamplingLimits](../resolveGeometrySamplingLimits.md) | Resolves finite positive safe-integer allocation ceilings without ambient state. |
18
23
  | [resamplePolyline2](../resamplePolyline2.md) | Resamples a planar polyline with the same point, tangent, seam and budget guarantees as 3D. |
19
24
  | [resamplePolyline3](../resamplePolyline3.md) | Resamples a spatial polyline at equal arc lengths with directed outgoing tangents. |
25
+ | [path2](../path2.md) | Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization. |
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. |
20
27
 
21
28
  ## Interfaces
22
29
 
@@ -26,19 +33,24 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
26
33
  | [ArcCurve3](../ArcCurve3.md) | Spatial circular arc in the plane of two orthogonal unit directions. |
27
34
  | [CubicBezierCurve2](../CubicBezierCurve2.md) | Planar cubic Bézier with explicit endpoint and control coordinates. |
28
35
  | [CubicBezierCurve3](../CubicBezierCurve3.md) | Spatial cubic Bézier with explicit endpoint and control coordinates. |
29
- | [ClosestPointOnPathOptions](../ClosestPointOnPathOptions.md) | Topology and work ceiling for a closest-point query on a sampled path. |
30
- | [ClosestPointOnPathResult](../ClosestPointOnPathResult.md) | Closest position on a sampled path, measured in millimetres. |
31
36
  | [CurveSamplingOptions](../CurveSamplingOptions.md) | Explicit physical sampling and allocation policy for reusable curves. |
32
37
  | [Frame3](../Frame3.md) | A right-handed orthonormal coordinate frame expressed in world coordinates. |
33
38
  | [GeometrySamplingLimits](../GeometrySamplingLimits.md) | Explicit allocation ceilings for pure sampling and host-owned modeling operations. |
34
39
  | [LineCurve2](../LineCurve2.md) | Straight planar curve in millimetres. |
35
40
  | [LineCurve3](../LineCurve3.md) | Straight spatial curve in millimetres. |
41
+ | [Path2](../Path2-type.md) | Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. |
42
+ | [Path3](../Path3-type.md) | Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. |
36
43
  | [PathFrame](../PathFrame.md) | Orthonormal right-handed frame sampled along a path. |
37
44
  | [PathPlacement](../PathPlacement.md) | Position and unit tangent for one path-distributed item. |
38
45
  | [SampledCurve2](../SampledCurve2.md) | Immutable planar points and corresponding directed unit tangents. |
39
46
  | [SampledCurve3](../SampledCurve3.md) | Immutable spatial points and corresponding directed unit tangents. |
40
47
  | [SampleHelixOptions](../SampleHelixOptions.md) | Options for a sampled +Z helix with millimetre dimensions. |
41
48
  | [PolylineResamplingOptions](../PolylineResamplingOptions.md) | Equal arc-length sampling of an open path or an implicitly closed loop. |
49
+ | [PathOptions](../PathOptions.md) | Topology and allocation ceiling for an immutable sampled path. |
50
+ | [PathLocation](../PathLocation.md) | Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. |
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. |
42
54
 
43
55
  ## Type aliases
44
56
 
@@ -46,21 +58,23 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
46
58
  | --- | --- |
47
59
  | [Curve2](../Curve2.md) | Reusable planar curve definition. |
48
60
  | [Curve3](../Curve3.md) | Reusable spatial curve definition. |
49
- | [Path2](../Path2.md) | An ordered, open sequence of two-dimensional points. |
50
- | [Path3](../Path3.md) | An ordered, open sequence of three-dimensional points. |
51
61
  | [PathNormalGuide](../PathNormalGuide.md) | Supplies a profile-X orientation guide for each original normalized sweep station. |
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. |
52
64
 
53
65
  ## Values
54
66
 
55
67
  | API | Summary |
56
68
  | --- | --- |
57
69
  | [computeClosedParallelTransportFrames](../computeClosedParallelTransportFrames.md) | Builds rotation-minimizing frames for a non-duplicated closed path. |
58
- | [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. |
59
- | [cumulativePathLengths](../cumulativePathLengths.md) | Returns cumulative arc length for finite points under maxPathPoints (default 100000); rejects overflowing length. |
70
+ | [computeParallelTransportFrames](../computeParallelTransportFrames.md) | Builds rotation-minimizing frames by parallel-transporting the previous normal. |
60
71
  | [defaultGeometrySamplingLimits](../defaultGeometrySamplingLimits.md) | Conservative defaults; trusted callers can supply larger explicit ceilings. |
61
72
  | [distributeAlongPath](../distributeAlongPath.md) | Places an exact item count at equal arc-length intervals along a sampled path. |
62
- | [pathLength](../pathLength.md) | Returns total sampled 3D path length, or zero for an empty path. |
63
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. |
64
- | [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. |
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)
65
79
 
66
- Package: `@metamesh/modeling@0.14.0`.
80
+ Package: `@metamesh/modeling@0.16.0`.
@@ -1,27 +1,30 @@
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
  | --- | --- |
11
- | [buildHelicalThreadRidgeMesh](../buildHelicalThreadRidgeMesh.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
- | [buildHelicalThreadSolidMesh](../buildHelicalThreadSolidMesh.md) | Builds one closed threaded cylinder without a ridge/core Boolean seam. |
13
+ | [resolveKnuckleHinge](../resolveKnuckleHinge.md) | Resolves equal alternating knuckles along +X, centered at the origin, in millimetres. |
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. |
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. |
14
17
  | [compensateThreadProfileAxially](../compensateThreadProfileAxially.md) | Applies axial fit allowance to a validated periodic profile. |
15
18
  | [compensateThreadProfileForFaceting](../compensateThreadProfileForFaceting.md) | Applies printable axial fit plus the conservative phase allowance required by circular facets. |
16
- | [createThreadProfile](../createThreadProfile.md) | Creates a periodic thread profile for the shaft-locked helical mesher. |
17
- | [getMetricClearanceHole](../getMetricClearanceHole.md) | Returns one recommended metric clearance-hole diameter in millimetres. |
19
+ | [threadProfile](../threadProfile.md) | Creates a periodic thread profile for the shaft-locked helical mesher. |
20
+ | [getMetricClearanceHoleDiameter](../getMetricClearanceHoleDiameter.md) | Returns one recommended metric clearance-hole diameter in millimetres. |
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,11 +71,11 @@ 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`. |
71
- | [ThreadProfile](../ThreadProfile.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
78
+ | [ThreadProfile](../ThreadProfile-type.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
72
79
  | [ThreadProfileBaseSpec](../ThreadProfileBaseSpec.md) | Fields shared by all thread profile specifications. |
73
80
  | [TrapezoidalThreadProfileSpec](../TrapezoidalThreadProfileSpec.md) | Trapezoidal thread profile with a configurable included angle. |
74
81
  | [TriangularThreadProfileSpec](../TriangularThreadProfileSpec.md) | ISO/UTS-like 60-degree truncated triangular profile. |
@@ -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.14.0`.
109
+ ## Guides
110
+
111
+ - [Conservative estimates and preflight guarantees](../../../guides/concepts.md#check-preflight-guarantees)
112
+
113
+ Package: `@metamesh/modeling@0.16.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,27 +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. |
14
- | [createTriangleMeshSignature](../createTriangleMeshSignature.md) | Creates an order-independent regression signature for a manufacturing mesh. |
18
+ | [heightfieldMesh](../heightfieldMesh.md) | Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base. |
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
- | [extrudeMesh](../extrudeMesh.md) | Linearly extrudes one simple profile along +Z with robust ear-clipped caps. |
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
- | [measureTriangleMesh](../measureTriangleMesh.md) | Measures bounds, surface area, and signed volume without changing the mesh. |
19
- | [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. |
20
24
  | [reverseTriangleMesh](../reverseTriangleMesh.md) | Returns a copy of a mesh with every triangle winding reversed. |
21
25
  | [sweepMesh](../sweepMesh.md) | Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam. |
22
26
  | [transformTriangleMesh](../transformTriangleMesh.md) | Applies an affine transform to a mesh and preserves outward face orientation. |
23
27
  | [validateTriangleMesh](../validateTriangleMesh.md) | Validates mesh buffers, indices, triangle area, and optionally closed topology. |
24
28
  | [optimizePlanarPatches](../optimizePlanarPatches.md) | Improves pathological planar triangulation with bounded legal diagonal flips. |
25
29
  | [resolveExtrusionDivisions](../resolveExtrusionDivisions.md) | Resolves intermediate profile copies for linear extrusion from physical curve resolution. |
26
- | [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. |
27
- | [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. |
28
32
 
29
33
  ## Interfaces
30
34
 
31
35
  | API | Summary |
32
36
  | --- | --- |
33
- | [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. |
34
38
  | [PlanarMeshOptimizationOptions](../PlanarMeshOptimizationOptions.md) | Options controlling bounded, connectivity-only optimization of planar triangle patches. |
35
39
  | [PlanarMeshOptimizationResult](../PlanarMeshOptimizationResult.md) | Outcome of bounded planar-patch optimization, including before/after diagnostics. |
36
40
  | [RevolveOptions](../RevolveOptions.md) | Circumferential sampling and degree sweep shared by pure and filled revolution. |
@@ -70,4 +74,8 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
70
74
  | [meshBounds](../meshBounds.md) | Computes axis-aligned bounds for a non-empty mesh. |
71
75
  | [revolveMesh](../revolveMesh.md) | Revolves a non-duplicated closed `[radius, z]` profile around +Z. |
72
76
 
73
- Package: `@metamesh/modeling@0.14.0`.
77
+ ## Guides
78
+
79
+ - [Exact counts and preflight guarantees](../../../guides/concepts.md#check-preflight-guarantees)
80
+
81
+ Package: `@metamesh/modeling@0.16.0`.
@@ -1,34 +1,36 @@
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
 
9
11
  | API | Summary |
10
12
  | --- | --- |
11
- | [linearPatternTransforms](../linearPatternTransforms.md) | Equal linear placements in millimetres, including the original at the origin. |
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
- | [gridPatternTransforms](../gridPatternTransforms.md) | XY or XYZ grid placements in millimetres, 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. |
15
+ | [gridPatternTransforms](../gridPatternTransforms.md) | Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. |
16
+ | [pathPatternTransforms](../pathPatternTransforms.md) | Equal physical arc-length placements along a sampled XYZ path. |
15
17
 
16
18
  ## Interfaces
17
19
 
18
20
  | API | Summary |
19
21
  | --- | --- |
20
- | [RadialPatternOptions](../RadialPatternOptions.md) | Options for repeating one solid around an axis through a center point. |
21
22
  | [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
22
23
 
23
24
  ## Type aliases
24
25
 
25
26
  | API | Summary |
26
27
  | --- | --- |
27
- | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. |
28
- | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. |
28
+ | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. Dimension defaults to 3; Section patterns use 2 and accept XY vector directions. |
29
+ | [RadialPatternOptions](../RadialPatternOptions.md) | Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis. |
30
+ | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane. |
29
31
 
30
32
  ## Guides
31
33
 
32
34
  - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
33
35
 
34
- Package: `@metamesh/modeling@0.14.0`.
36
+ Package: `@metamesh/modeling@0.16.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. PrimitivePlacementOptions 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
 
@@ -15,8 +21,8 @@ Dimensional shapes share object options, millimetre units and explicit placement
15
21
  | [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
16
22
  | [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
17
23
  | [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or straight convex extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
18
- | [PrimitivePlacement](../PrimitivePlacement.md) | Placement shared by solid and filled-section factories. |
19
- | [PrimitivePlacementOptions](../PrimitivePlacementOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
24
+ | [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
25
+ | [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
20
26
  | [RadialSizingOptions](../RadialSizingOptions.md) | Nominal radial sizing shared by circular and regular polygon construction. |
21
27
  | [SmoothEdgeTreatment](../SmoothEdgeTreatment.md) | A cubic corner transition with zero curvature at its straight tangent joins. |
22
28
  | [ProfiledEdgeTreatment](../ProfiledEdgeTreatment.md) | A deliberately sampled, inward-only corner profile with exact polyline geometry. |
@@ -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.14.0`.
42
+ Package: `@metamesh/modeling@0.16.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. The Loop factories return point data; regularPolygonContour uses degree rotation and explicit vertex/face sizing. transformContour and transformRegionData accept Transform2 placements or canonical Transform2Matrix data and retain reflection-safe 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,21 +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
- | [transformContour](../transformContour.md) | Applies a canonical affine XY transform to a closed loop and preserves its original winding. |
25
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. |
26
30
  | [triangulateContour](../triangulateContour.md) | Ear-clips one normalized simple CCW loop into stable local vertex indices. |
27
- | [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. |
28
32
 
29
33
  ## Interfaces
30
34
 
@@ -36,10 +40,10 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
36
40
  | [ContourCurve](../ContourCurve.md) | One explicitly closed planar contour, independent of editor metadata and parameter contracts. |
37
41
  | [ContourPoint](../ContourPoint.md) | Planar X and upward Y in millimetres, or in units converted by sampling scales. |
38
42
  | [SideProfilePoint](../SideProfilePoint.md) | Radius and upward height in millimetres, or in units converted by sampling scales. |
39
- | [PolygonData](../PolygonData.md) | One bounded two-dimensional polygon. |
40
- | [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. |
41
45
  | [ProfileComponent2](../ProfileComponent2.md) | One component and its explicitly identified holes. |
42
- | [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. |
43
47
  | [RectangleContourOptions](../RectangleContourOptions.md) | Shared rectangle dimensions, origin and uniform or per-corner treatment. |
44
48
  | [RectangleProfileOptions](../RectangleProfileOptions.md) | Shared rectangle options with an identified component for explicit profile families. |
45
49
  | [SampleSideProfileOptions](../SampleSideProfileOptions.md) | Physical scaling and bounded adaptive subdivision for an open profile. |
@@ -54,12 +58,12 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
54
58
  | --- | --- |
55
59
  | [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
56
60
  | [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
57
- | [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. |
58
62
  | [CorrespondingProfileStation](../CorrespondingProfileStation.md) | One already matched profile at an explicit height or right-handed spatial frame. |
59
63
  | [ContourSegment](../ContourSegment.md) | Straight or cubic Bézier segment in one closed planar contour. |
60
64
  | [SideProfileSegment](../SideProfileSegment.md) | One straight or cubic segment of an open, upward-progressing radius/height outline. |
61
65
  | [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
62
- | [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. |
63
67
  | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
64
68
  | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
65
69
 
@@ -71,4 +75,8 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
71
75
  | [regularPolygonContour](../regularPolygonContour.md) | Creates a centered CCW point loop with vertex or face radial sizing and an implicit seam. |
72
76
  | [starContour](../starContour.md) | Creates a centered CCW alternating-radius star within the selected profile sampling ceiling. |
73
77
 
74
- Package: `@metamesh/modeling@0.14.0`.
78
+ ## Guides
79
+
80
+ - [Choose a geometry representation](../../../guides/concepts.md#geometry-vocabulary)
81
+
82
+ Package: `@metamesh/modeling@0.16.0`.
@@ -2,13 +2,15 @@
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. 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. |
@@ -44,4 +46,4 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
44
46
  | --- | --- |
45
47
  | [DEFAULT_GEOMETRY_TOLERANCE](../DEFAULT_GEOMETRY_TOLERANCE.md) | Default absolute, relative, and angular tolerances for millimetre-scale models. |
46
48
 
47
- Package: `@metamesh/modeling@0.14.0`.
49
+ Package: `@metamesh/modeling@0.16.0`.