@metamesh/modeling 0.13.0 → 0.14.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 (654) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +52 -9
  3. package/dist/api/engine.d.ts +3 -3
  4. package/dist/api/geometry.d.ts +521 -185
  5. package/dist/api/index.d.ts +414 -145
  6. package/dist/api/text.d.ts +3 -3
  7. package/dist/docs/guides/concepts.md +114 -11
  8. package/dist/docs/guides/fonts.md +8 -0
  9. package/dist/docs/guides/fundamentals.md +4 -2
  10. package/dist/docs/guides/generation.md +6 -4
  11. package/dist/docs/guides/hosting.md +7 -4
  12. package/dist/docs/guides/recipes.md +52 -2
  13. package/dist/docs/manifest.json +1246 -394
  14. package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
  15. package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
  16. package/dist/docs/reference/engine/GenerationOptions.md +1 -1
  17. package/dist/docs/reference/engine/GeometryResource.md +1 -1
  18. package/dist/docs/reference/engine/ModelDependencies.md +1 -1
  19. package/dist/docs/reference/engine/ModelEngine.md +1 -1
  20. package/dist/docs/reference/engine/ModelEngineOptions.md +1 -1
  21. package/dist/docs/reference/engine/ModelSession.md +1 -1
  22. package/dist/docs/reference/engine/ModelSnapshot.md +1 -1
  23. package/dist/docs/reference/engine/SessionOptions.md +1 -1
  24. package/dist/docs/reference/engine/SnapshotPart.md +3 -3
  25. package/dist/docs/reference/engine/categories/host-lifecycle.md +1 -1
  26. package/dist/docs/reference/engine/createModelEngine.md +1 -1
  27. package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
  28. package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
  29. package/dist/docs/reference/engine/validateModel.md +1 -1
  30. package/dist/docs/reference/engine.md +1 -1
  31. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
  32. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +14 -1
  33. package/dist/docs/reference/geometry/Anchor3.md +9 -5
  34. package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
  35. package/dist/docs/reference/geometry/ArcCurve3.md +5 -5
  36. package/dist/docs/reference/geometry/AttachTransformOptions.md +5 -1
  37. package/dist/docs/reference/geometry/AxisAngleRotation3.md +6 -1
  38. package/dist/docs/reference/geometry/Bounds2.md +4 -4
  39. package/dist/docs/reference/geometry/Bounds3.md +4 -4
  40. package/dist/docs/reference/geometry/BoundsFit2.md +3 -3
  41. package/dist/docs/reference/geometry/BoundsFit3.md +3 -3
  42. package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
  43. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +1 -1
  44. package/dist/docs/reference/geometry/BoxAnchorFace.md +8 -1
  45. package/dist/docs/reference/geometry/BoxAnchorOptions.md +8 -4
  46. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  47. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  48. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  49. package/dist/docs/reference/geometry/BoxOptions.md +3 -3
  50. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
  51. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
  52. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  53. package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
  54. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
  55. package/dist/docs/reference/geometry/CircularResolutionOptions.md +107 -0
  56. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
  57. package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
  58. package/dist/docs/reference/geometry/ClosestPointOnPathOptions.md +34 -0
  59. package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +65 -0
  60. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
  61. package/dist/docs/reference/geometry/Contour.md +3 -3
  62. package/dist/docs/reference/geometry/ContourCurve.md +1 -1
  63. package/dist/docs/reference/geometry/ContourPoint.md +1 -1
  64. package/dist/docs/reference/geometry/ContourSegment.md +1 -1
  65. package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
  66. package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
  67. package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
  68. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
  69. package/dist/docs/reference/geometry/CubicBezierCurve2.md +6 -6
  70. package/dist/docs/reference/geometry/CubicBezierCurve3.md +6 -6
  71. package/dist/docs/reference/geometry/Curve2.md +1 -1
  72. package/dist/docs/reference/geometry/Curve3.md +1 -1
  73. package/dist/docs/reference/geometry/CurveSamplingOptions.md +1 -1
  74. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +3 -3
  75. package/dist/docs/reference/geometry/CylinderAnchorFace.md +8 -1
  76. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +7 -3
  77. package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
  78. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
  79. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
  80. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
  81. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +1 -1
  82. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
  83. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
  84. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
  85. package/dist/docs/reference/geometry/CylindricalGearSpec.md +1 -1
  86. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  87. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  88. package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
  89. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  90. package/dist/docs/reference/geometry/ExtrudeOptions.md +3 -3
  91. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +3 -3
  92. package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
  93. package/dist/docs/reference/geometry/Frame3.md +6 -6
  94. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  95. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  96. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  97. package/dist/docs/reference/geometry/GeometryResolution.md +10 -1
  98. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
  99. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  100. package/dist/docs/reference/geometry/GridPatternOptions.md +4 -4
  101. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
  102. package/dist/docs/reference/geometry/HeightfieldOptions.md +5 -5
  103. package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
  104. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +1 -1
  105. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +1 -1
  106. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
  107. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +7 -3
  108. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +1 -1
  109. package/dist/docs/reference/geometry/LineCurve2.md +4 -4
  110. package/dist/docs/reference/geometry/LineCurve3.md +4 -4
  111. package/dist/docs/reference/geometry/LinearPatternOptions.md +3 -3
  112. package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
  113. package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
  114. package/dist/docs/reference/geometry/LoftOptions.md +1 -1
  115. package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
  116. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
  117. package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
  118. package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
  119. package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
  120. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
  121. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
  122. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  123. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
  124. package/dist/docs/reference/geometry/Path2.md +3 -3
  125. package/dist/docs/reference/geometry/Path3.md +3 -3
  126. package/dist/docs/reference/geometry/PathFrame.md +5 -5
  127. package/dist/docs/reference/geometry/PathNormalGuide.md +5 -5
  128. package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
  129. package/dist/docs/reference/geometry/PathPlacement.md +4 -4
  130. package/dist/docs/reference/geometry/Pivot2Options.md +26 -0
  131. package/dist/docs/reference/geometry/Pivot3Options.md +26 -0
  132. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
  133. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +1 -1
  134. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
  135. package/dist/docs/reference/geometry/PlanarPatchQuality.md +3 -3
  136. package/dist/docs/reference/geometry/{Polygon.md → PolygonData.md} +2 -2
  137. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +1 -1
  138. package/dist/docs/reference/geometry/PrimitivePlacement.md +1 -1
  139. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +1 -1
  140. package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
  141. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
  142. package/dist/docs/reference/geometry/Profile.md +1 -1
  143. package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
  144. package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
  145. package/dist/docs/reference/geometry/ProfileSpan2.md +3 -3
  146. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
  147. package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
  148. package/dist/docs/reference/geometry/RackPitchSpec.md +1 -1
  149. package/dist/docs/reference/geometry/RadialPatternOptions.md +4 -4
  150. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  151. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  152. package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
  153. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
  154. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
  155. package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
  156. package/dist/docs/reference/geometry/RegionData.md +14 -0
  157. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +1 -1
  158. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  159. package/dist/docs/reference/geometry/RevolveOptions.md +1 -1
  160. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  161. package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
  162. package/dist/docs/reference/geometry/SampleContourOptions.md +1 -1
  163. package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
  164. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
  165. package/dist/docs/reference/geometry/SampledCurve2.md +4 -4
  166. package/dist/docs/reference/geometry/SampledCurve3.md +4 -4
  167. package/dist/docs/reference/geometry/SampledThreadHelices.md +1 -1
  168. package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
  169. package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
  170. package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
  171. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  172. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +1 -1
  173. package/dist/docs/reference/geometry/SphereOptions.md +1 -1
  174. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
  175. package/dist/docs/reference/geometry/StrokePathCap.md +1 -1
  176. package/dist/docs/reference/geometry/StrokePathJoin.md +1 -1
  177. package/dist/docs/reference/geometry/StrokePathRegionOptions.md +2 -2
  178. package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
  179. package/dist/docs/reference/geometry/SvgRegionPreflight.md +3 -3
  180. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +1 -1
  181. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
  182. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
  183. package/dist/docs/reference/geometry/SweepOptions.md +3 -3
  184. package/dist/docs/reference/geometry/SweepOrientation.md +7 -7
  185. package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
  186. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +1 -1
  187. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
  188. package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
  189. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
  190. package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
  191. package/dist/docs/reference/geometry/ThreadHelixOptions.md +1 -1
  192. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
  193. package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
  194. package/dist/docs/reference/geometry/ThreadProfile.md +3 -3
  195. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
  196. package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
  197. package/dist/docs/reference/geometry/ThreadRole.md +1 -1
  198. package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
  199. package/dist/docs/reference/geometry/ThreadedNutOptions.md +1 -1
  200. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
  201. package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
  202. package/dist/docs/reference/geometry/ThreadedRodOptions.md +1 -1
  203. package/dist/docs/reference/geometry/TorusOptions.md +1 -1
  204. package/dist/docs/reference/geometry/Transform2-type.md +255 -0
  205. package/dist/docs/reference/geometry/Transform2Input.md +19 -0
  206. package/dist/docs/reference/geometry/Transform2Matrix.md +14 -0
  207. package/dist/docs/reference/geometry/Transform3-type.md +295 -0
  208. package/dist/docs/reference/geometry/Transform3Input.md +19 -0
  209. package/dist/docs/reference/geometry/Transform3Matrix.md +17 -0
  210. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +1 -1
  211. package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
  212. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +1 -1
  213. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
  214. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
  215. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +1 -1
  216. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
  217. package/dist/docs/reference/geometry/TriangleMeshSignature.md +1 -1
  218. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
  219. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
  220. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
  221. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
  222. package/dist/docs/reference/geometry/TubeOptions.md +1 -1
  223. package/dist/docs/reference/geometry/Vector2-type.md +269 -0
  224. package/dist/docs/reference/geometry/Vector2Input.md +19 -0
  225. package/dist/docs/reference/geometry/Vector2Tuple.md +14 -0
  226. package/dist/docs/reference/geometry/Vector3-type.md +281 -0
  227. package/dist/docs/reference/geometry/Vector3Input.md +19 -0
  228. package/dist/docs/reference/geometry/Vector3Tuple.md +14 -0
  229. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +1 -1
  230. package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
  231. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
  232. package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
  233. package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
  234. package/dist/docs/reference/geometry/add2.md +36 -0
  235. package/dist/docs/reference/geometry/add3.md +10 -6
  236. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
  237. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +1 -1
  238. package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
  239. package/dist/docs/reference/geometry/applyTransformDirection3.md +11 -7
  240. package/dist/docs/reference/geometry/applyTransformPoint3.md +11 -7
  241. package/dist/docs/reference/geometry/attachTransform.md +8 -4
  242. package/dist/docs/reference/geometry/boundsCenter.md +7 -7
  243. package/dist/docs/reference/geometry/boundsFromSize.md +7 -7
  244. package/dist/docs/reference/geometry/boundsSize.md +7 -7
  245. package/dist/docs/reference/geometry/boxAnchor3.md +7 -3
  246. package/dist/docs/reference/geometry/buildHelicalThreadRidgeMesh.md +1 -1
  247. package/dist/docs/reference/geometry/buildHelicalThreadSolidMesh.md +1 -1
  248. package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
  249. package/dist/docs/reference/geometry/categories/curves-paths.md +6 -3
  250. package/dist/docs/reference/geometry/categories/mechanical.md +1 -1
  251. package/dist/docs/reference/geometry/categories/meshes.md +1 -1
  252. package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
  253. package/dist/docs/reference/geometry/categories/primitive-options.md +1 -1
  254. package/dist/docs/reference/geometry/categories/profiles-regions.md +6 -6
  255. package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -2
  256. package/dist/docs/reference/geometry/categories/transforms-math.md +37 -8
  257. package/dist/docs/reference/geometry/categories/vector-import.md +2 -2
  258. package/dist/docs/reference/geometry/circleContour.md +1 -1
  259. package/dist/docs/reference/geometry/closeToAxis.md +4 -4
  260. package/dist/docs/reference/geometry/closestPointOnPath.md +110 -0
  261. package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
  262. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
  263. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
  264. package/dist/docs/reference/geometry/composeTransform3.md +10 -6
  265. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -5
  266. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +5 -5
  267. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +4 -4
  268. package/dist/docs/reference/geometry/containsBounds.md +1 -1
  269. package/dist/docs/reference/geometry/contourContainsPoint.md +4 -4
  270. package/dist/docs/reference/geometry/createAnchor3.md +10 -6
  271. package/dist/docs/reference/geometry/createThreadProfile.md +1 -1
  272. package/dist/docs/reference/geometry/createTriangleMeshSignature.md +1 -1
  273. package/dist/docs/reference/geometry/cross2.md +36 -0
  274. package/dist/docs/reference/geometry/cross3.md +10 -6
  275. package/dist/docs/reference/geometry/cumulativePathLengths.md +4 -4
  276. package/dist/docs/reference/geometry/cylinderAnchor3.md +6 -2
  277. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
  278. package/dist/docs/reference/geometry/distance2.md +36 -0
  279. package/dist/docs/reference/geometry/distance3.md +36 -0
  280. package/dist/docs/reference/geometry/distributeAlongPath.md +4 -4
  281. package/dist/docs/reference/geometry/dot2.md +36 -0
  282. package/dist/docs/reference/geometry/dot3.md +9 -5
  283. package/dist/docs/reference/geometry/ellipseContour.md +1 -1
  284. package/dist/docs/reference/geometry/eulerTransform3.md +10 -6
  285. package/dist/docs/reference/geometry/extrudeMesh.md +2 -2
  286. package/dist/docs/reference/geometry/fitBounds.md +1 -1
  287. package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
  288. package/dist/docs/reference/geometry/frameTransform3.md +8 -4
  289. package/dist/docs/reference/geometry/getMetricClearanceHole.md +1 -1
  290. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
  291. package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
  292. package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
  293. package/dist/docs/reference/geometry/inverseTransform3.md +9 -5
  294. package/dist/docs/reference/geometry/isGeometryError.md +1 -1
  295. package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
  296. package/dist/docs/reference/geometry/layoutRow.md +4 -4
  297. package/dist/docs/reference/geometry/length2.md +30 -0
  298. package/dist/docs/reference/geometry/length3.md +8 -4
  299. package/dist/docs/reference/geometry/lerp2.md +42 -0
  300. package/dist/docs/reference/geometry/lerp3.md +10 -6
  301. package/dist/docs/reference/geometry/linearPatternTransforms.md +4 -4
  302. package/dist/docs/reference/geometry/loftMesh.md +1 -1
  303. package/dist/docs/reference/geometry/matchProfiles.md +1 -1
  304. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +3 -2
  305. package/dist/docs/reference/geometry/measureTriangleMesh.md +1 -1
  306. package/dist/docs/reference/geometry/meshBounds.md +1 -1
  307. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
  308. package/dist/docs/reference/geometry/normalize2.md +36 -0
  309. package/dist/docs/reference/geometry/normalize3.md +10 -6
  310. package/dist/docs/reference/geometry/normalizeContour.md +4 -4
  311. package/dist/docs/reference/geometry/normalizePolygon.md +5 -5
  312. package/dist/docs/reference/geometry/normalizeRegion.md +5 -5
  313. package/dist/docs/reference/geometry/optimizePlanarPatches.md +1 -1
  314. package/dist/docs/reference/geometry/pathLength.md +4 -4
  315. package/dist/docs/reference/geometry/pathPatternTransforms.md +6 -6
  316. package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
  317. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +1 -1
  318. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +1 -1
  319. package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
  320. package/dist/docs/reference/geometry/preflightThreadedNut.md +1 -1
  321. package/dist/docs/reference/geometry/preflightThreadedRod.md +1 -1
  322. package/dist/docs/reference/geometry/projectOntoPlane3.md +10 -6
  323. package/dist/docs/reference/geometry/radialPatternTransforms.md +6 -6
  324. package/dist/docs/reference/geometry/rectangleContour.md +2 -2
  325. package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
  326. package/dist/docs/reference/geometry/regionArea.md +4 -4
  327. package/dist/docs/reference/geometry/regionBounds.md +4 -4
  328. package/dist/docs/reference/geometry/regularPolygonContour.md +4 -4
  329. package/dist/docs/reference/geometry/resamplePolyline2.md +4 -4
  330. package/dist/docs/reference/geometry/resamplePolyline3.md +4 -4
  331. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -1
  332. package/dist/docs/reference/geometry/resolveArcSegments.md +4 -4
  333. package/dist/docs/reference/geometry/resolveCircularSegments.md +6 -5
  334. package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
  335. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
  336. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +5 -5
  337. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
  338. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  339. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
  340. package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
  341. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +1 -1
  342. package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
  343. package/dist/docs/reference/geometry/revolveMesh.md +4 -4
  344. package/dist/docs/reference/geometry/rotate2.md +36 -0
  345. package/dist/docs/reference/geometry/rotationTransform3.md +10 -6
  346. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +5 -5
  347. package/dist/docs/reference/geometry/sampleContour.md +1 -1
  348. package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
  349. package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
  350. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
  351. package/dist/docs/reference/geometry/sampleHelix.md +4 -4
  352. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
  353. package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
  354. package/dist/docs/reference/geometry/sampleSideProfile.md +4 -4
  355. package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
  356. package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
  357. package/dist/docs/reference/geometry/scale2.md +36 -0
  358. package/dist/docs/reference/geometry/scale3.md +9 -5
  359. package/dist/docs/reference/geometry/scaleTransform3.md +10 -6
  360. package/dist/docs/reference/geometry/signedContourArea.md +1 -1
  361. package/dist/docs/reference/geometry/starContour.md +4 -4
  362. package/dist/docs/reference/geometry/strokePathRegion.md +4 -4
  363. package/dist/docs/reference/geometry/subtract2.md +36 -0
  364. package/dist/docs/reference/geometry/subtract3.md +10 -6
  365. package/dist/docs/reference/geometry/sweepMesh.md +5 -5
  366. package/dist/docs/reference/geometry/transform2.md +38 -0
  367. package/dist/docs/reference/geometry/transform3.md +38 -0
  368. package/dist/docs/reference/geometry/transformContour.md +5 -5
  369. package/dist/docs/reference/geometry/transformDeterminant3.md +8 -4
  370. package/dist/docs/reference/geometry/transformPath2.md +5 -5
  371. package/dist/docs/reference/geometry/transformPath3.md +5 -5
  372. package/dist/docs/reference/geometry/transformRegionData.md +40 -0
  373. package/dist/docs/reference/geometry/transformTriangleMesh.md +4 -4
  374. package/dist/docs/reference/geometry/translationTransform3.md +10 -6
  375. package/dist/docs/reference/geometry/triangulateContour.md +1 -1
  376. package/dist/docs/reference/geometry/validateSolidMesh.md +1 -1
  377. package/dist/docs/reference/geometry/validateTransform3.md +9 -5
  378. package/dist/docs/reference/geometry/validateTriangleMesh.md +1 -1
  379. package/dist/docs/reference/geometry/vector2.md +31 -0
  380. package/dist/docs/reference/geometry/vector3.md +38 -0
  381. package/dist/docs/reference/geometry.md +2 -2
  382. package/dist/docs/reference/model/Anchor3.md +5 -5
  383. package/dist/docs/reference/model/AttachOptions.md +1 -1
  384. package/dist/docs/reference/model/Bounds2.md +4 -4
  385. package/dist/docs/reference/model/Bounds3.md +4 -4
  386. package/dist/docs/reference/model/BoxEdge.md +1 -1
  387. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  388. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  389. package/dist/docs/reference/model/BoxOptions.md +3 -3
  390. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  391. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  392. package/dist/docs/reference/model/CircleOptions.md +1 -1
  393. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
  394. package/dist/docs/reference/model/Computed.md +1 -1
  395. package/dist/docs/reference/model/ComputedValue.md +1 -1
  396. package/dist/docs/reference/model/Contour.md +3 -3
  397. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  398. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  399. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  400. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  401. package/dist/docs/reference/model/CylinderOptions.md +1 -1
  402. package/dist/docs/reference/model/DiagnosticOptions.md +1 -1
  403. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  404. package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
  405. package/dist/docs/reference/model/EllipseOptions.md +1 -1
  406. package/dist/docs/reference/model/EndTreatments.md +1 -1
  407. package/dist/docs/reference/model/ExtrudeOptions.md +3 -3
  408. package/dist/docs/reference/model/FinalizedModel.md +1 -1
  409. package/dist/docs/reference/model/FinalizedPart.md +1 -1
  410. package/dist/docs/reference/model/Frame3.md +6 -6
  411. package/dist/docs/reference/model/GenerateCallback.md +1 -1
  412. package/dist/docs/reference/model/GenerateContext.md +5 -5
  413. package/dist/docs/reference/model/GeneratedPart.md +6 -6
  414. package/dist/docs/reference/model/GenerationDiagnostic.md +1 -1
  415. package/dist/docs/reference/model/GenerationError.md +1 -1
  416. package/dist/docs/reference/model/GeometryResolution.md +1 -1
  417. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  418. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  419. package/dist/docs/reference/model/GridPatternOptions.md +4 -4
  420. package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
  421. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +1 -1
  422. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +1 -1
  423. package/dist/docs/reference/model/HullOptions.md +7 -7
  424. package/dist/docs/reference/model/ImmutableBuffer-type.md +1 -1
  425. package/dist/docs/reference/model/ImmutableTriangleMesh.md +1 -1
  426. package/dist/docs/reference/model/ImplicitOptions.md +4 -4
  427. package/dist/docs/reference/model/InternalThreadCutterOptions.md +1 -1
  428. package/dist/docs/reference/model/LinearPatternOptions.md +3 -3
  429. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  430. package/dist/docs/reference/model/LoftOptions.md +1 -1
  431. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  432. package/dist/docs/reference/model/LoftStation.md +2 -2
  433. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  434. package/dist/docs/reference/model/ModelProgram.md +1 -1
  435. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  436. package/dist/docs/reference/model/NumericArray.md +1 -1
  437. package/dist/docs/reference/model/PartGeometry.md +1 -1
  438. package/dist/docs/reference/model/PartOptions.md +6 -6
  439. package/dist/docs/reference/model/{fromRegion.md → Path2.md} +5 -18
  440. package/dist/docs/reference/model/PathNormalGuide.md +5 -5
  441. package/dist/docs/reference/model/PathPatternOptions.md +1 -1
  442. package/dist/docs/reference/model/PatternSource.md +2 -2
  443. package/dist/docs/reference/model/Pivot2Options.md +27 -0
  444. package/dist/docs/reference/model/Pivot3Options.md +27 -0
  445. package/dist/docs/reference/model/PlaneOptions.md +3 -3
  446. package/dist/docs/reference/model/{Polygon-type.md → PolygonData.md} +2 -2
  447. package/dist/docs/reference/model/PolygonOptions.md +81 -4
  448. package/dist/docs/reference/model/PrimitivePlacement.md +1 -1
  449. package/dist/docs/reference/model/PrimitivePlacementOptions.md +1 -1
  450. package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
  451. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
  452. package/dist/docs/reference/model/Profile.md +1 -1
  453. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  454. package/dist/docs/reference/model/ProfileContour2.md +1 -1
  455. package/dist/docs/reference/model/ProfileSpan2.md +3 -3
  456. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
  457. package/dist/docs/reference/model/RadialPatternOptions.md +4 -4
  458. package/dist/docs/reference/model/RadialSizing.md +1 -1
  459. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  460. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  461. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  462. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  463. package/dist/docs/reference/model/RectangleOptions.md +3 -3
  464. package/dist/docs/reference/model/{Region.md → RegionData.md} +4 -4
  465. package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
  466. package/dist/docs/reference/model/RevolveOptions.md +1 -1
  467. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  468. package/dist/docs/reference/model/Section.md +75 -35
  469. package/dist/docs/reference/model/SectionHullOptions.md +7 -7
  470. package/dist/docs/reference/model/SectionInspection.md +4 -4
  471. package/dist/docs/reference/model/{RegionOffsetJoin.md → SectionOffsetJoin.md} +3 -3
  472. package/dist/docs/reference/model/{RegionOffsetOptions.md → SectionOffsetOptions.md} +4 -4
  473. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  474. package/dist/docs/reference/model/Solid.md +44 -21
  475. package/dist/docs/reference/model/SolidInspection.md +4 -4
  476. package/dist/docs/reference/model/SolidRayHit.md +4 -4
  477. package/dist/docs/reference/model/SphereOptions.md +1 -1
  478. package/dist/docs/reference/model/StarOptions.md +1 -1
  479. package/dist/docs/reference/model/StrokeOptions.md +91 -0
  480. package/dist/docs/reference/model/StrokePathCap.md +16 -0
  481. package/dist/docs/reference/model/StrokePathJoin.md +16 -0
  482. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  483. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  484. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  485. package/dist/docs/reference/model/SweepOptions.md +3 -3
  486. package/dist/docs/reference/model/SweepOrientation.md +7 -7
  487. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  488. package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
  489. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
  490. package/dist/docs/reference/model/ThreadHandedness.md +1 -1
  491. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
  492. package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
  493. package/dist/docs/reference/model/ThreadProfile.md +3 -3
  494. package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
  495. package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
  496. package/dist/docs/reference/model/ThreadedNutOptions.md +1 -1
  497. package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
  498. package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
  499. package/dist/docs/reference/model/ThreadedRodOptions.md +1 -1
  500. package/dist/docs/reference/model/TorusOptions.md +1 -1
  501. package/dist/docs/reference/model/Transform2-type.md +256 -0
  502. package/dist/docs/reference/model/Transform2Input.md +20 -0
  503. package/dist/docs/reference/model/Transform2Matrix.md +15 -0
  504. package/dist/docs/reference/model/Transform3-type.md +296 -0
  505. package/dist/docs/reference/model/Transform3Input.md +20 -0
  506. package/dist/docs/reference/model/{Transform3.md → Transform3Matrix.md} +3 -3
  507. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  508. package/dist/docs/reference/model/TriangleMeshAnalysis.md +1 -1
  509. package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
  510. package/dist/docs/reference/model/TubeOptions.md +1 -1
  511. package/dist/docs/reference/model/Vector2-type.md +270 -0
  512. package/dist/docs/reference/model/Vector2Input.md +20 -0
  513. package/dist/docs/reference/model/{Vector2.md → Vector2Tuple.md} +3 -3
  514. package/dist/docs/reference/model/Vector3-type.md +282 -0
  515. package/dist/docs/reference/model/Vector3Input.md +20 -0
  516. package/dist/docs/reference/model/{Vector3.md → Vector3Tuple.md} +3 -3
  517. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  518. package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
  519. package/dist/docs/reference/model/anchor.md +1 -1
  520. package/dist/docs/reference/model/box.md +2 -2
  521. package/dist/docs/reference/model/categories/boolean-operations.md +4 -4
  522. package/dist/docs/reference/model/categories/bounded-surfaces.md +3 -3
  523. package/dist/docs/reference/model/categories/contracts.md +1 -1
  524. package/dist/docs/reference/model/categories/core-values-errors.md +5 -5
  525. package/dist/docs/reference/model/categories/explicit-profiles.md +2 -2
  526. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +1 -1
  527. package/dist/docs/reference/model/categories/generation.md +1 -1
  528. package/dist/docs/reference/model/categories/inspection.md +5 -5
  529. package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
  530. package/dist/docs/reference/model/categories/primitives.md +2 -2
  531. package/dist/docs/reference/model/categories/resolution.md +1 -1
  532. package/dist/docs/reference/model/categories/sections.md +11 -8
  533. package/dist/docs/reference/model/categories/threads.md +1 -1
  534. package/dist/docs/reference/model/categories/transforms-placement.md +21 -7
  535. package/dist/docs/reference/model/circle.md +1 -1
  536. package/dist/docs/reference/model/components.md +7 -4
  537. package/dist/docs/reference/model/compose.md +1 -1
  538. package/dist/docs/reference/model/cylinder.md +1 -1
  539. package/dist/docs/reference/model/distance.md +2 -2
  540. package/dist/docs/reference/model/ellipse.md +1 -1
  541. package/dist/docs/reference/model/extrude.md +2 -2
  542. package/dist/docs/reference/model/generate.md +1 -1
  543. package/dist/docs/reference/model/gridPattern.md +1 -1
  544. package/dist/docs/reference/model/heightfield.md +2 -2
  545. package/dist/docs/reference/model/hull.md +2 -2
  546. package/dist/docs/reference/model/immutableBuffer.md +1 -1
  547. package/dist/docs/reference/model/immutableMesh.md +1 -1
  548. package/dist/docs/reference/model/implicit.md +3 -3
  549. package/dist/docs/reference/model/inspectSection.md +1 -1
  550. package/dist/docs/reference/model/inspectSolid.md +1 -1
  551. package/dist/docs/reference/model/internalThreadCutter.md +1 -1
  552. package/dist/docs/reference/model/intersect.md +1 -1
  553. package/dist/docs/reference/model/isEmpty.md +2 -2
  554. package/dist/docs/reference/model/linearPattern.md +1 -1
  555. package/dist/docs/reference/model/loft.md +1 -1
  556. package/dist/docs/reference/model/matchProfiles.md +1 -1
  557. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  558. package/dist/docs/reference/model/pathPattern.md +6 -6
  559. package/dist/docs/reference/model/polygon.md +1 -1
  560. package/dist/docs/reference/model/preflightInternalThreadCutter.md +1 -1
  561. package/dist/docs/reference/model/preflightThreadedNut.md +1 -1
  562. package/dist/docs/reference/model/preflightThreadedRod.md +1 -1
  563. package/dist/docs/reference/model/radialPattern.md +5 -5
  564. package/dist/docs/reference/model/rayCast.md +5 -5
  565. package/dist/docs/reference/model/rectangle.md +2 -2
  566. package/dist/docs/reference/model/regularPolygon.md +1 -1
  567. package/dist/docs/reference/model/revolve.md +1 -1
  568. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  569. package/dist/docs/reference/model/sphere.md +1 -1
  570. package/dist/docs/reference/model/split.md +1 -1
  571. package/dist/docs/reference/model/splitByPlane.md +1 -1
  572. package/dist/docs/reference/model/star.md +1 -1
  573. package/dist/docs/reference/model/stroke.md +74 -0
  574. package/dist/docs/reference/model/svgPathSection.md +1 -1
  575. package/dist/docs/reference/model/svgSection.md +1 -1
  576. package/dist/docs/reference/model/sweep.md +5 -5
  577. package/dist/docs/reference/model/textSection.md +1 -1
  578. package/dist/docs/reference/model/threadRidge.md +1 -1
  579. package/dist/docs/reference/model/threadedNut.md +1 -1
  580. package/dist/docs/reference/model/threadedRod.md +1 -1
  581. package/dist/docs/reference/model/toTriangleMesh.md +1 -1
  582. package/dist/docs/reference/model/torus.md +1 -1
  583. package/dist/docs/reference/model/transform2.md +39 -0
  584. package/dist/docs/reference/model/transform3.md +39 -0
  585. package/dist/docs/reference/model/tube.md +1 -1
  586. package/dist/docs/reference/model/union.md +1 -1
  587. package/dist/docs/reference/model/vector2.md +32 -0
  588. package/dist/docs/reference/model/vector3.md +39 -0
  589. package/dist/docs/reference/model.md +7 -7
  590. package/dist/docs/reference/text/Bounds2.md +4 -4
  591. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  592. package/dist/docs/reference/text/Vector2Tuple.md +7 -0
  593. package/dist/docs/reference/text/VectorFont.md +1 -1
  594. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  595. package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
  596. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  597. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  598. package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
  599. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  600. package/dist/docs/reference/text/categories/font-preparation.md +2 -2
  601. package/dist/docs/reference/text/prepareVectorFont.md +1 -1
  602. package/dist/docs/reference/text.md +1 -1
  603. package/dist/engine/deferred-context.js +11 -181
  604. package/dist/engine/native/transforms.js +6 -1
  605. package/dist/engine/pattern-operations.js +2 -2
  606. package/dist/engine/primitive-profiles.js +1 -0
  607. package/dist/engine/recipe-realization.js +29 -21
  608. package/dist/engine/section-operations.js +19 -3
  609. package/dist/engine/session-graph.js +1 -1
  610. package/dist/engine/session-native.js +1 -1
  611. package/dist/engine/session-snapshot.js +3 -2
  612. package/dist/engine/session.js +3 -3
  613. package/dist/engine/shape-anchors.js +3 -9
  614. package/dist/engine/transform-operations.js +42 -25
  615. package/dist/geometry/index.js +6 -2
  616. package/dist/geometry/math/immutable-value.js +20 -0
  617. package/dist/geometry/math/vector-value.js +168 -0
  618. package/dist/geometry/math/vector2.js +80 -0
  619. package/dist/geometry/math/vector3.js +37 -7
  620. package/dist/geometry/mechanical/gear-motion.js +7 -4
  621. package/dist/geometry/mesh/mesh-solid-intersections.js +5 -1
  622. package/dist/geometry/paths/closest-point.js +74 -0
  623. package/dist/geometry/paths/frames.js +3 -3
  624. package/dist/geometry/primitive-resolution.js +4 -1
  625. package/dist/geometry/resolution.js +17 -5
  626. package/dist/geometry/stroke-path.js +48 -44
  627. package/dist/geometry/sweeps/stations.js +4 -4
  628. package/dist/geometry/sweeps/sweep-closed.js +3 -3
  629. package/dist/geometry/sweeps/sweep-open.js +3 -3
  630. package/dist/geometry/transform-chain.js +172 -0
  631. package/dist/geometry/transform-geometry.js +28 -24
  632. package/dist/geometry/transform-matrix.js +14 -0
  633. package/dist/geometry/transform2.js +60 -0
  634. package/dist/geometry/transform3.js +70 -26
  635. package/dist/index.js +3 -0
  636. package/dist/model/execution-binding.js +10 -5
  637. package/dist/model/geometry-recipes.js +15 -0
  638. package/dist/{engine → model}/immutable-generation-data.js +25 -3
  639. package/dist/model/operation-dispatch.js +10 -3
  640. package/dist/model/operations.js +21 -10
  641. package/dist/model/recipe-declaration.js +193 -0
  642. package/dist/model/shape-handles.js +15 -4
  643. package/package.json +1 -1
  644. package/dist/docs/reference/geometry/Region.md +0 -14
  645. package/dist/docs/reference/geometry/Transform3.md +0 -12
  646. package/dist/docs/reference/geometry/Vector2.md +0 -7
  647. package/dist/docs/reference/geometry/Vector3.md +0 -7
  648. package/dist/docs/reference/geometry/rotateAroundAxis3.md +0 -38
  649. package/dist/docs/reference/geometry/transformRegion.md +0 -40
  650. package/dist/docs/reference/model/Transform2.md +0 -15
  651. package/dist/docs/reference/model/toRegion.md +0 -33
  652. package/dist/docs/reference/text/Vector2.md +0 -7
  653. package/dist/engine/geometry-recipes.js +0 -12
  654. package/dist/engine/pattern-transform.js +0 -9
