@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
@@ -1,13 +1,17 @@
1
- # Transforms & Placement
1
+ # Transforms, Vectors & Placement
2
2
 
3
- Transform 2D sections and 3D solids; arrange and attach solids with explicit placement contracts.
3
+ Calculate with immutable vectors, reuse transforms, and arrange geometry with explicit placement contracts.
4
4
 
5
- Solid and Section methods translate, rotate, scale, mirror and transform return immutable same-dimensional recipes. Sections use XY vectors and counterclockwise degree rotations; solids use XYZ vectors and degree Euler angles. Calls apply in written order about the origin: translating then rotating also rotates the translated position. Transform2 and Transform3 are row-major affine matrices. Solid.attach and primitive placement share source/target anchors, alignment, millimetre gap and degree spin. withAnchors adds explicit datums to either shape. Patterns return same-session Solid or Section arrays; Section placements must preserve XY. Pure *PatternTransforms expose matching placements from /geometry. Place completed parts through part options so placement can reuse geometry.
5
+ Use vector2/vector3 for immutable arithmetic and transform2/transform3 for reusable placements. Tuples are accepted as operands; scalar dot, length and distance return numbers. Shape.transform accepts a matching transform directly. Operations apply in written order, rotations use degrees, and optional `{ pivot }` points use world coordinates, defaulting to the origin. andThen composes placements in execution order. applyPoint includes translation, applyDirection retains scale without translation, and applyNormal uses the inverse transpose and returns a unit vector. toArray and toMatrix expose canonical data for interchange. Solid.attach and primitive placement share source/target anchors, alignment, millimetre gap and degree spin. XY placements can be explicitly embedded with to3D; to2D rejects plane changes. Part placement can reuse finished geometry.
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
  | [anchor](../anchor.md) | Reads a copied, immutable named anchor from this exact active generation. |
12
16
  | [gridPattern](../gridPattern.md) | XY or XYZ copies, optionally centered or placed in an explicit frame. |
13
17
  | [linearPattern](../linearPattern.md) | Repeats one solid along a normalized direction. |
@@ -18,6 +22,12 @@ Solid and Section methods translate, rotate, scale, mirror and transform return
18
22
 
19
23
  | API | Summary |
20
24
  | --- | --- |
