@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,6 +1,6 @@
1
1
  # Section
2
2
 
3
- Immutable deferred filled XY section recipe belonging to exactly one model session. Methods run during synchronous generation and preserve their receiver. Distances use millimetres; rotations are counterclockwise degrees about the origin. Construction uses the session resolution unless the operation supplies explicit options.
3
+ Immutable deferred filled XY section recipe. Construction and composition require no engine. Ordinary recipes may be reused across sessions regardless of where constructed. Observed components and recipes using them can only be evaluated in their originating session. Methods leave the source unchanged; observations require a synchronous model execution. Distances use millimetres; rotations use counterclockwise degrees. Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults.
4
4
 
5
5
  ## Example: Extrude an outline with a border
6
6
 
@@ -21,7 +21,7 @@ const body = rectangle({ size: [20, 12] })
21
21
 
22
22
 
23
23
 
24
- Compile-time ownership brand for a same-session section.
24
+ Compile-time identity brand for an immutable filled section recipe.
25
25
 
26
26
  ## Methods
27
27
 
@@ -29,7 +29,7 @@ Compile-time ownership brand for a same-session section.
29
29
 
30
30
 
31
31
 
32
- **translate**(`offset`: [`Vector2`](Vector2.md)): `Section`
32
+ **translate**(`offset`: [`Vector2Input`](Vector2Input.md)): `Section`
33
33
 
34
34
 
35
35
 
@@ -39,7 +39,7 @@ Translates XY coordinates in millimetres.
39
39
 
40
40
  <a id="offset"></a>
41
41
 
42
- **`offset`** · [`Vector2`](Vector2.md) · Required
42
+ **`offset`** · [`Vector2Input`](Vector2Input.md) · Required
43
43
 
44
44
 
45
45
 
@@ -53,11 +53,12 @@ Translates XY coordinates in millimetres.
53
53
 
54
54
 
55
55
 
56
- **rotate**(`degrees`: `number`): `Section`
56
+ **rotate**(`degrees`: `number`, `options?`: [`Pivot2Options`](Pivot2Options.md)): `Section`
57
57
 
58
58
 
59
59
 
60
- Rotates counterclockwise about the origin by a scalar angle in degrees.
60
+ Rotates counterclockwise in degrees.
61
+ `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
61
62
 
62
63
  #### Parameters
63
64
 
@@ -67,6 +68,16 @@ Rotates counterclockwise about the origin by a scalar angle in degrees.
67
68
 
68
69
 
69
70
 
71
+ <a id="options"></a>
72
+
73
+ **`options`** · [`Pivot2Options`](Pivot2Options.md) · Optional
74
+
75
+ - [`pivot`](Pivot2Options.md#pivot) · [`Vector2Input`](Vector2Input.md) · Optional
76
+
77
+ World-space point left fixed by rotation or scaling.
78
+
79
+
80
+
70
81
  #### Returns
71
82
 
72
83
  `Section`
@@ -77,17 +88,28 @@ Rotates counterclockwise about the origin by a scalar angle in degrees.
77
88
 
78
89
 
79
90
 
80
- **scale**(`factors`: `number` \| [`Vector2`](Vector2.md)): `Section`
91
+ **scale**(`factors`: `number` \| [`Vector2Input`](Vector2Input.md), `options?`: [`Pivot2Options`](Pivot2Options.md)): `Section`
81
92
 
82
93
 
83
94
 
84
- Nonsingular scaling about the origin.
95
+ Uniform or per-axis nonsingular scaling; negative factors reflect geometry.
96
+ `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
85
97
 
86
98
  #### Parameters
87
99
 
88
100
  <a id="factors"></a>
89
101
 