@@ -2,7 +2,7 @@
2
2
 
3
3
  Adds two finite XYZ vectors component-wise.
4
4
 
5
- `const` **add3**: (`a`: [`Vector3`](Vector3.md), `b`: [`Vector3`](Vector3.md)) => [`Vector3`](Vector3.md)
5
+ `const` **add3**: (`a`: [`Vector3Tuple`](Vector3Tuple.md), `b`: [`Vector3Tuple`](Vector3Tuple.md)) => [`Vector3Tuple`](Vector3Tuple.md)
6
6
 
7
7
 
8
8
 
@@ -16,23 +16,27 @@ add3([1, 2, 3], [4, 5, 6]); // [5, 7, 9]
16
16
 
17
17
  <a id="a"></a>
18
18
 
19
- **`a`** · [`Vector3`](Vector3.md) · Required
19
+ **`a`** · [`Vector3Tuple`](Vector3Tuple.md) · Required
20
20
 
21
21
 
22
22
 
23
23
  <a id="b"></a>
24
24
 
25
- **`b`** · [`Vector3`](Vector3.md) · Required
25
+ **`b`** · [`Vector3Tuple`](Vector3Tuple.md) · Required
26
26
 
27
27
 
28
28
 
29
29
  ## Returns
30
30
 
31
- [`Vector3`](Vector3.md)
31
+ [`Vector3Tuple`](Vector3Tuple.md)
32
32
 