25
+ | [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
26
+ | [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
27
+ | [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
28
+ | [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
29
+ | [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
30
+ | [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
21
31
  | [Anchor3](../Anchor3.md) | An attachment pose on a solid or assembly. |
22
32
  | [AttachOptions](../AttachOptions.md) | Degree-based anchor attachment controls for a scoped solid. |
23
33
  | [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
@@ -29,15 +39,19 @@ Solid and Section methods translate, rotate, scale, mirror and transform return
29
39
 
30
40
  | API | Summary |
31
41
  | --- | --- |
42
+ | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
43
+ | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
44
+ | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
45
+ | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
32
46
  | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. |
33
47
  | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. |
34
- | [PatternSource](../PatternSource.md) | One same-session shape, or a synchronous factory called once per copy in index order. |
35
- | [Transform2](../Transform2.md) | Row-major affine XY matrix. Translation occupies m02/m12; final row is [0, 0, 1]. |
36
- | [Transform3](../Transform3.md) | A row-major affine 4x4 matrix applied to column vectors. |
48
+ | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in index order. |
49
+ | [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]`. |
50
+ | [Transform3Matrix](../Transform3Matrix.md) | A row-major affine 4x4 matrix applied to column vectors. |
37
51
 
38
52
  ## Guides
39
53
 
40
54
  - [Named anchors and custom frames](../../../guides/recipes.md#named-anchors-and-custom-frames)
41
55
  - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
42
56
 
43
- Package: `@metamesh/modeling@0.13.0`.
57
+ Package: `@metamesh/modeling@0.14.0`.
@@ -36,4 +36,4 @@ circle({ diameter: 12, sizing: "face" });
36
36
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
37
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,6 +1,6 @@
1
1
  # components
2
2
 
3
- Separates a solid's disconnected surface shells into same-session solid handles.
3
+ Observes a solid's disconnected surface shells as session-restricted solid selections.
4
4
 
5
5
  ## Call Signature
6
6
 
@@ -19,11 +19,13 @@ const pieces = components(islands);
19
19
  union(pieces.map((piece, index) => piece.translate([0, 0, index * 6])));
20
20
  ```
21
21
 
22
- Separates a solid's disconnected surface shells into same-session solid handles.
22
+ Observes a solid's disconnected surface shells as session-restricted solid selections.
23
23
 
24
24
  For solids without enclosed cavities, these shells are the disconnected material islands.
25
25
  Enclosed cavities produce separate inward shells with negative signed volume; these cannot
26
26
  be finalized alone as manufacturing parts. This does not cut connected geometry.
27
+ Selection order and cardinality depend on evaluated topology. Results and recipes using them
28
+ can only be evaluated in this session; composition itself requires no engine.
27
29
 
28
30
  ### Parameters
29
31
 
@@ -45,7 +47,8 @@ readonly [`Solid`](Solid.md)[]
45
47
 
46
48
 
47
49
 
48
- Separates filled 2D islands into sections, retaining each island's holes; empty gives [].
50
+ Observes filled 2D islands, retaining each island's holes; empty gives [].
51
+ Selections and recipes using them can only be evaluated in this session.
49
52
 
50
53
  ### Parameters
51
54
 
@@ -65,4 +68,4 @@ readonly [`Section`](Section.md)[]
65
68
  - [Section](Section.md)
66
69
  - [Solid](Solid.md)
67
70
 
68
- Package: `@metamesh/modeling@0.13.0`.
71
+ Package: `@metamesh/modeling@0.14.0`.
@@ -28,4 +28,4 @@ Combines disjoint components without resolving overlap.
28
28
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
29
29
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
30
30
 
31
- Package: `@metamesh/modeling@0.13.0`.
31
+ Package: `@metamesh/modeling@0.14.0`.
@@ -49,4 +49,4 @@ cylinder({ height: 20, radius: [10, 0] });
49
49
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
50
50
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
51
51
 
52
- Package: `@metamesh/modeling@0.13.0`.
52
+ Package: `@metamesh/modeling@0.14.0`.
@@ -17,7 +17,7 @@ const gap = distance(left, right); // 3 mm
17
17
  Uses actual geometry, not bounding-box separation or distance between object origins.
18
18
  Contact or overlapping material returns zero, including one solid inside another.
19
19
  The kernel's search range is managed internally; the result is not capped at a caller limit.
20
- Empty, expired or foreign-build handles reject. Results follow native numeric precision.
20
+ Empty geometry and component selections from another session reject. Results follow native numeric precision.
21
21
 
22
22
  ## Parameters
23
23
 
@@ -42,4 +42,4 @@ Empty, expired or foreign-build handles reject. Results follow native numeric pr
42
42
 
43
43
  - [Solid](Solid.md)
44
44
 
45
- Package: `@metamesh/modeling@0.13.0`.
45
+ Package: `@metamesh/modeling@0.14.0`.
@@ -36,4 +36,4 @@ ellipse({ size: [30, 20] });
36
36
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
37
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ Package: `@metamesh/modeling@0.14.0`.
@@ -52,7 +52,7 @@ extrude(profile!, { height: 8 });
52
52
 
53
53
  Operation-level physical policy over the nearest model scope.
54
54
 
55
- - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2`](Vector2.md) · Optional
55
+ - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2Tuple`](Vector2Tuple.md) · Optional
56
56
 
57
57
  Finite uniform or XY scale of the top profile; defaults to one.
58
58
 
@@ -80,4 +80,4 @@ extrude(profile!, { height: 8 });
80
80
  - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
81
81
  - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
82
82
 
83
- Package: `@metamesh/modeling@0.13.0`.
83
+ Package: `@metamesh/modeling@0.14.0`.
@@ -43,4 +43,4 @@ const model = generate<{ height: number }>(({ params, part, assert }) => {
43
43
  - [GenerateCallback](GenerateCallback.md)
44
44
  - [ModelProgram](ModelProgram.md)
45
45
 
46
- Package: `@metamesh/modeling@0.13.0`.
46
+ Package: `@metamesh/modeling@0.14.0`.
@@ -77,4 +77,4 @@ readonly [`Section`](Section.md)[]
77
77
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
78
78
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
79
79
 
80
- Package: `@metamesh/modeling@0.13.0`.
80
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,6 +1,6 @@
1
1
  # heightfield
2
2
 
3
- Closed rectilinear top above a flat base, with uniform or explicit XY coordinates. Samples each grid height once; center-error triangulation also samples each cell centre.
3
+ Closed rectilinear top above a flat base, with uniform or explicit XY coordinates. Samples each grid height once; center-error triangulation also samples each cell centre. The retained callback must capture independent immutable inputs, not live session readers or parameters.
4
4
 
5
5
  **heightfield**(`options`: [`HeightfieldOptions`](HeightfieldOptions.md)): [`Solid`](Solid.md)
6
6
 
@@ -37,4 +37,4 @@ heightfield({
37
37
  - [HeightfieldOptions](HeightfieldOptions.md)
38
38
  - [Solid](Solid.md)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.14.0`.
@@ -44,7 +44,7 @@ Convex hull of points or solids.
44
44
 
45
45
 
46
46
 
47
- Convex filled XY hull of finite points or same-session sections.
47
+ Convex filled XY hull of finite points or filled section recipes.
48
48
 
49
49
  ### Parameters
50
50
 
@@ -71,4 +71,4 @@ Convex filled XY hull of finite points or same-session sections.
71
71
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
72
72
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
73
73
 
74
- Package: `@metamesh/modeling@0.13.0`.
74
+ Package: `@metamesh/modeling@0.14.0`.
@@ -41,4 +41,4 @@ editable[0] = 8; // heights still contains 2, 4, 6.
41
41
  - [ImmutableBuffer](ImmutableBuffer-type.md)
42
42
  - [NumericArray](NumericArray.md)
43
43
 
44
- Package: `@metamesh/modeling@0.13.0`.
44
+ Package: `@metamesh/modeling@0.14.0`.
@@ -37,4 +37,4 @@ const model = generate(({ computed, part }) => {
37
37
  - [ImmutableTriangleMesh](ImmutableTriangleMesh.md)
38
38
  - [TriangleMesh](TriangleMesh.md)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,6 +1,6 @@
1
1
  # implicit
2
2
 
3
- Bounded positive-inside implicit field constructor.
3
+ Bounded positive-inside implicit field constructor. The retained callback must capture independent immutable inputs, not live session readers or parameters.
4
4
 
5
5
  **implicit**(`options`: [`ImplicitOptions`](ImplicitOptions.md)): [`Solid`](Solid.md)
6
6
 
@@ -12,7 +12,7 @@ Bounded positive-inside implicit field constructor.
12
12
 
13
13
  **`options`** · [`ImplicitOptions`](ImplicitOptions.md) · Required
14
14
 
15
- - [`field`](ImplicitOptions.md#field) · (`point`: [`Vector3`](Vector3.md)) => `number` · Required
15
+ - [`field`](ImplicitOptions.md#field) · (`point`: [`Vector3Tuple`](Vector3Tuple.md)) => `number` · Required
16
16
 
17
17
  Positive-inside scalar field evaluated at finite XYZ points.
18
18
 
@@ -44,4 +44,4 @@ Bounded positive-inside implicit field constructor.
44
44
  - [ImplicitOptions](ImplicitOptions.md)
45
45
  - [Solid](Solid.md)
46
46
 
47
- Package: `@metamesh/modeling@0.13.0`.
47
+ Package: `@metamesh/modeling@0.14.0`.
@@ -35,4 +35,4 @@ facts.area; // 200 mm²
35
35
 
36
36
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
37
37
 
38
- Package: `@metamesh/modeling@0.13.0`.
38
+ Package: `@metamesh/modeling@0.14.0`.
@@ -35,4 +35,4 @@ facts.volume; // 3600 mm³
35
35
 
36
36
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
37
37
 
38
- Package: `@metamesh/modeling@0.13.0`.
38
+ Package: `@metamesh/modeling@0.14.0`.
@@ -97,4 +97,4 @@ body.subtract([cutter]);
97
97
 
98
98
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
99
99
 
100
- Package: `@metamesh/modeling@0.13.0`.
100
+ Package: `@metamesh/modeling@0.14.0`.
@@ -67,4 +67,4 @@ Native filled section intersection; dimensions cannot be mixed.
67
67
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
68
68
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
69
69
 
70
- Package: `@metamesh/modeling@0.13.0`.
70
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,6 +1,6 @@
1
1
  # isEmpty
2
2
 
3
- Checks whether a same-session solid or filled section contains no geometry.
3
+ Checks whether a solid or filled section contains no geometry during host execution.
4
4
 
5
5
  **isEmpty**(`shape`: [`Solid`](Solid.md) \| [`Section`](Section.md)): `boolean`
6
6
 
@@ -36,4 +36,4 @@ Useful after a Boolean operation whose inputs may not overlap; no mesh is extrac
36
36
  - [Section](Section.md)
37
37
  - [Solid](Solid.md)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ Package: `@metamesh/modeling@0.14.0`.
@@ -77,4 +77,4 @@ readonly [`Section`](Section.md)[]
77
77
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
78
78
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
79
79
 
80
- Package: `@metamesh/modeling@0.13.0`.
80
+ Package: `@metamesh/modeling@0.14.0`.
@@ -134,4 +134,4 @@ Lofts explicit corresponding contours, including holes and collapsed logical slo
134
134
  - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
135
135
  - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
136
136
 
137
- Package: `@metamesh/modeling@0.13.0`.
137
+ Package: `@metamesh/modeling@0.14.0`.
@@ -39,4 +39,4 @@ readonly [`CorrespondingProfile`](CorrespondingProfile.md)[]
39
39
  - [MatchProfilesOptions](MatchProfilesOptions.md)
40
40
  - [Profile](Profile.md)
41
41
 
42
- Package: `@metamesh/modeling@0.13.0`.
42
+ Package: `@metamesh/modeling@0.14.0`.
@@ -34,4 +34,4 @@ Three-dimensional Minkowski sum.
34
34
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
35
35
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
36
36
 
37
- Package: `@metamesh/modeling@0.13.0`.
37
+ Package: `@metamesh/modeling@0.14.0`.
@@ -6,7 +6,7 @@ Physical arc-length copies along a sampled path, with optional tangent orientati
6
6
 
7
7
 
8
8
 
9
- **pathPattern**(`source`: [`PatternSource`](PatternSource.md), `path`: readonly [`Vector3`](Vector3.md)[], `options`: [`PathPatternOptions`](PathPatternOptions.md)): readonly [`Solid`](Solid.md)[]
9
+ **pathPattern**(`source`: [`PatternSource`](PatternSource.md), `path`: readonly [`Vector3Tuple`](Vector3Tuple.md)[], `options`: [`PathPatternOptions`](PathPatternOptions.md)): readonly [`Solid`](Solid.md)[]
10
10
 
11
11
 
12
12
 
@@ -28,7 +28,7 @@ Physical arc-length copies along a sampled path, with optional tangent orientati
28
28
 
29
29
  <a id="path"></a>
30
30
 
31
- **`path`** · readonly [`Vector3`](Vector3.md)[] · Required
31
+ **`path`** · readonly [`Vector3Tuple`](Vector3Tuple.md)[] · Required
32
32
 
33
33
 
34
34
 
@@ -58,7 +58,7 @@ readonly [`Solid`](Solid.md)[]
58
58
 
59
59
 
60
60
 
61
- **pathPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `path`: readonly [`Vector3`](Vector3.md)[], `options`: [`PathPatternOptions`](PathPatternOptions.md)): readonly [`Section`](Section.md)[]
61
+ **pathPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `path`: readonly [`Vector3Tuple`](Vector3Tuple.md)[], `options`: [`PathPatternOptions`](PathPatternOptions.md)): readonly [`Section`](Section.md)[]
62
62
 
63
63
 
64
64
 
@@ -75,7 +75,7 @@ tangent orientation maps +Z to the tangent and rejects when that leaves the plan
75
75
 
76
76
  <a id="path-1"></a>
77
77
 
78
- **`path`** · readonly [`Vector3`](Vector3.md)[] · Required
78
+ **`path`** · readonly [`Vector3Tuple`](Vector3Tuple.md)[] · Required
79
79
 
80
80
 
81
81
 
@@ -108,11 +108,11 @@ readonly [`Section`](Section.md)[]
108
108
  - [PatternSource](PatternSource.md)
109
109
  - [Section](Section.md)
110
110
  - [Solid](Solid.md)
111
- - [Vector3](Vector3.md)
111
+ - [Vector3Tuple](Vector3Tuple.md)
112
112
 
113
113
  ## Guides
114
114
 
115
115
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
116
116
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
117
117
 
118
- Package: `@metamesh/modeling@0.13.0`.
118
+ Package: `@metamesh/modeling@0.14.0`.
@@ -37,4 +37,4 @@ polygon([[0, 0], [20, 0], [10, 12]]).extrude({ height: 3 });
37
37
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
38
38
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.14.0`.
@@ -86,4 +86,4 @@ Allocation-free internal-thread facts.
86
86
 
87
87
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
88
88
 
89
- Package: `@metamesh/modeling@0.13.0`.
89
+ Package: `@metamesh/modeling@0.14.0`.
@@ -97,4 +97,4 @@ Allocation-free nut/cutter facts.
97
97
 
98
98
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
99
99
 
100
- Package: `@metamesh/modeling@0.13.0`.
100
+ Package: `@metamesh/modeling@0.14.0`.
@@ -86,4 +86,4 @@ Allocation-free external-thread facts.
86
86
 
87
87
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
88
88
 
89
- Package: `@metamesh/modeling@0.13.0`.
89
+ Package: `@metamesh/modeling@0.14.0`.
@@ -35,7 +35,7 @@ Repeats one solid about an axis.
35
35
 
36
36
  Number of solids to return, including the original.
37
37
 
38
- - [`axis`](RadialPatternOptions.md#axis) · [`Vector3`](Vector3.md) · Required
38
+ - [`axis`](RadialPatternOptions.md#axis) · [`Vector3Tuple`](Vector3Tuple.md) · Required
39
39
 
40
40
  Axis of the right-handed rotation. Its magnitude is ignored.
41
41
 
@@ -43,7 +43,7 @@ Repeats one solid about an axis.
43
43
 
44
44
  Signed rotation from one copy to the next, in degrees.
45
45
 
46
- - [`center`](RadialPatternOptions.md#center) · [`Vector3`](Vector3.md) · Optional
46
+ - [`center`](RadialPatternOptions.md#center) · [`Vector3Tuple`](Vector3Tuple.md) · Optional
47
47
 
48
48
  Rotation center in world coordinates. Defaults to the origin.
49
49
 
@@ -79,7 +79,7 @@ Repeats a filled Section about an axis; placements must preserve its XY plane.
79
79
 
80
80
  Number of solids to return, including the original.
81
81
 
82
- - [`axis`](RadialPatternOptions.md#axis) · [`Vector3`](Vector3.md) · Required
82
+ - [`axis`](RadialPatternOptions.md#axis) · [`Vector3Tuple`](Vector3Tuple.md) · Required
83
83
 
84
84
  Axis of the right-handed rotation. Its magnitude is ignored.
85
85
 
@@ -87,7 +87,7 @@ Repeats a filled Section about an axis; placements must preserve its XY plane.
87
87
 
88
88
  Signed rotation from one copy to the next, in degrees.
89
89
 
90
- - [`center`](RadialPatternOptions.md#center) · [`Vector3`](Vector3.md) · Optional
90
+ - [`center`](RadialPatternOptions.md#center) · [`Vector3Tuple`](Vector3Tuple.md) · Optional
91
91
 
92
92
  Rotation center in world coordinates. Defaults to the origin.
93
93
 
@@ -110,4 +110,4 @@ readonly [`Section`](Section.md)[]
110
110
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
111
111
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
112
112
 
113
- Package: `@metamesh/modeling@0.13.0`.
113
+ Package: `@metamesh/modeling@0.14.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Copies intersections along the finite directed origin-to-endpoint segment.
4
4
 
5
- **rayCast**(`solid`: [`Solid`](Solid.md), `origin`: [`Vector3`](Vector3.md), `endpoint`: [`Vector3`](Vector3.md)): readonly [`SolidRayHit`](SolidRayHit.md)[]
5
+ **rayCast**(`solid`: [`Solid`](Solid.md), `origin`: [`Vector3Tuple`](Vector3Tuple.md), `endpoint`: [`Vector3Tuple`](Vector3Tuple.md)): readonly [`SolidRayHit`](SolidRayHit.md)[]
6
6
 
7
7
 
8
8
 
@@ -16,13 +16,13 @@ Copies intersections along the finite directed origin-to-endpoint segment.
16
16
 
17
17
  <a id="origin"></a>
18
18
 
19
- **`origin`** · [`Vector3`](Vector3.md) · Required
19
+ **`origin`** · [`Vector3Tuple`](Vector3Tuple.md) · Required
20
20
 
21
21
 
22
22
 
23
23
  <a id="endpoint"></a>
24
24
 
25
- **`endpoint`** · [`Vector3`](Vector3.md) · Required
25
+ **`endpoint`** · [`Vector3Tuple`](Vector3Tuple.md) · Required
26
26
 
27
27
 
28
28
 
@@ -35,6 +35,6 @@ readonly [`SolidRayHit`](SolidRayHit.md)[]
35
35
 
36
36
  - [Solid](Solid.md)
37
37
  - [SolidRayHit](SolidRayHit.md)
38
- - [Vector3](Vector3.md)
38
+ - [Vector3Tuple](Vector3Tuple.md)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.14.0`.
@@ -18,7 +18,7 @@ rectangle({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
18
18
 
19
19
  **`options`** · [`RectangleOptions`](RectangleOptions.md) · Required
20
20
 
21
- - [`size`](RectangleOptions.md#size) · `number` \| [`Vector2`](Vector2.md) · Required
21
+ - [`size`](RectangleOptions.md#size) · `number` \| [`Vector2Tuple`](Vector2Tuple.md) · Required
22
22
 
23
23
  Positive uniform size or explicit XY extents in millimetres.
24
24
 
@@ -56,4 +56,4 @@ rectangle({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
56
56
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
57
57
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
58
58
 
59
- Package: `@metamesh/modeling@0.13.0`.
59
+ Package: `@metamesh/modeling@0.14.0`.
@@ -36,4 +36,4 @@ regularPolygon({ radius: 10, sides: 6, sizing: "face" });
36
36
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
37
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ Package: `@metamesh/modeling@0.14.0`.
@@ -71,4 +71,4 @@ revolve(profile!, { revolveDegrees: 270 });
71
71
  - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
72
72
  - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
73
73
 
74
- Package: `@metamesh/modeling@0.13.0`.
74
+ Package: `@metamesh/modeling@0.14.0`.
@@ -39,4 +39,4 @@ solidFromMesh(mesh);
39
39
 
40
40
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
41
41
 
42
- Package: `@metamesh/modeling@0.13.0`.
42
+ Package: `@metamesh/modeling@0.14.0`.
@@ -39,4 +39,4 @@ sphere({ diameter: 20 });
39
39
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
40
40
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
41
41
 
42
- Package: `@metamesh/modeling@0.13.0`.
42
+ Package: `@metamesh/modeling@0.14.0`.
@@ -51,4 +51,4 @@ readonly \[[`Solid`](Solid.md), [`Solid`](Solid.md)\]
51
51
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
52
52
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
53
53
 
54
- Package: `@metamesh/modeling@0.13.0`.
54
+ Package: `@metamesh/modeling@0.14.0`.
@@ -63,4 +63,4 @@ readonly \[[`Solid`](Solid.md), [`Solid`](Solid.md)\]
63
63
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
64
64
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
65
65
 
66
- Package: `@metamesh/modeling@0.13.0`.
66
+ Package: `@metamesh/modeling@0.14.0`.
@@ -60,4 +60,4 @@ star({ outerRadius: 12, innerRadius: 6, points: 5 });
60
60
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
61
61
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
62
62
 
63
- Package: `@metamesh/modeling@0.13.0`.
63
+ Package: `@metamesh/modeling@0.14.0`.
@@ -0,0 +1,74 @@
1
+ # stroke
2
+
3
+ Creates a centered-width native Section along a sampled XY path.
4
+
5
+ **stroke**(`path`: [`Path2`](Path2.md), `options`: [`StrokeOptions`](StrokeOptions.md)): [`Section`](Section.md)
6
+
7
+
8
+
9
+ ## Example: Extrude a rounded track
10
+
11
+ ```ts
12
+ stroke([[0, 0], [20, 0], [20, 10]], { width: 3, join: "round", cap: "round" }).extrude({ height: 2 });
13
+ ```
14
+
15
+ Shares caps, joins and physical sampling with Geometry's strokePathRegion. Native union
16
+ resolves overlapping stroke primitives. Session resolution and resource ceilings apply;
17
+ closed paths omit the duplicated seam. Returns an immutable deferred recipe.
18
+
19
+ ## Parameters
20
+
21
+ <a id="path"></a>
22
+
23
+ **`path`** · [`Path2`](Path2.md) · Required
24
+
25
+
26
+
27
+ <a id="options"></a>
28
+
29
+ **`options`** · [`StrokeOptions`](StrokeOptions.md) · Required
30
+
31
+ - [`width`](StrokeOptions.md#width) · `number` · Required
32
+
33
+ Positive total stroke width in millimetres, centered on the sampled path.
34
+
35
+ - [`limits`](StrokeOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
36
+
37
+ Explicit path, circular and expanded-profile allocation ceilings.
38
+
39
+ - [`closed`](StrokeOptions.md#closed) · `boolean` · Optional
40
+
41
+ Treat the path as a closed non-duplicated loop. Default: `false`.
42
+
43
+ - [`cap`](StrokeOptions.md#cap) · [`StrokePathCap`](StrokePathCap.md) · Optional
44
+
45
+ End-cap treatment for an open path. Ignored for closed paths. Default: `butt`.
46
+
47
+ - [`join`](StrokeOptions.md#join) · [`StrokePathJoin`](StrokePathJoin.md) · Optional
48
+
49
+ Corner treatment; miters exceeding SVG's default limit of 4 become bevels. Default: `miter`.
50
+
51
+ - [`resolution`](StrokeOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
52
+
53
+ Physical tessellation policy for round caps and joins.
54
+
55
+
56
+
57
+ ## Returns
58
+
59
+ [`Section`](Section.md)
60
+
61
+
62
+ ## Related APIs
63
+
64
+ - [Path2](Path2.md)
65
+ - [Section](Section.md)
66
+ - [StrokeOptions](StrokeOptions.md)
67
+
68
+ ## Guides
69
+
70
+ - [Section, hole, offset, and extrusion](../../guides/recipes.md#section-hole-offset-and-extrusion)
71
+ - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
72
+ - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
73
+
74
+ Package: `@metamesh/modeling@0.14.0`.
@@ -62,4 +62,4 @@ svgPathSection("M0 0H20V12H0Z", { origin: "center", scale: 1 });
62
62
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
63
63
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
64
64
 
65
- Package: `@metamesh/modeling@0.13.0`.
65
+ Package: `@metamesh/modeling@0.14.0`.
@@ -61,4 +61,4 @@ svgSection(
61
61
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
62
62
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
63
63
 
64
- Package: `@metamesh/modeling@0.13.0`.
64
+ Package: `@metamesh/modeling@0.14.0`.