90
- **`factors`** · `number` \| [`Vector2`](Vector2.md) · Required
102
+ **`factors`** · `number` \| [`Vector2Input`](Vector2Input.md) · Required
103
+
104
+
105
+
106
+ <a id="options-1"></a>
107
+
108
+ **`options`** · [`Pivot2Options`](Pivot2Options.md) · Optional
109
+
110
+ - [`pivot`](Pivot2Options.md#pivot) · [`Vector2Input`](Vector2Input.md) · Optional
111
+
112
+ World-space point left fixed by rotation or scaling.
91
113
 
92
114
 
93
115
 
@@ -101,7 +123,7 @@ Nonsingular scaling about the origin.
101
123
 
102
124
 
103
125
 
104
- **mirror**(`normal`: [`Vector2`](Vector2.md)): `Section`
126
+ **mirror**(`normal`: [`Vector2Input`](Vector2Input.md)): `Section`
105
127
 
106
128
 
107
129
 
@@ -111,7 +133,7 @@ Reflection across an origin line/plane.
111
133
 
112
134
  <a id="normal"></a>
113
135
 
114
- **`normal`** · [`Vector2`](Vector2.md) · Required
136
+ **`normal`** · [`Vector2Input`](Vector2Input.md) · Required
115
137
 
116
138
 
117
139
 
@@ -125,17 +147,17 @@ Reflection across an origin line/plane.
125
147
 
126
148
 
127
149
 
128
- **transform**(`matrix`: [`Transform2`](Transform2.md)): `Section`
150
+ **transform**(`placement`: [`Transform2Input`](Transform2Input.md)): `Section`
129
151
 
130
152
 
131
153
 
132
- Row-major affine transform preserving dimensionality.
154
+ Applies a reusable XY placement or canonical row-major matrix.
133
155
 
134
156
  #### Parameters
135
157
 
136
- <a id="matrix"></a>
158
+ <a id="placement"></a>
137
159
 
138
- **`matrix`** · [`Transform2`](Transform2.md) · Required
160
+ **`placement`** · [`Transform2Input`](Transform2Input.md) · Required
139
161
 
140
162
 
141
163
 
@@ -145,6 +167,22 @@ Row-major affine transform preserving dimensionality.
145
167
 
146
168
  ***
147
169
 
170
+ ### toRegionData()
171
+
172
+
173
+
174
+ **toRegionData**(): [`RegionData`](RegionData.md)
175
+
176
+
177
+
178
+ Copies canonical filled polygons for interchange; requires an active model execution.
179
+
180
+ #### Returns
181
+
182
+ [`RegionData`](RegionData.md)
183
+
184
+ ***
185
+
148
186
  ### subtract()
149
187
 
150
188
 
@@ -204,7 +242,7 @@ than selecting a lower rendering quality; fine features may be removed.
204
242
 
205
243
 
206
244
 
207
- Returns a new same-session handle with copied named anchors; existing names may be replaced.
245
+ Returns a new recipe with copied named anchors; existing names may be replaced.
208
246
 
209
247
  #### Parameters
210
248
 
@@ -224,7 +262,7 @@ Returns a new same-session handle with copied named anchors; existing names may
224
262
 
225
263
 
226
264
 
227
- **offset**(`distance`: `number`, `options?`: [`RegionOffsetOptions`](RegionOffsetOptions.md)): `Section`
265
+ **offset**(`distance`: `number`, `options?`: [`SectionOffsetOptions`](SectionOffsetOptions.md)): `Section`
228
266
 
229
267
 
230
268
 
@@ -238,23 +276,23 @@ Native millimetre offset preserving holes.
238
276
 
239
277
 
240
278
 
241
- <a id="options"></a>
279
+ <a id="options-2"></a>
242
280
 
243
- **`options`** · [`RegionOffsetOptions`](RegionOffsetOptions.md) · Optional
281
+ **`options`** · [`SectionOffsetOptions`](SectionOffsetOptions.md) · Optional
244
282
 
245
- - [`circularSegments`](RegionOffsetOptions.md#circularsegments) · `number` · Optional
283
+ - [`circularSegments`](SectionOffsetOptions.md#circularsegments) · `number` · Optional
246
284
 
247
285
  Number of segments per full circle for round joins.
248
286
 
249
- - [`join`](RegionOffsetOptions.md#join) · [`RegionOffsetJoin`](RegionOffsetJoin.md) · Optional
287
+ - [`join`](SectionOffsetOptions.md#join) · [`SectionOffsetJoin`](SectionOffsetJoin.md) · Optional
250
288
 
251
289
  Corner treatment; defaults to `round`.
252
290
 
253
- - [`miterLimit`](RegionOffsetOptions.md#miterlimit) · `number` · Optional
291
+ - [`miterLimit`](SectionOffsetOptions.md#miterlimit) · `number` · Optional
254
292
 
255
293
  Maximum miter extension in offset-distance multiples; at least two.
256
294
 
257
- - [`resolution`](RegionOffsetOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
295
+ - [`resolution`](SectionOffsetOptions.md#resolution) · [`GeometryResolution`](GeometryResolution.md) · Optional
258
296
 
259
297
  Operation-level physical tessellation policy over the active model-wide policy.
260
298
 
@@ -278,7 +316,7 @@ Extrudes along +Z with degree twist and top scaling.
278
316
 
279
317
  #### Parameters
280
318
 
281
- <a id="options-1"></a>
319
+ <a id="options-3"></a>
282
320
 
283
321
  **`options`** · [`ExtrudeOptions`](ExtrudeOptions.md) · Required
284
322
 
@@ -306,7 +344,7 @@ Extrudes along +Z with degree twist and top scaling.
306
344
 
307
345
  Operation-level physical policy over the nearest model scope.
308
346
 
309
- - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2`](Vector2.md) · Optional
347
+ - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2Tuple`](Vector2Tuple.md) · Optional
310
348
 
311
349
  Finite uniform or XY scale of the top profile; defaults to one.
312
350
 
@@ -334,7 +372,7 @@ Revolves a filled radial/Z shape around +Z, with caps for partial sweeps.
334
372
 
335
373
  #### Parameters
336
374
 
337
- <a id="options-2"></a>
375
+ <a id="options-4"></a>
338
376
 
339
377
  **`options`** · [`RevolveOptions`](RevolveOptions.md) · Optional
340
378
 
@@ -372,7 +410,7 @@ Revolves a filled radial/Z shape around +Z, with caps for partial sweeps.
372
410
 
373
411
 
374
412
 
375
- **sweep**(`path`: readonly [`Vector3`](Vector3.md)[], `options?`: [`SweepOptions`](SweepOptions.md)): [`Solid`](Solid.md)
413
+ **sweep**(`path`: readonly [`Vector3Tuple`](Vector3Tuple.md)[], `options?`: [`SweepOptions`](SweepOptions.md)): [`Solid`](Solid.md)
376
414
 
377
415
 
378
416
 
@@ -382,11 +420,11 @@ Sweeps this filled section using the selected frame policy and degree twist.
382
420
 
383
421
  <a id="path"></a>
384
422
 
385
- **`path`** · readonly [`Vector3`](Vector3.md)[] · Required
423
+ **`path`** · readonly [`Vector3Tuple`](Vector3Tuple.md)[] · Required
386
424
 
387
425
 
388
426
 
389
- <a id="options-3"></a>
427
+ <a id="options-5"></a>
390
428
 
391
429
  **`options`** · [`SweepOptions`](SweepOptions.md) · Optional
392
430
 
@@ -414,7 +452,7 @@ Sweeps this filled section using the selected frame policy and degree twist.
414
452
 
415
453
  Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap.
416
454
 
417
- - [`scale`](SweepOptions.md#scale) · `number` \| [`Vector2`](Vector2.md) \| readonly [`Vector2`](Vector2.md)[] · Optional
455
+ - [`scale`](SweepOptions.md#scale) · `number` \| [`Vector2Tuple`](Vector2Tuple.md) \| readonly [`Vector2Tuple`](Vector2Tuple.md)[] · Optional
418
456
 
419
457
  Positive uniform/XY scale, or one XY pair per path station. Defaults to one.
420
458
 
@@ -433,13 +471,15 @@ Sweeps this filled section using the selected frame policy and degree twist.
433
471
 
434
472
  - [Anchor3](Anchor3.md)
435
473
  - [ExtrudeOptions](ExtrudeOptions.md)
436
- - [RegionOffsetOptions](RegionOffsetOptions.md)
474
+ - [Pivot2Options](Pivot2Options.md)
475
+ - [RegionData](RegionData.md)
437
476
  - [RevolveOptions](RevolveOptions.md)
477
+ - [SectionOffsetOptions](SectionOffsetOptions.md)
438
478
  - [Solid](Solid.md)
439
479
  - [SweepOptions](SweepOptions.md)
440
- - [Transform2](Transform2.md)
441
- - [Vector2](Vector2.md)
442
- - [Vector3](Vector3.md)
480
+ - [Transform2Input](Transform2Input.md)
481
+ - [Vector2Input](Vector2Input.md)
482
+ - [Vector3Tuple](Vector3Tuple.md)
443
483
 
444
484
  ## Guides
445
485
 
@@ -447,4 +487,4 @@ Sweeps this filled section using the selected frame policy and degree twist.
447
487
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
448
488
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
449
489
 
450
- Package: `@metamesh/modeling@0.13.0`.
490
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,8 +1,8 @@
1
1
  # SectionHullOptions
2
2
 
3
- Planar convex hull inputs are finite XY points or same-session filled sections.
3
+ Planar convex hull inputs are finite XY points or filled section recipes.
4
4
 
5
- **SectionHullOptions** = \{ `points`: readonly [`Vector2`](Vector2.md)[]; `sections?`: `never`; \} \| \{ `sections`: readonly [`Section`](Section.md)[]; `points?`: `never`; \}
5
+ **SectionHullOptions** = \{ `points`: readonly [`Vector2Tuple`](Vector2Tuple.md)[]; `sections?`: `never`; \} \| \{ `sections`: readonly [`Section`](Section.md)[]; `points?`: `never`; \}
6
6
 
7
7
 
8
8
 
@@ -10,13 +10,13 @@ Planar convex hull inputs are finite XY points or same-session filled sections.
10
10
 
11
11
  ### Type Literal
12
12
 
13
- \{ `points`: readonly [`Vector2`](Vector2.md)[]; `sections?`: `never`; \}
13
+ \{ `points`: readonly [`Vector2Tuple`](Vector2Tuple.md)[]; `sections?`: `never`; \}
14
14
 
15
15
  #### points
16
16
 
17
17
 
18
18
 
19
- `readonly` **points**: readonly [`Vector2`](Vector2.md)[]
19
+ `readonly` **points**: readonly [`Vector2Tuple`](Vector2Tuple.md)[]
20
20
 
21
21
 
22
22
 
@@ -46,7 +46,7 @@ Point input excludes section input.
46
46
 
47
47
 
48
48
 
49
- One through 1000 same-session sections to include in the convex hull.
49
+ One through 1000 filled section recipes to include in the convex hull.
50
50
 
51
51
  #### points?
52
52
 
@@ -62,11 +62,11 @@ Section input excludes point input.
62
62
  ## Related APIs
63
63
 
64
64
  - [Section](Section.md)
65
- - [Vector2](Vector2.md)
65
+ - [Vector2Tuple](Vector2Tuple.md)
66
66
 
67
67
  ## Guides
68
68
 
69
69
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
70
70
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
71
71
 
72
- Package: `@metamesh/modeling@0.13.0`.
72
+ Package: `@metamesh/modeling@0.14.0`.
@@ -44,7 +44,7 @@ Number of extracted outer and hole contours.
44
44
 
45
45
 
46
46
 
47
- `readonly` **max**: [`Vector2`](Vector2.md)
47
+ `readonly` **max**: [`Vector2Tuple`](Vector2Tuple.md)
48
48
 
49
49
 
50
50
 
@@ -56,7 +56,7 @@ Inclusive maximum coordinates in millimetres.
56
56
 
57
57
 
58
58
 
59
- `readonly` **min**: [`Vector2`](Vector2.md)
59
+ `readonly` **min**: [`Vector2Tuple`](Vector2Tuple.md)
60
60
 
61
61
 
62
62
 
@@ -89,10 +89,10 @@ Number of native section vertices.
89
89
 
90
90
  ## Related APIs
91
91
 
92
- - [Vector2](Vector2.md)
92
+ - [Vector2Tuple](Vector2Tuple.md)
93
93
 
94
94
  ## Guides
95
95
 
96
96
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
97
97
 
98
- Package: `@metamesh/modeling@0.13.0`.
98
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,8 +1,8 @@
1
- # RegionOffsetJoin
1
+ # SectionOffsetJoin
2
2
 
3
3
  Clipper2 join styles accepted by robust region offsets.
4
4
 
5
- **RegionOffsetJoin** = `"miter"` \| `"round"` \| `"square"`
5
+ **SectionOffsetJoin** = `"miter"` \| `"round"` \| `"square"`
6
6
 
7
7
 
8
8
 
@@ -13,4 +13,4 @@ Clipper2 join styles accepted by robust region offsets.
13
13
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
14
14
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
15
15
 
16
- Package: `@metamesh/modeling@0.13.0`.
16
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,4 +1,4 @@
1
- # RegionOffsetOptions
1
+ # SectionOffsetOptions
2
2
 
3
3
  Options controlling robust Clipper2 region offsets.
4
4
 
@@ -20,7 +20,7 @@ Number of segments per full circle for round joins.
20
20
 
21
21
 
22
22
 
23
- `readonly` `optional` **join?**: [`RegionOffsetJoin`](RegionOffsetJoin.md)
23
+ `readonly` `optional` **join?**: [`SectionOffsetJoin`](SectionOffsetJoin.md)
24
24
 
25
25
 
26
26
 
@@ -54,7 +54,7 @@ Operation-level physical tessellation policy over the active model-wide policy.
54
54
  ## Related APIs
55
55
 
56
56
  - [GeometryResolution](GeometryResolution.md)
57
- - [RegionOffsetJoin](RegionOffsetJoin.md)
57
+ - [SectionOffsetJoin](SectionOffsetJoin.md)
58
58
 
59
59
  ## Guides
60
60
 
@@ -62,4 +62,4 @@ Operation-level physical tessellation policy over the active model-wide policy.
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`.
@@ -73,4 +73,4 @@ Explicit sampling ceilings, bounded by the host policy.
73
73
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
74
74
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
75
75
 
76
- Package: `@metamesh/modeling@0.13.0`.
76
+ Package: `@metamesh/modeling@0.14.0`.
@@ -1,6 +1,6 @@
1
1
  # Solid
2
2
 
3
- Immutable deferred solid recipe belonging to exactly one model session. Methods run during synchronous generation, preserve their receiver, and use millimetres and degrees. A no-op may reuse the receiver; final part placement belongs in `part` options.
3
+ Immutable deferred solid recipe. Construction and composition require no engine. Ordinary recipes may be reused across sessions regardless of where constructed. Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults. Observed components and recipes using them can only be evaluated in their originating session. Methods leave the source unchanged and use millimetres and degrees. A no-op may reuse the receiver; final part placement belongs in `part` options.
4
4
 
5
5
  ## Example: Shape a body with a through bore
6
6
 
@@ -20,7 +20,7 @@ const body = box({ size: [30, 20, 6] })
20
20
 
21
21
 
22
22
 
23
- Compile-time ownership brand for a same-session solid.
23
+ Compile-time identity brand for an immutable solid recipe.
24
24
 
25
25
  ## Methods
26
26
 
@@ -28,7 +28,7 @@ Compile-time ownership brand for a same-session solid.
28
28
 
29
29
 
30
30
 
31
- **translate**(`offset`: [`Vector3`](Vector3.md)): `Solid`
31
+ **translate**(`offset`: [`Vector3Input`](Vector3Input.md)): `Solid`
32
32
 
33
33
 
34
34
 
@@ -38,7 +38,7 @@ Translates XYZ coordinates in millimetres.
38
38
 
39
39
  <a id="offset"></a>
40
40
 
41
- **`offset`** · [`Vector3`](Vector3.md) · Required
41
+ **`offset`** · [`Vector3Input`](Vector3Input.md) · Required
42
42
 
43
43
 
44
44
 
@@ -52,17 +52,28 @@ Translates XYZ coordinates in millimetres.
52
52
 
53
53
 
54
54
 
55
- **rotate**(`degrees`: [`Vector3`](Vector3.md)): `Solid`
55
+ **rotate**(`degrees`: [`Vector3Input`](Vector3Input.md), `options?`: [`Pivot3Options`](Pivot3Options.md)): `Solid`
56
56
 
57
57
 
58
58
 
59
- Rotates about the origin using XYZ Euler angles in degrees.
59
+ Rotates about global X, then Y, then Z in degrees.
60
+ `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
60
61
 
61
62
  #### Parameters
62
63
 
63
64
  <a id="degrees"></a>
64
65
 
65
- **`degrees`** · [`Vector3`](Vector3.md) · Required
66
+ **`degrees`** · [`Vector3Input`](Vector3Input.md) · Required
67
+
68
+
69
+
70
+ <a id="options"></a>
71
+
72
+ **`options`** · [`Pivot3Options`](Pivot3Options.md) · Optional
73
+
74
+ - [`pivot`](Pivot3Options.md#pivot) · [`Vector3Input`](Vector3Input.md) · Optional
75
+
76
+ World-space point left fixed by rotation or scaling.
66
77
 
67
78
 
68
79
 
@@ -76,17 +87,28 @@ Rotates about the origin using XYZ Euler angles in degrees.
76
87
 
77
88
 
78
89
 
79
- **scale**(`factors`: `number` \| [`Vector3`](Vector3.md)): `Solid`
90
+ **scale**(`factors`: `number` \| [`Vector3Input`](Vector3Input.md), `options?`: [`Pivot3Options`](Pivot3Options.md)): `Solid`
80
91
 
81
92
 
82
93
 
83
- Nonsingular scaling about the origin.
94
+ Uniform or per-axis nonsingular scaling; negative factors reflect geometry.
95
+ `options.pivot` is a fixed world-space point; omission uses the coordinate origin.
84
96
 
85
97
  #### Parameters
86
98
 
87
99
  <a id="factors"></a>
88
100
 
89
- **`factors`** · `number` \| [`Vector3`](Vector3.md) · Required
101
+ **`factors`** · `number` \| [`Vector3Input`](Vector3Input.md) · Required
102
+
103
+
104
+
105
+ <a id="options-1"></a>
106
+
107
+ **`options`** · [`Pivot3Options`](Pivot3Options.md) · Optional
108
+
109
+ - [`pivot`](Pivot3Options.md#pivot) · [`Vector3Input`](Vector3Input.md) · Optional
110
+
111
+ World-space point left fixed by rotation or scaling.
90
112
 
91
113
 
92
114
 
@@ -100,7 +122,7 @@ Nonsingular scaling about the origin.
100
122
 
101
123
 
102
124
 
103
- **mirror**(`normal`: [`Vector3`](Vector3.md)): `Solid`
125
+ **mirror**(`normal`: [`Vector3Input`](Vector3Input.md)): `Solid`
104
126
 
105
127
 
106
128
 
@@ -110,7 +132,7 @@ Reflection across an origin line/plane.
110
132
 
111
133
  <a id="normal"></a>
112
134
 
113
- **`normal`** · [`Vector3`](Vector3.md) · Required
135
+ **`normal`** · [`Vector3Input`](Vector3Input.md) · Required
114
136
 
115
137
 
116
138
 
@@ -124,17 +146,17 @@ Reflection across an origin line/plane.
124
146
 
125
147
 
126
148
 
127
- **transform**(`matrix`: [`Transform3`](Transform3.md)): `Solid`
149
+ **transform**(`placement`: [`Transform3Input`](Transform3Input.md)): `Solid`
128
150
 
129
151
 
130
152
 
131
- Row-major affine transform preserving dimensionality.
153
+ Applies a reusable XYZ placement or canonical row-major matrix.
132
154
 
133
155
  #### Parameters
134
156
 
135
- <a id="matrix"></a>
157
+ <a id="placement"></a>
136
158
 
137
- **`matrix`** · [`Transform3`](Transform3.md) · Required
159
+ **`placement`** · [`Transform3Input`](Transform3Input.md) · Required
138
160
 
139
161
 
140
162
 
@@ -203,7 +225,7 @@ and the solid's existing native tolerance. Choose it from the detail you can aff
203
225
 
204
226
 
205
227
 
206
- Returns a new same-session handle with copied named anchors; existing names may be replaced.
228
+ Returns a new recipe with copied named anchors; existing names may be replaced.
207
229
 
208
230
  #### Parameters
209
231
 
@@ -243,7 +265,7 @@ Places an explicit or named source anchor against an explicit target anchor.
243
265
 
244
266
 
245
267
 
246
- <a id="options"></a>
268
+ <a id="options-2"></a>
247
269
 
248
270
  **`options`** · [`AttachOptions`](AttachOptions.md) · Optional
249
271
 
@@ -338,13 +360,14 @@ Takes a filled horizontal slice at Z millimetres.
338
360
 
339
361
  - [Anchor3](Anchor3.md)
340
362
  - [AttachOptions](AttachOptions.md)
363
+ - [Pivot3Options](Pivot3Options.md)
341
364
  - [Section](Section.md)
342
- - [Transform3](Transform3.md)
343
- - [Vector3](Vector3.md)
365
+ - [Transform3Input](Transform3Input.md)
366
+ - [Vector3Input](Vector3Input.md)
344
367
 
345
368
  ## Guides
346
369
 
347
370
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
348
371
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
349
372
 
350
- Package: `@metamesh/modeling@0.13.0`.
373
+ Package: `@metamesh/modeling@0.14.0`.
@@ -20,7 +20,7 @@ Whether this native solid contains no material.
20
20
 
21
21
 
22
22
 
23
- `readonly` **max**: [`Vector3`](Vector3.md)
23
+ `readonly` **max**: [`Vector3Tuple`](Vector3Tuple.md)
24
24
 
25
25
 
26
26
 
@@ -32,7 +32,7 @@ Inclusive maximum coordinates in millimetres.
32
32
 
33
33
 
34
34
 
35
- `readonly` **min**: [`Vector3`](Vector3.md)
35
+ `readonly` **min**: [`Vector3Tuple`](Vector3Tuple.md)
36
36
 
37
37
 
38
38
 
@@ -89,10 +89,10 @@ Effective native geometric tolerance in millimetres.
89
89
 
90
90
  ## Related APIs
91
91
 
92
- - [Vector3](Vector3.md)
92
+ - [Vector3Tuple](Vector3Tuple.md)
93
93
 
94
94
  ## Guides
95
95
 
96
96
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
97
97
 
98
- Package: `@metamesh/modeling@0.13.0`.
98
+ Package: `@metamesh/modeling@0.14.0`.
@@ -32,7 +32,7 @@ Distance from the ray origin in millimetres.
32
32
 
33
33
 
34
34
 
35
- `readonly` **position**: [`Vector3`](Vector3.md)
35
+ `readonly` **position**: [`Vector3Tuple`](Vector3Tuple.md)
36
36
 
37
37
 
38
38
 
@@ -44,7 +44,7 @@ Intersection position in millimetres.
44
44
 
45
45
 
46
46
 
47
- `readonly` **normal**: [`Vector3`](Vector3.md)
47
+ `readonly` **normal**: [`Vector3Tuple`](Vector3Tuple.md)
48
48
 
49
49
 
50
50
 
@@ -53,6 +53,6 @@ Outward unit surface normal at the intersection.
53
53
 
54
54
  ## Related APIs
55
55
 
56
- - [Vector3](Vector3.md)
56
+ - [Vector3Tuple](Vector3Tuple.md)
57
57
 
58
- Package: `@metamesh/modeling@0.13.0`.
58
+ Package: `@metamesh/modeling@0.14.0`.
@@ -17,4 +17,4 @@ Exactly one radius or diameter, placement, and tessellation for an origin-center
17
17
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
18
18
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
19
19
 
20
- Package: `@metamesh/modeling@0.13.0`.
20
+ Package: `@metamesh/modeling@0.14.0`.
@@ -95,4 +95,4 @@ Initial counterclockwise rotation in degrees; defaults to zero.
95
95
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
96
96
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
97
97
 
98
- Package: `@metamesh/modeling@0.13.0`.
98
+ Package: `@metamesh/modeling@0.14.0`.