33
33
 
34
34
  ## Related APIs
35
35
 
36
- - [Vector3](Vector3.md)
36
+ - [Vector3Tuple](Vector3Tuple.md)
37
37
 
38
- Package: `@metamesh/modeling@0.13.0`.
38
+ ## Guides
39
+
40
+ - [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
41
+
42
+ Package: `@metamesh/modeling@0.14.0`.
@@ -54,4 +54,4 @@ inspected on every call, never cached.
54
54
  - [TriangleMeshAnalysis](TriangleMeshAnalysis.md)
55
55
  - [TriangleMeshAnalysisOptions](TriangleMeshAnalysisOptions.md)
56
56
 
57
- Package: `@metamesh/modeling@0.13.0`.
57
+ Package: `@metamesh/modeling@0.14.0`.
@@ -49,4 +49,4 @@ A deterministic report without mutating or copying the mesh.
49
49
  - [TriangleMeshQualityOptions](TriangleMeshQualityOptions.md)
50
50
  - [TriangleMeshQualityReport](TriangleMeshQualityReport.md)
51
51
 
52
- Package: `@metamesh/modeling@0.13.0`.
52
+ Package: `@metamesh/modeling@0.14.0`.
@@ -37,4 +37,4 @@ A normalized right-handed frame at the anchor position.
37
37
  - [Frame3](Frame3.md)
38
38
  - [GeometryToleranceOptions](GeometryToleranceOptions.md)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Applies only the linear component of an affine transform to a direction.
4
4
 
5
- **applyTransformDirection3**(`transform`: [`Transform3`](Transform3.md), `direction`: [`Vector3`](Vector3.md)): [`Vector3`](Vector3.md)
5
+ **applyTransformDirection3**(`transform`: [`Transform3Matrix`](Transform3Matrix.md), `direction`: [`Vector3Tuple`](Vector3Tuple.md)): [`Vector3Tuple`](Vector3Tuple.md)
6
6
 
7
7
 
8
8
 
@@ -12,7 +12,7 @@ The result is not normalized, preserving scale information.
12
12
 
13
13
  <a id="transform"></a>
14
14
 
15
- **`transform`** · [`Transform3`](Transform3.md) · Required
15
+ **`transform`** · [`Transform3Matrix`](Transform3Matrix.md) · Required
16
16
 
17
17
  Valid row-major affine transform.
18
18
 
@@ -20,7 +20,7 @@ Valid row-major affine transform.
20
20
 
21
21
  <a id="direction"></a>
22
22
 
23
- **`direction`** · [`Vector3`](Vector3.md) · Required
23
+ **`direction`** · [`Vector3Tuple`](Vector3Tuple.md) · Required
24
24
 
25
25
  Finite XYZ direction.
26
26
 
@@ -28,14 +28,18 @@ Finite XYZ direction.
28
28
 
29
29
  ## Returns
30
30
 
31
- [`Vector3`](Vector3.md)
31
+ [`Vector3Tuple`](Vector3Tuple.md)
32
32
 
33
33
  A fresh transformed direction.
34
34
 
35
35
 
36
36
  ## Related APIs
37
37
 
38
- - [Transform3](Transform3.md)
39
- - [Vector3](Vector3.md)
38
+ - [Transform3Matrix](Transform3Matrix.md)
39
+ - [Vector3Tuple](Vector3Tuple.md)
40
40
 
41
- Package: `@metamesh/modeling@0.13.0`.
41
+ ## Guides
42
+
43
+ - [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
44
+
45
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Applies an affine transform to a point, including translation.
4
4
 
5
- **applyTransformPoint3**(`transform`: [`Transform3`](Transform3.md), `point`: [`Vector3`](Vector3.md)): [`Vector3`](Vector3.md)
5
+ **applyTransformPoint3**(`transform`: [`Transform3Matrix`](Transform3Matrix.md), `point`: [`Vector3Tuple`](Vector3Tuple.md)): [`Vector3Tuple`](Vector3Tuple.md)
6
6
 
7
7
 
8
8
 
@@ -10,7 +10,7 @@ Applies an affine transform to a point, including translation.
10
10
 
11
11
  <a id="transform"></a>
12
12
 
13
- **`transform`** · [`Transform3`](Transform3.md) · Required
13
+ **`transform`** · [`Transform3Matrix`](Transform3Matrix.md) · Required
14
14
 
15
15
  Valid row-major affine transform.
16
16
 
@@ -18,7 +18,7 @@ Valid row-major affine transform.
18
18
 
19
19
  <a id="point"></a>
20
20
 
21
- **`point`** · [`Vector3`](Vector3.md) · Required
21
+ **`point`** · [`Vector3Tuple`](Vector3Tuple.md) · Required
22
22
 
23
23
  Finite XYZ point.
24
24
 
@@ -26,14 +26,18 @@ Finite XYZ point.
26
26
 
27
27
  ## Returns
28
28
 
29
- [`Vector3`](Vector3.md)
29
+ [`Vector3Tuple`](Vector3Tuple.md)
30
30
 
31
31
  A fresh transformed point.
32
32
 
33
33
 
34
34
  ## Related APIs
35
35
 
36
- - [Transform3](Transform3.md)
37
- - [Vector3](Vector3.md)
36
+ - [Transform3Matrix](Transform3Matrix.md)
37
+ - [Vector3Tuple](Vector3Tuple.md)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ ## Guides
40
+
41
+ - [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
42
+
43
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Builds the transform that moves a source anchor onto a target anchor.
4
4
 
5
- **attachTransform**(`source`: [`Anchor3`](Anchor3.md), `target`: [`Anchor3`](Anchor3.md), `options?`: [`AttachTransformOptions`](AttachTransformOptions.md)): [`Transform3`](Transform3.md)
5
+ **attachTransform**(`source`: [`Anchor3`](Anchor3.md), `target`: [`Anchor3`](Anchor3.md), `options?`: [`AttachTransformOptions`](AttachTransformOptions.md)): [`Transform3Matrix`](Transform3Matrix.md)
6
6
 
7
7
 
8
8
 
@@ -55,7 +55,7 @@ Alignment, gap, spin, and tolerance policy.
55
55
 
56
56
  ## Returns
57
57
 
58
- [`Transform3`](Transform3.md)
58
+ [`Transform3Matrix`](Transform3Matrix.md)
59
59
 
60
60
  A frozen affine transform for the moving object.
61
61
 
@@ -68,6 +68,10 @@ A frozen affine transform for the moving object.
68
68
 
69
69
  - [Anchor3](Anchor3.md)
70
70
  - [AttachTransformOptions](AttachTransformOptions.md)
71
- - [Transform3](Transform3.md)
71
+ - [Transform3Matrix](Transform3Matrix.md)
72
72
 
73
- Package: `@metamesh/modeling@0.13.0`.
73
+ ## Guides
74
+
75
+ - [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
76
+
77
+ Package: `@metamesh/modeling@0.14.0`.
@@ -6,7 +6,7 @@ Midpoint of finite XY bounds in millimetres.
6
6
 
7
7
 
8
8
 
9
- **boundsCenter**(`bounds`: [`Bounds2`](Bounds2.md)): [`Vector2`](Vector2.md)
9
+ **boundsCenter**(`bounds`: [`Bounds2`](Bounds2.md)): [`Vector2Tuple`](Vector2Tuple.md)
10
10
 
11
11
 
12
12
 
@@ -22,13 +22,13 @@ Midpoint of finite XY bounds in millimetres.
22
22
 
23
23
  ### Returns
24
24
 
25
- [`Vector2`](Vector2.md)
25
+ [`Vector2Tuple`](Vector2Tuple.md)
26
26
 
27
27
  ## Call Signature
28
28
 
29
29
 
30
30
 
31
- **boundsCenter**(`bounds`: [`Bounds3`](Bounds3.md)): [`Vector3`](Vector3.md)
31
+ **boundsCenter**(`bounds`: [`Bounds3`](Bounds3.md)): [`Vector3Tuple`](Vector3Tuple.md)
32
32
 
33
33
 
34
34
 
@@ -44,19 +44,19 @@ Midpoint of finite XYZ bounds in millimetres.
44
44
 
45
45
  ### Returns
46
46
 
47
- [`Vector3`](Vector3.md)
47
+ [`Vector3Tuple`](Vector3Tuple.md)
48
48
 
49
49
 
50
50
  ## Related APIs
51
51
 
52
52
  - [Bounds2](Bounds2.md)
53
53
  - [Bounds3](Bounds3.md)
54
- - [Vector2](Vector2.md)
55
- - [Vector3](Vector3.md)
54
+ - [Vector2Tuple](Vector2Tuple.md)
55
+ - [Vector3Tuple](Vector3Tuple.md)
56
56
 
57
57
  ## Guides
58
58
 
59
59
  - [Text from a Font parameter](../../guides/recipes.md#text-from-a-font-parameter)
60
60
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
61
61
 
62
- Package: `@metamesh/modeling@0.13.0`.
62
+ Package: `@metamesh/modeling@0.14.0`.
@@ -6,7 +6,7 @@ Creates immutable centered XY bounds from nonnegative dimensions in millimetres.
6
6
 
7
7
 
8
8
 
9
- **boundsFromSize**(`size`: [`Vector2`](Vector2.md), `options?`: [`BoundsFromSizeOptions`](BoundsFromSizeOptions.md)): [`Bounds2`](Bounds2.md)
9
+ **boundsFromSize**(`size`: [`Vector2Tuple`](Vector2Tuple.md), `options?`: [`BoundsFromSizeOptions`](BoundsFromSizeOptions.md)): [`Bounds2`](Bounds2.md)
10
10
 
11
11
 
12
12
 
@@ -16,7 +16,7 @@ Creates immutable centered XY bounds from nonnegative dimensions in millimetres.
16
16
 
17
17
  <a id="size"></a>
18
18
 
19
- **`size`** · [`Vector2`](Vector2.md) · Required
19
+ **`size`** · [`Vector2Tuple`](Vector2Tuple.md) · Required
20
20
 
21
21
 
22
22
 
@@ -38,7 +38,7 @@ Creates immutable centered XY bounds from nonnegative dimensions in millimetres.
38
38
 
39
39
 
40
40
 
41
- **boundsFromSize**(`size`: [`Vector3`](Vector3.md), `options?`: [`BoundsFromSizeOptions`](BoundsFromSizeOptions.md)): [`Bounds3`](Bounds3.md)
41
+ **boundsFromSize**(`size`: [`Vector3Tuple`](Vector3Tuple.md), `options?`: [`BoundsFromSizeOptions`](BoundsFromSizeOptions.md)): [`Bounds3`](Bounds3.md)
42
42
 
43
43
 
44
44
 
@@ -48,7 +48,7 @@ Creates immutable centered XYZ bounds from nonnegative dimensions in millimetres
48
48
 
49
49
  <a id="size-1"></a>
50
50
 
51
- **`size`** · [`Vector3`](Vector3.md) · Required
51
+ **`size`** · [`Vector3Tuple`](Vector3Tuple.md) · Required
52
52
 
53
53
 
54
54
 
@@ -72,12 +72,12 @@ Creates immutable centered XYZ bounds from nonnegative dimensions in millimetres
72
72
  - [Bounds2](Bounds2.md)
73
73
  - [Bounds3](Bounds3.md)
74
74
  - [BoundsFromSizeOptions](BoundsFromSizeOptions.md)
75
- - [Vector2](Vector2.md)
76
- - [Vector3](Vector3.md)
75
+ - [Vector2Tuple](Vector2Tuple.md)
76
+ - [Vector3Tuple](Vector3Tuple.md)
77
77
 
78
78
  ## Guides
79
79
 
80
80
  - [Text from a Font parameter](../../guides/recipes.md#text-from-a-font-parameter)
81
81
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
82
82
 
83
- Package: `@metamesh/modeling@0.13.0`.
83
+ Package: `@metamesh/modeling@0.14.0`.
@@ -6,7 +6,7 @@ Inclusive XY dimensions in millimetres; zero extents are retained.
6
6
 
7
7
 
8
8
 
9
- **boundsSize**(`bounds`: [`Bounds2`](Bounds2.md)): [`Vector2`](Vector2.md)
9
+ **boundsSize**(`bounds`: [`Bounds2`](Bounds2.md)): [`Vector2Tuple`](Vector2Tuple.md)
10
10
 
11
11
 
12
12
 
@@ -22,13 +22,13 @@ Inclusive XY dimensions in millimetres; zero extents are retained.
22
22
 
23
23
  ### Returns
24
24
 
25
- [`Vector2`](Vector2.md)
25
+ [`Vector2Tuple`](Vector2Tuple.md)
26
26
 
27
27
  ## Call Signature
28
28
 
29
29
 
30
30
 
31
- **boundsSize**(`bounds`: [`Bounds3`](Bounds3.md)): [`Vector3`](Vector3.md)
31
+ **boundsSize**(`bounds`: [`Bounds3`](Bounds3.md)): [`Vector3Tuple`](Vector3Tuple.md)
32
32
 
33
33
 
34
34
 
@@ -44,19 +44,19 @@ Inclusive XYZ dimensions in millimetres; zero extents are retained.
44
44
 
45
45
  ### Returns
46
46
 
47
- [`Vector3`](Vector3.md)
47
+ [`Vector3Tuple`](Vector3Tuple.md)
48
48
 
49
49
 
50
50
  ## Related APIs
51
51
 
52
52
  - [Bounds2](Bounds2.md)
53
53
  - [Bounds3](Bounds3.md)
54
- - [Vector2](Vector2.md)
55
- - [Vector3](Vector3.md)
54
+ - [Vector2Tuple](Vector2Tuple.md)
55
+ - [Vector3Tuple](Vector3Tuple.md)
56
56
 
57
57
  ## Guides
58
58
 
59
59
  - [Text from a Font parameter](../../guides/recipes.md#text-from-a-font-parameter)
60
60
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
61
61
 
62
- Package: `@metamesh/modeling@0.13.0`.
62
+ Package: `@metamesh/modeling@0.14.0`.
@@ -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` \| [`Vector3`](Vector3.md) · Required
15
+ - [`size`](BoxAnchorOptions.md#size) · `number` \| [`Vector3Tuple`](Vector3Tuple.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) · [`Vector3`](Vector3.md) · Optional
27
+ - [`origin`](BoxAnchorOptions.md#origin) · [`Vector3Tuple`](Vector3Tuple.md) · Optional
28
28
 
29
29
  Construction origin; centered-box center or noncentered minimum corner. Defaults to zero.
30
30
 
@@ -45,4 +45,8 @@ resulting anchor frame explicitly; no anchor is inherited from a Boolean result.
45
45
  - [Anchor3](Anchor3.md)
46
46
  - [BoxAnchorOptions](BoxAnchorOptions.md)
47
47
 
48
- Package: `@metamesh/modeling@0.13.0`.
48
+ ## Guides
49
+
50
+ - [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
51
+
52
+ Package: `@metamesh/modeling@0.14.0`.
@@ -65,4 +65,4 @@ Builds closed thread-ridge components with every profile locked to the shaft's r
65
65
  - [HelicalThreadRidgeMeshOptions](HelicalThreadRidgeMeshOptions.md)
66
66
  - [TriangleMesh](TriangleMesh.md)
67
67
 
68
- Package: `@metamesh/modeling@0.13.0`.
68
+ Package: `@metamesh/modeling@0.14.0`.
@@ -99,4 +99,4 @@ arrays.
99
99
  - [HelicalThreadSolidMeshOptions](HelicalThreadSolidMeshOptions.md)
100
100
  - [TriangleMesh](TriangleMesh.md)
101
101
 
102
- Package: `@metamesh/modeling@0.13.0`.
102
+ Package: `@metamesh/modeling@0.14.0`.
@@ -32,4 +32,4 @@ Bounds2 and Bounds3 are shared min/max data for text, mesh measurements, and pla
32
32
  - [Text from a Font parameter](../../../guides/recipes.md#text-from-a-font-parameter)
33
33
  - [Solid inspection](../../../guides/recipes.md#solid-inspection)
34
34
 
35
- Package: `@metamesh/modeling@0.13.0`.
35
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,16 +2,17 @@
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. Sweep frames require explicit seam and orientation choices.
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.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
11
  | [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. |
12
13
  | [sampleCurve2](../sampleCurve2.md) | Samples a planar curve with the same guarantees and policy as spatial sampling. |
13
14
  | [sampleCurve3](../sampleCurve3.md) | Samples a spatial curve, preserving endpoints and directed unit tangents. |
14
- | [transformPath2](../transformPath2.md) | Applies an XY-plane-preserving affine transform to a 2D path. |
15
+ | [transformPath2](../transformPath2.md) | Applies a canonical affine XY transform to a 2D path without changing point order. |
15
16
  | [transformPath3](../transformPath3.md) | Applies an affine transform to a 3D path without mutating its points. |
16
17
  | [resolveGeometrySamplingLimits](../resolveGeometrySamplingLimits.md) | Resolves finite positive safe-integer allocation ceilings without ambient state. |
17
18
  | [resamplePolyline2](../resamplePolyline2.md) | Resamples a planar polyline with the same point, tangent, seam and budget guarantees as 3D. |
@@ -25,6 +26,8 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
25
26
  | [ArcCurve3](../ArcCurve3.md) | Spatial circular arc in the plane of two orthogonal unit directions. |
26
27
  | [CubicBezierCurve2](../CubicBezierCurve2.md) | Planar cubic Bézier with explicit endpoint and control coordinates. |
27
28
  | [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. |
28
31
  | [CurveSamplingOptions](../CurveSamplingOptions.md) | Explicit physical sampling and allocation policy for reusable curves. |
29
32
  | [Frame3](../Frame3.md) | A right-handed orthonormal coordinate frame expressed in world coordinates. |
30
33
  | [GeometrySamplingLimits](../GeometrySamplingLimits.md) | Explicit allocation ceilings for pure sampling and host-owned modeling operations. |
@@ -60,4 +63,4 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
60
63
  | [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. |
61
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. |
62
65
 
63
- Package: `@metamesh/modeling@0.13.0`.
66
+ Package: `@metamesh/modeling@0.14.0`.
@@ -98,4 +98,4 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
98
98
  | [METRIC_FASTENER_STANDARDS](../METRIC_FASTENER_STANDARDS.md) | Curated metric modeling dimensions for clearance holes, regular hex nuts, and socket-head cap screws. |
99
99
  | [PRINTABLE_THREAD_FIT_POLICIES](../PRINTABLE_THREAD_FIT_POLICIES.md) | Conservative baseline print-fit policies in millimetres. |
100
100
 
101
- Package: `@metamesh/modeling@0.13.0`.
101
+ Package: `@metamesh/modeling@0.14.0`.
@@ -70,4 +70,4 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
70
70
  | [meshBounds](../meshBounds.md) | Computes axis-aligned bounds for a non-empty mesh. |
71
71
  | [revolveMesh](../revolveMesh.md) | Revolves a non-duplicated closed `[radius, z]` profile around +Z. |
72
72
 
73
- Package: `@metamesh/modeling@0.13.0`.
73
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
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. Transform3 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 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.
6
6
 
7
7
  ## Functions
8
8
 
@@ -31,4 +31,4 @@ Pure pattern transforms use the same counts, spacing, centering and frames as ro
31
31
 
32
32
  - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
33
33
 
34
- Package: `@metamesh/modeling@0.13.0`.
34
+ Package: `@metamesh/modeling@0.14.0`.
@@ -33,4 +33,4 @@ Dimensional shapes share object options, millimetre units and explicit placement
33
33
  | [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
34
34
  | [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
35
35
 
36
- Package: `@metamesh/modeling@0.13.0`.
36
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
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. `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. 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.
6
6
 
7
7
  ## Functions
8
8
 
@@ -21,8 +21,8 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
21
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
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. |
23
23
  | [signedContourArea](../signedContourArea.md) | Returns the signed area of a non-duplicated loop; positive means CCW. |
24
- | [transformContour](../transformContour.md) | Transforms a closed loop and preserves its original winding convention. |
25
- | [transformRegion](../transformRegion.md) | Transforms an explicit outer/hole region with reflection-safe winding correction. |
24
+ | [transformContour](../transformContour.md) | Applies a canonical affine XY transform to a closed loop and preserves its original winding. |
25
+ | [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
26
  | [triangulateContour](../triangulateContour.md) | Ear-clips one normalized simple CCW loop into stable local vertex indices. |
27
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. |
28
28
 
@@ -36,7 +36,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
36
36
  | [ContourCurve](../ContourCurve.md) | One explicitly closed planar contour, independent of editor metadata and parameter contracts. |
37
37
  | [ContourPoint](../ContourPoint.md) | Planar X and upward Y in millimetres, or in units converted by sampling scales. |
38
38
  | [SideProfilePoint](../SideProfilePoint.md) | Radius and upward height in millimetres, or in units converted by sampling scales. |
39
- | [Polygon](../Polygon.md) | One bounded two-dimensional polygon. |
39
+ | [PolygonData](../PolygonData.md) | One bounded two-dimensional polygon. |
40
40
  | [Profile](../Profile.md) | An explicit component/contour/span topology, before shared family sampling. |
41
41
  | [ProfileComponent2](../ProfileComponent2.md) | One component and its explicitly identified holes. |
42
42
  | [ProfileContour2](../ProfileContour2.md) | Ordered, closed spans. Outer winding is CCW and hole winding is CW. |
@@ -59,7 +59,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
59
59
  | [ContourSegment](../ContourSegment.md) | Straight or cubic Bézier segment in one closed planar contour. |
60
60
  | [SideProfileSegment](../SideProfileSegment.md) | One straight or cubic segment of an open, upward-progressing radius/height outline. |
61
61
  | [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
62
- | [Region](../Region.md) | A two-dimensional region represented by disjoint filled polygons. |
62
+ | [RegionData](../RegionData.md) | A two-dimensional region represented by disjoint filled polygons. |
63
63
  | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
64
64
  | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
65
65
 
@@ -71,4 +71,4 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
71
71
  | [regularPolygonContour](../regularPolygonContour.md) | Creates a centered CCW point loop with vertex or face radial sizing and an implicit seam. |
72
72
  | [starContour](../starContour.md) | Creates a centered CCW alternating-radius star within the selected profile sampling ceiling. |
73
73
 
74
- Package: `@metamesh/modeling@0.13.0`.
74
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
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. 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 win. Algorithm limits fail explicitly. GeometryError supplies structured codes and operation context; no ambient resolution state exists.
6
6
 
7
7
  ## Functions
8
8
 
@@ -25,6 +25,7 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
25
25
  | API | Summary |
26
26
  | --- | --- |
27
27
  | [AlignedCircularSegmentsOptions](../AlignedCircularSegmentsOptions.md) | Controls full-circle sampling that must satisfy one or more topology alignments. |
28
+ | [CircularResolutionOptions](../CircularResolutionOptions.md) | Circular sampling measured from the nominal inscribed or circumscribed radius. |
28
29
  | [GeometryErrorContext](../GeometryErrorContext.md) | Serializable context attached to a geometry failure. |
29
30
  | [GeometryResolution](../GeometryResolution.md) | Tessellation policy for sampled geometry measured in millimetres. |
30
31
  | [GeometryToleranceOptions](../GeometryToleranceOptions.md) | Optional overrides for MetaMesh's geometry comparison policy. |
@@ -43,4 +44,4 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
43
44
  | --- | --- |
44
45
  | [DEFAULT_GEOMETRY_TOLERANCE](../DEFAULT_GEOMETRY_TOLERANCE.md) | Default absolute, relative, and angular tolerances for millimetre-scale models. |
45
46
 
46
- Package: `@metamesh/modeling@0.13.0`.
47
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,13 +1,17 @@
1
1
  # Transforms and vector math
2
2
 
3
- Compose explicit coordinate transforms and reusable placement anchors.
3
+ Build immutable reusable placements and calculate with fluent vectors or tuple kernels.
4
4
 
5
- Lengths are millimetres. Pure rotation constructors require a degrees or radians object. Transform3 is row-major, and directions exclude translation. Attachment matches source and target frames with an explicit offset; physical clearance is an application decision.
5
+ Use immutable vector2/vector3 and transform2/transform3 values for ordinary authoring. Operations return new values; tuples remain convenient inputs. dot, length and distance return numbers; cross returns a signed scalar in 2D and a right-handed vector in 3D. Normalization rejects zero vectors; fluent values reject nonfinite inputs and results. Rotations use degrees and named optional `{ pivot }` points in world coordinates. Calls and andThen composition apply in execution order. Points include translation; directions exclude it and retain scale; normals use inverse-transpose normalization. Shape methods and path helpers accept matching transforms directly. toArray and toMatrix serve interchange using Vector2Tuple/Vector3Tuple and canonical Transform2Matrix/Transform3Matrix data. to3D/to2D convert dimensions explicitly; XY restriction requires a preserved plane. Raw tuple kernels avoid fluent object allocation in hot loops, and matrix constructors provide lower-level interoperability. rotationTransform3 requires an explicit degrees or radians object; composeTransform3(after, before) applies before first. Attachment matches source and target frames; physical clearance is an application decision.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
+ | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. Matrices are copied and validated. Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ. Zero scales and singular matrices throw GeometryError; negative scales reflect. |
12
+ | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. Matrices are copied and validated. Calls apply in written order; rotations use degrees and pivots use current world coordinates. Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError. Use frameTransform3(frame) as the input for existing orthonormal frame placement. |
13
+ | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform2().applyDirection(value) for rotations and nonuniform scaling. |
14
+ | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform3().applyDirection(value) for rotations and nonuniform scaling. |
11
15
  | [applyTransformDirection3](../applyTransformDirection3.md) | Applies only the linear component of an affine transform to a direction. |
12
16
  | [applyTransformPoint3](../applyTransformPoint3.md) | Applies an affine transform to a point, including translation. |
13
17
  | [attachTransform](../attachTransform.md) | Builds the transform that moves a source anchor onto a target anchor. |
@@ -28,6 +32,12 @@ Lengths are millimetres. Pure rotation constructors require a degrees or radians
28
32
 
29
33
  | API | Summary |
30
34
  | --- | --- |
35
+ | [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
36
+ | [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
37
+ | [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
38
+ | [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
39
+ | [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
40
+ | [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
31
41
  | [Anchor3](../Anchor3.md) | An attachment pose on a solid or assembly. |
32
42
  | [AttachTransformOptions](../AttachTransformOptions.md) | Options controlling how one anchor is attached to another. |
33
43
  | [BoxAnchorOptions](../BoxAnchorOptions.md) | Box dimensions and construction origin for one named face anchor. |
@@ -37,27 +47,46 @@ Lengths are millimetres. Pure rotation constructors require a degrees or radians
37
47
 
38
48
  | API | Summary |
39
49
  | --- | --- |
50
+ | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
51
+ | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
52
+ | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
53
+ | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
40
54
  | [AxisAngleRotation3](../AxisAngleRotation3.md) | One explicitly unit-labelled right-handed axis-angle rotation. |
41
55
  | [BoxAnchorFace](../BoxAnchorFace.md) | Named face on an axis-aligned box. |
42
56
  | [CylinderAnchorFace](../CylinderAnchorFace.md) | Named face on a cylinder parallel to +Z. |
43
- | [Transform3](../Transform3.md) | A row-major affine 4x4 matrix applied to column vectors. |
44
- | [Vector2](../Vector2.md) | A two-dimensional Cartesian vector or point. |
45
- | [Vector3](../Vector3.md) | A three-dimensional Cartesian vector or point. |
57
+ | [Transform2Matrix](../Transform2Matrix.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
58
+ | [Transform3Matrix](../Transform3Matrix.md) | A row-major affine 4x4 matrix applied to column vectors. |
59
+ | [Vector2Tuple](../Vector2Tuple.md) | A two-dimensional Cartesian vector or point. |
60
+ | [Vector3Tuple](../Vector3Tuple.md) | A three-dimensional Cartesian vector or point. |
46
61
 
47
62
  ## Values
48
63
 
49
64
  | API | Summary |
50
65
  | --- | --- |
66
+ | [add2](../add2.md) | Adds two finite XY vectors component-wise. |
51
67
  | [add3](../add3.md) | Adds two finite XYZ vectors component-wise. |
52
68
  | [cross3](../cross3.md) | Returns the right-handed cross product. |
69
+ | [cross2](../cross2.md) | Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. |
70
+ | [distance2](../distance2.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
71
+ | [distance3](../distance3.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
53
72
  | [dot3](../dot3.md) | Returns the scalar dot product. |
73
+ | [dot2](../dot2.md) | Returns the scalar dot product. |
54
74
  | [IDENTITY_TRANSFORM3](../IDENTITY_TRANSFORM3.md) | Identity transform, safe to share because it is frozen. |
55
75
  | [length3](../length3.md) | Returns Euclidean vector length in the vector's coordinate units. |
76
+ | [length2](../length2.md) | Returns Euclidean vector length in the vector's coordinate units. |
56
77
  | [lerp3](../lerp3.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
57
- | [normalize3](../normalize3.md) | Normalizes a finite vector and rejects nonfinite lengths or lengths at or below `epsilon`. |
78
+ | [lerp2](../lerp2.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
79
+ | [normalize3](../normalize3.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
80
+ | [normalize2](../normalize2.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
58
81
  | [projectOntoPlane3](../projectOntoPlane3.md) | Removes the component parallel to a normalized plane normal. |
59
- | [rotateAroundAxis3](../rotateAroundAxis3.md) | Rotates a vector right-handed around an axis by `angle` radians. |
82
+ | [rotate2](../rotate2.md) | Rotates a finite vector counter-clockwise in XY by `degrees` about the origin. Throws `NON_FINITE_VALUE` for nonfinite coordinates, angles, or derived coordinates. |
60
83
  | [scale3](../scale3.md) | Multiplies a vector by a dimensionless scalar. |
84
+ | [scale2](../scale2.md) | Multiplies a vector by a dimensionless scalar. |
61
85
  | [subtract3](../subtract3.md) | Subtracts `b` from `a`. |
86
+ | [subtract2](../subtract2.md) | Subtracts `b` from `a` component-wise. |
62
87
 
63
- Package: `@metamesh/modeling@0.13.0`.
88
+ ## Guides
89
+
90
+ - [Reusable transforms and vector math](../../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
91
+
92
+ Package: `@metamesh/modeling@0.14.0`.