@metamesh/modeling 0.13.0 → 0.15.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 (740) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +67 -9
  3. package/dist/api/engine.d.ts +14 -7
  4. package/dist/api/geometry.d.ts +787 -447
  5. package/dist/api/index.d.ts +637 -250
  6. package/dist/api/text.d.ts +6 -4
  7. package/dist/docs/guides/concepts.md +135 -17
  8. package/dist/docs/guides/fonts.md +8 -0
  9. package/dist/docs/guides/fundamentals.md +8 -3
  10. package/dist/docs/guides/generation.md +6 -4
  11. package/dist/docs/guides/hosting.md +27 -14
  12. package/dist/docs/guides/recipes.md +82 -11
  13. package/dist/docs/manifest.json +1911 -856
  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 +4 -8
  21. package/dist/docs/reference/engine/ModelSession.md +1 -1
  22. package/dist/docs/reference/engine/ModelSnapshot.md +20 -9
  23. package/dist/docs/reference/engine/SessionOptions.md +1 -1
  24. package/dist/docs/reference/engine/SnapshotPart.md +4 -4
  25. package/dist/docs/reference/engine/categories/host-lifecycle.md +2 -2
  26. package/dist/docs/reference/engine/createModelEngine.md +3 -3
  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 +2 -2
  31. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
  32. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +17 -4
  33. package/dist/docs/reference/geometry/{Anchor3.md → Anchor3-type.md} +9 -5
  34. package/dist/docs/reference/geometry/ArcCurve2.md +7 -7
  35. package/dist/docs/reference/geometry/ArcCurve3.md +9 -9
  36. package/dist/docs/reference/geometry/{AttachTransformOptions.md → AttachOptions.md} +14 -5
  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 +10 -10
  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/CompensatedThreadDiameters.md +1 -1
  59. package/dist/docs/reference/geometry/Contour.md +3 -3
  60. package/dist/docs/reference/geometry/ContourCurve.md +1 -1
  61. package/dist/docs/reference/geometry/ContourPoint.md +1 -1
  62. package/dist/docs/reference/geometry/ContourSegment.md +1 -1
  63. package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
  64. package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
  65. package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
  66. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
  67. package/dist/docs/reference/geometry/CubicBezierCurve2.md +6 -6
  68. package/dist/docs/reference/geometry/CubicBezierCurve3.md +6 -6
  69. package/dist/docs/reference/geometry/Curve2.md +1 -1
  70. package/dist/docs/reference/geometry/Curve3.md +1 -1
  71. package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -3
  72. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +3 -3
  73. package/dist/docs/reference/geometry/CylinderAnchorFace.md +8 -1
  74. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +9 -5
  75. package/dist/docs/reference/geometry/CylinderOptions.md +3 -3
  76. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +3 -3
  77. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
  78. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
  79. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +3 -3
  80. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
  81. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
  82. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
  83. package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -6
  84. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  85. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  86. package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
  87. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  88. package/dist/docs/reference/geometry/ExtrudeOptions.md +6 -6
  89. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -5
  90. package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
  91. package/dist/docs/reference/geometry/Frame3.md +6 -6
  92. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  93. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  94. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  95. package/dist/docs/reference/geometry/GeometryResolution.md +14 -5
  96. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
  97. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  98. package/dist/docs/reference/geometry/GridPatternOptions.md +11 -5
  99. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
  100. package/dist/docs/reference/geometry/HeightfieldOptions.md +5 -5
  101. package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
  102. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -5
  103. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +6 -6
  104. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
  105. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +7 -3
  106. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +6 -6
  107. package/dist/docs/reference/geometry/LineCurve2.md +4 -4
  108. package/dist/docs/reference/geometry/LineCurve3.md +4 -4
  109. package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -5
  110. package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
  111. package/dist/docs/reference/geometry/LoftMeshStation.md +4 -4
  112. package/dist/docs/reference/geometry/LoftOptions.md +1 -1
  113. package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
  114. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
  115. package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
  116. package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
  117. package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
  118. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
  119. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
  120. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  121. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
  122. package/dist/docs/reference/geometry/Path2-type.md +192 -0
  123. package/dist/docs/reference/geometry/Path2Data.md +14 -0
  124. package/dist/docs/reference/geometry/Path2Input.md +15 -0
  125. package/dist/docs/reference/geometry/Path3-type.md +192 -0
  126. package/dist/docs/reference/geometry/Path3Data.md +14 -0
  127. package/dist/docs/reference/geometry/Path3Input.md +15 -0
  128. package/dist/docs/reference/geometry/PathFrame.md +5 -5
  129. package/dist/docs/reference/geometry/PathLocation.md +65 -0
  130. package/dist/docs/reference/geometry/PathNormalGuide.md +6 -5
  131. package/dist/docs/reference/geometry/PathOptions.md +34 -0
  132. package/dist/docs/reference/geometry/PathPatternOptions.md +3 -3
  133. package/dist/docs/reference/geometry/PathPlacement.md +4 -4
  134. package/dist/docs/reference/geometry/PathResamplingOptions.md +80 -0
  135. package/dist/docs/reference/geometry/Pivot2Options.md +26 -0
  136. package/dist/docs/reference/geometry/Pivot3Options.md +26 -0
  137. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
  138. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +22 -22
  139. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
  140. package/dist/docs/reference/geometry/PlanarPatchQuality.md +3 -3
  141. package/dist/docs/reference/geometry/{Polygon.md → PolygonData.md} +2 -2
  142. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +4 -4
  143. package/dist/docs/reference/geometry/PrimitiveAttachment.md +31 -0
  144. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +104 -0
  145. package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
  146. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
  147. package/dist/docs/reference/geometry/Profile.md +1 -1
  148. package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
  149. package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
  150. package/dist/docs/reference/geometry/ProfileSpan2.md +3 -3
  151. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
  152. package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
  153. package/dist/docs/reference/geometry/RackPitchSpec.md +5 -5
  154. package/dist/docs/reference/geometry/RadialPatternOptions.md +17 -22
  155. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  156. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  157. package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
  158. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
  159. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
  160. package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
  161. package/dist/docs/reference/geometry/RegionData.md +14 -0
  162. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
  163. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  164. package/dist/docs/reference/geometry/RevolveOptions.md +9 -4
  165. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  166. package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
  167. package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
  168. package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
  169. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
  170. package/dist/docs/reference/geometry/SampledCurve2.md +4 -4
  171. package/dist/docs/reference/geometry/SampledCurve3.md +4 -4
  172. package/dist/docs/reference/geometry/SampledThreadHelices.md +3 -3
  173. package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
  174. package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
  175. package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
  176. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  177. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +3 -3
  178. package/dist/docs/reference/geometry/SphereOptions.md +3 -3
  179. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
  180. package/dist/docs/reference/geometry/StrokeCap.md +7 -0
  181. package/dist/docs/reference/geometry/StrokeJoin.md +7 -0
  182. package/dist/docs/reference/geometry/{StrokePathRegionOptions.md → StrokeOptions.md} +8 -8
  183. package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
  184. package/dist/docs/reference/geometry/SvgRegionPreflight.md +3 -3
  185. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +13 -13
  186. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +11 -11
  187. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +9 -9
  188. package/dist/docs/reference/geometry/SweepOptions.md +6 -6
  189. package/dist/docs/reference/geometry/SweepOrientation.md +7 -7
  190. package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
  191. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -5
  192. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
  193. package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
  194. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
  195. package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
  196. package/dist/docs/reference/geometry/ThreadHelixOptions.md +3 -3
  197. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
  198. package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
  199. package/dist/docs/reference/geometry/{ThreadProfile.md → ThreadProfile-type.md} +3 -3
  200. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
  201. package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
  202. package/dist/docs/reference/geometry/ThreadRole.md +1 -1
  203. package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
  204. package/dist/docs/reference/geometry/ThreadedNutOptions.md +6 -6
  205. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
  206. package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
  207. package/dist/docs/reference/geometry/ThreadedRodOptions.md +6 -6
  208. package/dist/docs/reference/geometry/TorusOptions.md +8 -8
  209. package/dist/docs/reference/geometry/Transform2-type.md +255 -0
  210. package/dist/docs/reference/geometry/Transform2Input.md +19 -0
  211. package/dist/docs/reference/geometry/Transform2Matrix.md +14 -0
  212. package/dist/docs/reference/geometry/Transform3-type.md +295 -0
  213. package/dist/docs/reference/geometry/Transform3Input.md +19 -0
  214. package/dist/docs/reference/geometry/Transform3Matrix.md +17 -0
  215. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -4
  216. package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
  217. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +2 -2
  218. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
  219. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
  220. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +3 -3
  221. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
  222. package/dist/docs/reference/geometry/TriangleMeshSignature.md +2 -2
  223. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +3 -3
  224. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
  225. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
  226. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
  227. package/dist/docs/reference/geometry/TubeOptions.md +8 -8
  228. package/dist/docs/reference/geometry/Vector2-type.md +269 -0
  229. package/dist/docs/reference/geometry/Vector2Input.md +19 -0
  230. package/dist/docs/reference/geometry/Vector2Tuple.md +14 -0
  231. package/dist/docs/reference/geometry/Vector3-type.md +281 -0
  232. package/dist/docs/reference/geometry/Vector3Input.md +19 -0
  233. package/dist/docs/reference/geometry/Vector3Tuple.md +14 -0
  234. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +3 -3
  235. package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
  236. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
  237. package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
  238. package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
  239. package/dist/docs/reference/geometry/add2.md +36 -0
  240. package/dist/docs/reference/geometry/add3.md +10 -6
  241. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
  242. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +2 -2
  243. package/dist/docs/reference/geometry/{createAnchor3.md → anchor3.md} +13 -9
  244. package/dist/docs/reference/geometry/anchorFrame3.md +5 -5
  245. package/dist/docs/reference/geometry/applyTransformDirection3.md +11 -7
  246. package/dist/docs/reference/geometry/applyTransformPoint3.md +11 -7
  247. package/dist/docs/reference/geometry/attachmentTransform3.md +77 -0
  248. package/dist/docs/reference/geometry/boundsCenter.md +7 -7
  249. package/dist/docs/reference/geometry/boundsFromSize.md +7 -7
  250. package/dist/docs/reference/geometry/boundsSize.md +7 -7
  251. package/dist/docs/reference/geometry/boxAnchor3.md +10 -6
  252. package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
  253. package/dist/docs/reference/geometry/categories/curves-paths.md +15 -10
  254. package/dist/docs/reference/geometry/categories/mechanical.md +6 -6
  255. package/dist/docs/reference/geometry/categories/meshes.md +3 -4
  256. package/dist/docs/reference/geometry/categories/pattern-placement.md +7 -7
  257. package/dist/docs/reference/geometry/categories/primitive-options.md +4 -4
  258. package/dist/docs/reference/geometry/categories/profiles-regions.md +5 -6
  259. package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -2
  260. package/dist/docs/reference/geometry/categories/transforms-math.md +41 -12
  261. package/dist/docs/reference/geometry/categories/vector-import.md +5 -5
  262. package/dist/docs/reference/geometry/circleContour.md +1 -1
  263. package/dist/docs/reference/geometry/closeToAxis.md +4 -4
  264. package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
  265. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -5
  266. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -5
  267. package/dist/docs/reference/geometry/composeTransform3.md +10 -6
  268. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +10 -6
  269. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -7
  270. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +4 -4
  271. package/dist/docs/reference/geometry/{createTriangleMeshSignature.md → computeTriangleMeshSignature.md} +4 -4
  272. package/dist/docs/reference/geometry/containsBounds.md +1 -1
  273. package/dist/docs/reference/geometry/contourContainsPoint.md +4 -4
  274. package/dist/docs/reference/geometry/cross2.md +36 -0
  275. package/dist/docs/reference/geometry/cross3.md +10 -6
  276. package/dist/docs/reference/geometry/cylinderAnchor3.md +10 -6
  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 +8 -6
  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 +8 -8
  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 → getMetricClearanceHoleDiameter.md} +3 -3
  290. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
  291. package/dist/docs/reference/geometry/gridPatternTransforms.md +5 -5
  292. package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
  293. package/dist/docs/reference/geometry/{buildHelicalThreadRidgeMesh.md → helicalThreadRidgeMesh.md} +5 -5
  294. package/dist/docs/reference/geometry/{buildHelicalThreadSolidMesh.md → helicalThreadSolidMesh.md} +5 -5
  295. package/dist/docs/reference/geometry/inverseTransform3.md +9 -5
  296. package/dist/docs/reference/geometry/isGeometryError.md +1 -1
  297. package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
  298. package/dist/docs/reference/geometry/layoutRow.md +4 -4
  299. package/dist/docs/reference/geometry/length2.md +30 -0
  300. package/dist/docs/reference/geometry/length3.md +8 -4
  301. package/dist/docs/reference/geometry/lerp2.md +42 -0
  302. package/dist/docs/reference/geometry/lerp3.md +10 -6
  303. package/dist/docs/reference/geometry/linearPatternTransforms.md +5 -5
  304. package/dist/docs/reference/geometry/loftMesh.md +2 -1
  305. package/dist/docs/reference/geometry/matchProfiles.md +1 -1
  306. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +3 -2
  307. package/dist/docs/reference/geometry/meshBounds.md +1 -1
  308. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +3 -3
  309. package/dist/docs/reference/geometry/normalize2.md +36 -0
  310. package/dist/docs/reference/geometry/normalize3.md +10 -6
  311. package/dist/docs/reference/geometry/normalizeContour.md +4 -4
  312. package/dist/docs/reference/geometry/normalizePolygon.md +5 -5
  313. package/dist/docs/reference/geometry/normalizeRegion.md +5 -5
  314. package/dist/docs/reference/geometry/optimizePlanarPatches.md +11 -11
  315. package/dist/docs/reference/geometry/path2.md +42 -0
  316. package/dist/docs/reference/geometry/path3.md +42 -0
  317. package/dist/docs/reference/geometry/pathPatternTransforms.md +8 -8
  318. package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
  319. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +3 -3
  320. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +3 -3
  321. package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
  322. package/dist/docs/reference/geometry/preflightThreadedNut.md +3 -3
  323. package/dist/docs/reference/geometry/preflightThreadedRod.md +3 -3
  324. package/dist/docs/reference/geometry/projectOntoPlane3.md +10 -6
  325. package/dist/docs/reference/geometry/radialPatternTransforms.md +4 -20
  326. package/dist/docs/reference/geometry/rectangleContour.md +2 -2
  327. package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
  328. package/dist/docs/reference/geometry/regionArea.md +4 -4
  329. package/dist/docs/reference/geometry/regionBounds.md +4 -4
  330. package/dist/docs/reference/geometry/regularPolygonContour.md +5 -5
  331. package/dist/docs/reference/geometry/resamplePolyline2.md +5 -5
  332. package/dist/docs/reference/geometry/resamplePolyline3.md +5 -5
  333. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +8 -4
  334. package/dist/docs/reference/geometry/resolveArcSegments.md +6 -6
  335. package/dist/docs/reference/geometry/resolveCircularSegments.md +6 -5
  336. package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
  337. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
  338. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +6 -6
  339. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
  340. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  341. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
  342. package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
  343. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +4 -4
  344. package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
  345. package/dist/docs/reference/geometry/revolveMesh.md +10 -10
  346. package/dist/docs/reference/geometry/rotate2.md +36 -0
  347. package/dist/docs/reference/geometry/rotationTransform3.md +10 -6
  348. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -6
  349. package/dist/docs/reference/geometry/sampleContour.md +3 -3
  350. package/dist/docs/reference/geometry/sampleCurve2.md +3 -3
  351. package/dist/docs/reference/geometry/sampleCurve3.md +2 -2
  352. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
  353. package/dist/docs/reference/geometry/sampleHelix.md +5 -5
  354. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
  355. package/dist/docs/reference/geometry/sampleRackToothPath.md +4 -4
  356. package/dist/docs/reference/geometry/sampleSideProfile.md +6 -6
  357. package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
  358. package/dist/docs/reference/geometry/sampleThreadHelices.md +2 -2
  359. package/dist/docs/reference/geometry/scale2.md +36 -0
  360. package/dist/docs/reference/geometry/scale3.md +9 -5
  361. package/dist/docs/reference/geometry/scaleTransform3.md +10 -6
  362. package/dist/docs/reference/geometry/signedContourArea.md +1 -1
  363. package/dist/docs/reference/geometry/starContour.md +4 -4
  364. package/dist/docs/reference/geometry/strokeRegionData.md +63 -0
  365. package/dist/docs/reference/geometry/subtract2.md +36 -0
  366. package/dist/docs/reference/geometry/subtract3.md +10 -6
  367. package/dist/docs/reference/geometry/sweepMesh.md +9 -9
  368. package/dist/docs/reference/geometry/{createThreadProfile.md → threadProfile.md} +6 -6
  369. package/dist/docs/reference/geometry/transform2.md +38 -0
  370. package/dist/docs/reference/geometry/transform3.md +38 -0
  371. package/dist/docs/reference/geometry/transformDeterminant3.md +8 -4
  372. package/dist/docs/reference/geometry/transformRegionData.md +40 -0
  373. package/dist/docs/reference/geometry/transformTriangleMesh.md +6 -6
  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 +2 -2
  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 +3 -3
  382. package/dist/docs/reference/model/Anchor3.md +5 -5
  383. package/dist/docs/reference/model/AttachOptions.md +10 -5
  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 +10 -10
  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 +3 -3
  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 +3 -3
  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 +3 -3
  406. package/dist/docs/reference/model/EndTreatments.md +1 -1
  407. package/dist/docs/reference/model/ExtrudeOptions.md +6 -6
  408. package/dist/docs/reference/model/FinalizedModel.md +18 -8
  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 +5 -5
  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 +11 -5
  420. package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
  421. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +3 -3
  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 +4 -4
  428. package/dist/docs/reference/model/LinearPatternOptions.md +12 -5
  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 +4 -4
  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/Path2-type.md +192 -0
  440. package/dist/docs/reference/model/Path2Data.md +14 -0
  441. package/dist/docs/reference/model/Path2Input.md +15 -0
  442. package/dist/docs/reference/model/Path3-type.md +192 -0
  443. package/dist/docs/reference/model/Path3Data.md +14 -0
  444. package/dist/docs/reference/model/Path3Input.md +15 -0
  445. package/dist/docs/reference/model/PathLocation.md +65 -0
  446. package/dist/docs/reference/model/PathNormalGuide.md +6 -5
  447. package/dist/docs/reference/model/PathOptions.md +34 -0
  448. package/dist/docs/reference/model/PathPatternOptions.md +3 -3
  449. package/dist/docs/reference/model/PathResamplingOptions.md +79 -0
  450. package/dist/docs/reference/model/PatternSource.md +2 -2
  451. package/dist/docs/reference/model/Pivot2Options.md +27 -0
  452. package/dist/docs/reference/model/Pivot3Options.md +27 -0
  453. package/dist/docs/reference/model/PlaneOptions.md +3 -3
  454. package/dist/docs/reference/model/{Polygon-type.md → PolygonData.md} +2 -2
  455. package/dist/docs/reference/model/PolygonOptions.md +85 -8
  456. package/dist/docs/reference/model/{PrimitivePlacement.md → PrimitiveAttachment.md} +7 -7
  457. package/dist/docs/reference/model/{PrimitivePlacementOptions.md → PrimitiveAttachmentOptions.md} +41 -20
  458. package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
  459. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
  460. package/dist/docs/reference/model/Profile.md +1 -1
  461. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  462. package/dist/docs/reference/model/ProfileContour2.md +1 -1
  463. package/dist/docs/reference/model/ProfileSpan2.md +3 -3
  464. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
  465. package/dist/docs/reference/model/RadialPatternOptions.md +17 -22
  466. package/dist/docs/reference/model/RadialSizing.md +1 -1
  467. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  468. package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
  469. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  470. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  471. package/dist/docs/reference/model/RectangleOptions.md +10 -10
  472. package/dist/docs/reference/model/{Region.md → RegionData.md} +4 -4
  473. package/dist/docs/reference/model/RegularPolygonOptions.md +5 -5
  474. package/dist/docs/reference/model/RevolveOptions.md +9 -4
  475. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  476. package/dist/docs/reference/model/Section.md +81 -40
  477. package/dist/docs/reference/model/SectionHullOptions.md +7 -7
  478. package/dist/docs/reference/model/SectionInspection.md +10 -10
  479. package/dist/docs/reference/model/{RegionOffsetJoin.md → SectionOffsetJoin.md} +3 -3
  480. package/dist/docs/reference/model/{RegionOffsetOptions.md → SectionOffsetOptions.md} +4 -4
  481. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  482. package/dist/docs/reference/model/Solid.md +66 -26
  483. package/dist/docs/reference/model/SolidInspection.md +7 -7
  484. package/dist/docs/reference/model/{SolidRayHit.md → SolidSegmentHit.md} +6 -6
  485. package/dist/docs/reference/model/SphereOptions.md +3 -3
  486. package/dist/docs/reference/model/StarOptions.md +10 -10
  487. package/dist/docs/reference/model/StrokeCap.md +16 -0
  488. package/dist/docs/reference/model/StrokeJoin.md +16 -0
  489. package/dist/docs/reference/model/StrokeOptions.md +91 -0
  490. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  491. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  492. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  493. package/dist/docs/reference/model/SweepOptions.md +6 -6
  494. package/dist/docs/reference/model/SweepOrientation.md +7 -7
  495. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  496. package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
  497. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
  498. package/dist/docs/reference/model/ThreadHandedness.md +1 -1
  499. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
  500. package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
  501. package/dist/docs/reference/model/ThreadProfile.md +3 -3
  502. package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
  503. package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
  504. package/dist/docs/reference/model/ThreadedNutOptions.md +4 -4
  505. package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
  506. package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
  507. package/dist/docs/reference/model/ThreadedRodOptions.md +4 -4
  508. package/dist/docs/reference/model/TorusOptions.md +8 -8
  509. package/dist/docs/reference/model/Transform2-type.md +256 -0
  510. package/dist/docs/reference/model/Transform2Input.md +20 -0
  511. package/dist/docs/reference/model/Transform2Matrix.md +15 -0
  512. package/dist/docs/reference/model/Transform3-type.md +296 -0
  513. package/dist/docs/reference/model/Transform3Input.md +20 -0
  514. package/dist/docs/reference/model/{Transform3.md → Transform3Matrix.md} +3 -3
  515. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  516. package/dist/docs/reference/model/TriangleMeshAnalysis.md +2 -2
  517. package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
  518. package/dist/docs/reference/model/TubeOptions.md +8 -8
  519. package/dist/docs/reference/model/Vector2-type.md +270 -0
  520. package/dist/docs/reference/model/Vector2Input.md +20 -0
  521. package/dist/docs/reference/model/{Vector2.md → Vector2Tuple.md} +3 -3
  522. package/dist/docs/reference/model/Vector3-type.md +282 -0
  523. package/dist/docs/reference/model/Vector3Input.md +20 -0
  524. package/dist/docs/reference/model/{Vector3.md → Vector3Tuple.md} +3 -3
  525. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  526. package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
  527. package/dist/docs/reference/model/anchor.md +1 -1
  528. package/dist/docs/reference/model/box.md +4 -4
  529. package/dist/docs/reference/model/castSegment.md +40 -0
  530. package/dist/docs/reference/model/categories/boolean-operations.md +4 -4
  531. package/dist/docs/reference/model/categories/bounded-surfaces.md +3 -3
  532. package/dist/docs/reference/model/categories/contracts.md +2 -2
  533. package/dist/docs/reference/model/categories/core-values-errors.md +5 -5
  534. package/dist/docs/reference/model/categories/explicit-profiles.md +3 -3
  535. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +2 -2
  536. package/dist/docs/reference/model/categories/generation.md +1 -1
  537. package/dist/docs/reference/model/categories/inspection.md +7 -8
  538. package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
  539. package/dist/docs/reference/model/categories/paths.md +33 -0
  540. package/dist/docs/reference/model/categories/primitives.md +3 -3
  541. package/dist/docs/reference/model/categories/resolution.md +2 -2
  542. package/dist/docs/reference/model/categories/sections.md +10 -8
  543. package/dist/docs/reference/model/categories/threads.md +5 -5
  544. package/dist/docs/reference/model/categories/transforms-placement.md +27 -13
  545. package/dist/docs/reference/model/circle.md +1 -1
  546. package/dist/docs/reference/model/components.md +10 -7
  547. package/dist/docs/reference/model/compose.md +1 -1
  548. package/dist/docs/reference/model/cylinder.md +1 -1
  549. package/dist/docs/reference/model/distance.md +2 -2
  550. package/dist/docs/reference/model/ellipse.md +1 -1
  551. package/dist/docs/reference/model/extrude.md +3 -3
  552. package/dist/docs/reference/model/generate.md +1 -1
  553. package/dist/docs/reference/model/gridPattern.md +4 -4
  554. package/dist/docs/reference/model/heightfield.md +2 -2
  555. package/dist/docs/reference/model/hull.md +2 -2
  556. package/dist/docs/reference/model/immutableBuffer.md +1 -1
  557. package/dist/docs/reference/model/immutableMesh.md +1 -1
  558. package/dist/docs/reference/model/implicit.md +3 -3
  559. package/dist/docs/reference/model/inspectSection.md +1 -1
  560. package/dist/docs/reference/model/inspectSolid.md +1 -1
  561. package/dist/docs/reference/model/internalThreadCutter.md +4 -4
  562. package/dist/docs/reference/model/intersect.md +1 -1
  563. package/dist/docs/reference/model/isEmpty.md +2 -2
  564. package/dist/docs/reference/model/linearPattern.md +4 -4
  565. package/dist/docs/reference/model/loft.md +1 -1
  566. package/dist/docs/reference/model/matchProfiles.md +2 -2
  567. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  568. package/dist/docs/reference/model/path2.md +42 -0
  569. package/dist/docs/reference/model/path3.md +42 -0
  570. package/dist/docs/reference/model/pathPattern.md +13 -12
  571. package/dist/docs/reference/model/polygon.md +4 -4
  572. package/dist/docs/reference/model/preflightInternalThreadCutter.md +3 -3
  573. package/dist/docs/reference/model/preflightThreadedNut.md +3 -3
  574. package/dist/docs/reference/model/preflightThreadedRod.md +3 -3
  575. package/dist/docs/reference/model/radialPattern.md +5 -37
  576. package/dist/docs/reference/model/rectangle.md +4 -4
  577. package/dist/docs/reference/model/regularPolygon.md +1 -1
  578. package/dist/docs/reference/model/revolve.md +5 -4
  579. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  580. package/dist/docs/reference/model/sphere.md +1 -1
  581. package/dist/docs/reference/model/split.md +1 -1
  582. package/dist/docs/reference/model/splitByPlane.md +1 -1
  583. package/dist/docs/reference/model/star.md +4 -4
  584. package/dist/docs/reference/model/stroke.md +74 -0
  585. package/dist/docs/reference/model/svgPathSection.md +1 -1
  586. package/dist/docs/reference/model/svgSection.md +1 -1
  587. package/dist/docs/reference/model/sweep.md +7 -7
  588. package/dist/docs/reference/model/textSection.md +1 -1
  589. package/dist/docs/reference/model/threadRidge.md +2 -2
  590. package/dist/docs/reference/model/threadedNut.md +4 -4
  591. package/dist/docs/reference/model/threadedRod.md +4 -4
  592. package/dist/docs/reference/model/torus.md +3 -3
  593. package/dist/docs/reference/model/transform2.md +39 -0
  594. package/dist/docs/reference/model/transform3.md +39 -0
  595. package/dist/docs/reference/model/tube.md +3 -3
  596. package/dist/docs/reference/model/union.md +1 -1
  597. package/dist/docs/reference/model/vector2.md +32 -0
  598. package/dist/docs/reference/model/vector3.md +39 -0
  599. package/dist/docs/reference/model.md +9 -8
  600. package/dist/docs/reference/text/Bounds2.md +4 -4
  601. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  602. package/dist/docs/reference/text/Vector2Tuple.md +7 -0
  603. package/dist/docs/reference/text/VectorFont.md +2 -2
  604. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  605. package/dist/docs/reference/text/VectorTextArcBaseline.md +3 -3
  606. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  607. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  608. package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
  609. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  610. package/dist/docs/reference/text/categories/font-preparation.md +4 -4
  611. package/dist/docs/reference/text/prepareVectorFont.md +2 -2
  612. package/dist/docs/reference/text.md +1 -1
  613. package/dist/engine/construction-operations.js +31 -14
  614. package/dist/engine/deferred-context.js +11 -181
  615. package/dist/engine/execution.js +39 -8
  616. package/dist/engine/extrusion-finishing.js +1 -1
  617. package/dist/engine/index.js +6 -1
  618. package/dist/engine/inspection-operations.js +13 -11
  619. package/dist/engine/loft-operations.js +35 -14
  620. package/dist/engine/model-summary.js +8 -5
  621. package/dist/engine/native/material-components.js +305 -0
  622. package/dist/engine/native/regions.js +2 -1
  623. package/dist/engine/native/threads.js +3 -3
  624. package/dist/engine/native/transforms.js +11 -8
  625. package/dist/engine/operation-environment.js +2 -2
  626. package/dist/engine/pattern-operations.js +3 -3
  627. package/dist/engine/placement.js +2 -2
  628. package/dist/engine/primitive-anchors.js +17 -17
  629. package/dist/engine/primitive-operations.js +1 -1
  630. package/dist/engine/primitive-profiles.js +8 -7
  631. package/dist/engine/profile-mesh.js +7 -7
  632. package/dist/engine/recipe-realization.js +35 -21
  633. package/dist/engine/section-operations.js +52 -11
  634. package/dist/engine/session-graph.js +1 -1
  635. package/dist/engine/session-native.js +1 -1
  636. package/dist/engine/session-snapshot.js +17 -6
  637. package/dist/engine/session.js +13 -8
  638. package/dist/engine/shape-anchors.js +5 -11
  639. package/dist/engine/transform-operations.js +66 -49
  640. package/dist/geometry/anchors.js +40 -33
  641. package/dist/geometry/curves/sampling.js +14 -14
  642. package/dist/geometry/edge-finishing.js +1 -1
  643. package/dist/geometry/extrusion.js +13 -16
  644. package/dist/geometry/index.js +13 -10
  645. package/dist/geometry/loft/loft-simple-mesh.js +6 -6
  646. package/dist/geometry/loft/loft.js +22 -13
  647. package/dist/geometry/math/immutable-value.js +20 -0
  648. package/dist/geometry/math/vector-value.js +168 -0
  649. package/dist/geometry/math/vector2.js +80 -0
  650. package/dist/geometry/math/vector3.js +37 -7
  651. package/dist/geometry/mechanical/gear-motion.js +8 -5
  652. package/dist/geometry/mechanical/gears.js +38 -38
  653. package/dist/geometry/mechanical/index.js +3 -3
  654. package/dist/geometry/mechanical/standards.js +1 -1
  655. package/dist/geometry/mechanical/thread-helices.js +2 -3
  656. package/dist/geometry/mechanical/thread-mesh-plan.js +4 -5
  657. package/dist/geometry/mechanical/thread-mesh.js +7 -7
  658. package/dist/geometry/mechanical/thread-profiles.js +5 -5
  659. package/dist/geometry/mechanical/thread-solids.js +2 -2
  660. package/dist/geometry/mechanical/thread-surface.js +1 -1
  661. package/dist/geometry/mechanical/threads.js +8 -8
  662. package/dist/geometry/mesh/mesh-planar.js +25 -27
  663. package/dist/geometry/mesh/mesh-quality.js +5 -5
  664. package/dist/geometry/mesh/mesh-signature.js +13 -13
  665. package/dist/geometry/mesh/mesh-solid-intersections.js +5 -1
  666. package/dist/geometry/mesh/mesh-solid.js +7 -7
  667. package/dist/geometry/mesh/mesh.js +4 -15
  668. package/dist/geometry/paths/closest-point.js +63 -0
  669. package/dist/geometry/paths/frames.js +44 -14
  670. package/dist/geometry/paths/helix.js +16 -6
  671. package/dist/geometry/paths/path-value.js +252 -0
  672. package/dist/geometry/paths/planar.js +36 -23
  673. package/dist/geometry/paths/resampling.js +27 -5
  674. package/dist/geometry/patterns/placements.js +100 -27
  675. package/dist/geometry/patterns.js +2 -2
  676. package/dist/geometry/polygon-clipping.js +17 -0
  677. package/dist/geometry/primitive-resolution.js +4 -1
  678. package/dist/geometry/profiles/contour.js +6 -6
  679. package/dist/geometry/profiles/matched.js +4 -4
  680. package/dist/geometry/profiles/profiles.js +4 -4
  681. package/dist/geometry/profiles/rectangle.js +4 -4
  682. package/dist/geometry/profiles/side-profile.js +7 -7
  683. package/dist/geometry/profiles/span-sampling.js +1 -1
  684. package/dist/geometry/resolution.js +51 -39
  685. package/dist/geometry/revolve/revolve-mesh.js +12 -7
  686. package/dist/geometry/stroke-path.js +57 -68
  687. package/dist/geometry/svg/fill.js +7 -21
  688. package/dist/geometry/svg-import.js +23 -23
  689. package/dist/geometry/sweeps/options.js +5 -4
  690. package/dist/geometry/sweeps/orientation.js +5 -5
  691. package/dist/geometry/sweeps/stations.js +14 -14
  692. package/dist/geometry/sweeps/sweep-closed.js +5 -5
  693. package/dist/geometry/sweeps/sweep-mesh.js +9 -3
  694. package/dist/geometry/sweeps/sweep-open.js +4 -4
  695. package/dist/geometry/sweeps/validation.js +4 -7
  696. package/dist/geometry/transform-chain.js +172 -0
  697. package/dist/geometry/transform-geometry.js +27 -30
  698. package/dist/geometry/transform-matrix.js +14 -0
  699. package/dist/geometry/transform2.js +60 -0
  700. package/dist/geometry/transform3.js +70 -26
  701. package/dist/index.js +4 -0
  702. package/dist/model/execution-binding.js +10 -5
  703. package/dist/model/geometry-recipes.js +15 -0
  704. package/dist/{engine → model}/immutable-generation-data.js +88 -6
  705. package/dist/model/operation-dispatch.js +10 -3
  706. package/dist/model/operations.js +45 -35
  707. package/dist/model/recipe-declaration.js +199 -0
  708. package/dist/model/shape-handles.js +17 -5
  709. package/dist/text/index.js +15 -9
  710. package/dist/text/vector-text-layout.js +31 -26
  711. package/package.json +1 -1
  712. package/dist/docs/reference/geometry/Path2.md +0 -14
  713. package/dist/docs/reference/geometry/Path3.md +0 -14
  714. package/dist/docs/reference/geometry/PrimitivePlacement.md +0 -31
  715. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +0 -83
  716. package/dist/docs/reference/geometry/Region.md +0 -14
  717. package/dist/docs/reference/geometry/StrokePathCap.md +0 -7
  718. package/dist/docs/reference/geometry/StrokePathJoin.md +0 -7
  719. package/dist/docs/reference/geometry/Transform3.md +0 -12
  720. package/dist/docs/reference/geometry/Vector2.md +0 -7
  721. package/dist/docs/reference/geometry/Vector3.md +0 -7
  722. package/dist/docs/reference/geometry/attachTransform.md +0 -73
  723. package/dist/docs/reference/geometry/cumulativePathLengths.md +0 -33
  724. package/dist/docs/reference/geometry/measureTriangleMesh.md +0 -55
  725. package/dist/docs/reference/geometry/pathLength.md +0 -33
  726. package/dist/docs/reference/geometry/rotateAroundAxis3.md +0 -38
  727. package/dist/docs/reference/geometry/strokePathRegion.md +0 -63
  728. package/dist/docs/reference/geometry/transformContour.md +0 -42
  729. package/dist/docs/reference/geometry/transformPath2.md +0 -40
  730. package/dist/docs/reference/geometry/transformPath3.md +0 -33
  731. package/dist/docs/reference/geometry/transformRegion.md +0 -40
  732. package/dist/docs/reference/model/Transform2.md +0 -15
  733. package/dist/docs/reference/model/fromRegion.md +0 -33
  734. package/dist/docs/reference/model/rayCast.md +0 -40
  735. package/dist/docs/reference/model/toRegion.md +0 -33
  736. package/dist/docs/reference/model/toTriangleMesh.md +0 -27
  737. package/dist/docs/reference/text/Vector2.md +0 -7
  738. package/dist/engine/geometry-recipes.js +0 -12
  739. package/dist/engine/pattern-transform.js +0 -9
  740. package/dist/geometry/paths/path.js +0 -32
@@ -2,7 +2,7 @@
2
2
 
3
3
  Sample reusable lines, arcs, cubic curves, and path frames with explicit physical policies.
4
4
 
5
- sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are uniform in the curve parameter; resamplePolyline2/3 use equal arc length. Both resampling dimensions accept the same closed option and return points plus tangents; closed outputs include the closing edge without repeating the first point. Adaptive policies use millimetre deviation and edge length, with checked vertex ceilings. Sweep frames require explicit seam and orientation choices.
5
+ Use immutable `path2(points, { closed })` and `path3(points, { closed })` values for sampled trajectories. Closure belongs to the value; closed paths omit the duplicated endpoint. Chain transform, reverse and resample without mutating reusable paths. length includes the closing edge, bounds returns undefined for empty paths, and closestPoint returns a fluent point, distance, edge index and fraction within that edge. Reflections preserve traversal; polygon construction handles filled-shape winding. Geometry accepts matching path values directly. Path2Data and Path3Data are tuple collections for interchange; toArray omits closure metadata. Analytic Curve definitions remain distinct: sampleCurve2/3 retain directed endpoints and tangents; exact curve intervals are uniform in the curve parameter. Low-level resamplePolyline2/3 return tuple points plus tangents at equal arc length. Sampling uses physical policies and checked vertex ceilings. Sweep frames require explicit seam and orientation choices.
6
6
 
7
7
  ## Functions
8
8
 
@@ -11,11 +11,11 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
11
11
  | [anchorFrame3](../anchorFrame3.md) | Converts an anchor into a right-handed frame with direction as local +Z. |
12
12
  | [sampleCurve2](../sampleCurve2.md) | Samples a planar curve with the same guarantees and policy as spatial sampling. |
13
13
  | [sampleCurve3](../sampleCurve3.md) | Samples a spatial curve, preserving endpoints and directed unit tangents. |
14
- | [transformPath2](../transformPath2.md) | Applies an XY-plane-preserving affine transform to a 2D path. |
15
- | [transformPath3](../transformPath3.md) | Applies an affine transform to a 3D path without mutating its points. |
16
14
  | [resolveGeometrySamplingLimits](../resolveGeometrySamplingLimits.md) | Resolves finite positive safe-integer allocation ceilings without ambient state. |
17
15
  | [resamplePolyline2](../resamplePolyline2.md) | Resamples a planar polyline with the same point, tangent, seam and budget guarantees as 3D. |
18
16
  | [resamplePolyline3](../resamplePolyline3.md) | Resamples a spatial polyline at equal arc lengths with directed outgoing tangents. |
17
+ | [path2](../path2.md) | Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization. Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed. Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError. A path input retains its closure. Limits bound construction only; resampling takes its own limits. |
18
+ | [path3](../path3.md) | Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam, allocation and error rules as path2. Analytic curves must be sampled explicitly first. |
19
19
 
20
20
  ## Interfaces
21
21
 
@@ -30,12 +30,17 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
30
30
  | [GeometrySamplingLimits](../GeometrySamplingLimits.md) | Explicit allocation ceilings for pure sampling and host-owned modeling operations. |
31
31
  | [LineCurve2](../LineCurve2.md) | Straight planar curve in millimetres. |
32
32
  | [LineCurve3](../LineCurve3.md) | Straight spatial curve in millimetres. |
33
+ | [Path2](../Path2-type.md) | Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. |
34
+ | [Path3](../Path3-type.md) | Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. |
33
35
  | [PathFrame](../PathFrame.md) | Orthonormal right-handed frame sampled along a path. |
34
36
  | [PathPlacement](../PathPlacement.md) | Position and unit tangent for one path-distributed item. |
35
37
  | [SampledCurve2](../SampledCurve2.md) | Immutable planar points and corresponding directed unit tangents. |
36
38
  | [SampledCurve3](../SampledCurve3.md) | Immutable spatial points and corresponding directed unit tangents. |
37
39
  | [SampleHelixOptions](../SampleHelixOptions.md) | Options for a sampled +Z helix with millimetre dimensions. |
38
40
  | [PolylineResamplingOptions](../PolylineResamplingOptions.md) | Equal arc-length sampling of an open path or an implicitly closed loop. |
41
+ | [PathOptions](../PathOptions.md) | Topology and allocation ceiling for an immutable sampled path. |
42
+ | [PathLocation](../PathLocation.md) | Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. |
43
+ | [PathResamplingOptions](../PathResamplingOptions.md) | Equal arc-length sampling; the path itself owns whether its closing edge is included. |
39
44
 
40
45
  ## Type aliases
41
46
 
@@ -43,21 +48,21 @@ sampleCurve2/3 retain directed endpoints and tangents. Exact curve intervals are
43
48
  | --- | --- |
44
49
  | [Curve2](../Curve2.md) | Reusable planar curve definition. |
45
50
  | [Curve3](../Curve3.md) | Reusable spatial curve definition. |
46
- | [Path2](../Path2.md) | An ordered, open sequence of two-dimensional points. |
47
- | [Path3](../Path3.md) | An ordered, open sequence of three-dimensional points. |
48
51
  | [PathNormalGuide](../PathNormalGuide.md) | Supplies a profile-X orientation guide for each original normalized sweep station. |
52
+ | [Path2Input](../Path2Input.md) | An immutable XY sampled path or a collection of XY tuples and fluent vectors. |
53
+ | [Path3Input](../Path3Input.md) | An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. |
54
+ | [Path2Data](../Path2Data.md) | XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. |
55
+ | [Path3Data](../Path3Data.md) | XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value. |
49
56
 
50
57
  ## Values
51
58
 
52
59
  | API | Summary |
53
60
  | --- | --- |
54
61
  | [computeClosedParallelTransportFrames](../computeClosedParallelTransportFrames.md) | Builds rotation-minimizing frames for a non-duplicated closed path. |
55
- | [computeParallelTransportFrames](../computeParallelTransportFrames.md) | Builds rotation-minimizing frames by parallel-transporting the previous normal. This avoids the sudden profile flips produced by picking a fresh up-vector per ring. Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation. |
56
- | [cumulativePathLengths](../cumulativePathLengths.md) | Returns cumulative arc length for finite points under maxPathPoints (default 100000); rejects overflowing length. |
62
+ | [computeParallelTransportFrames](../computeParallelTransportFrames.md) | Builds rotation-minimizing frames by parallel-transporting the previous normal. This avoids the sudden profile flips produced by picking a fresh up-vector per ring. Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation. Requires open path values; raw tuples are interpreted as an open path. Invalid paths throw GeometryError. Nonfinite normals and guide results reject. A finite initial guide parallel to the tangent selects a canonical fallback. |
57
63
  | [defaultGeometrySamplingLimits](../defaultGeometrySamplingLimits.md) | Conservative defaults; trusted callers can supply larger explicit ceilings. |
58
64
  | [distributeAlongPath](../distributeAlongPath.md) | Places an exact item count at equal arc-length intervals along a sampled path. |
59
- | [pathLength](../pathLength.md) | Returns total sampled 3D path length, or zero for an empty path. |
60
65
  | [roundClosedPolylinePath](../roundClosedPolylinePath.md) | Replaces each vertex of a non-duplicated closed polyline with a sampled quadratic corner in the same coordinate system as the input. |
61
- | [sampleHelix](../sampleHelix.md) | Creates `segments + 1` points including exact helix endpoints from finite positive dimensions. Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive exact counts reject before evaluating axial weights or allocating sample arrays. |
66
+ | [sampleHelix](../sampleHelix.md) | Creates `segments + 1` points including exact helix endpoints from finite positive dimensions. Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive exact counts reject before evaluating axial weights or allocating sample arrays. Invalid inputs use GeometryError; exceptions thrown by axialWeight propagate unchanged. |
62
67
 
63
- Package: `@metamesh/modeling@0.13.0`.
68
+ Package: `@metamesh/modeling@0.15.0`.
@@ -8,13 +8,13 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
- | [buildHelicalThreadRidgeMesh](../buildHelicalThreadRidgeMesh.md) | Builds closed thread-ridge components with every profile locked to the shaft's radial/axial frame. The mesh is intended for union with its minor-envelope cylinder and never owns WASM objects. |
12
- | [buildHelicalThreadSolidMesh](../buildHelicalThreadSolidMesh.md) | Builds one closed threaded cylinder without a ridge/core Boolean seam. |
11
+ | [helicalThreadRidgeMesh](../helicalThreadRidgeMesh.md) | Builds closed thread-ridge components with every profile locked to the shaft's radial/axial frame. The mesh is intended for union with its minor-envelope cylinder and never owns WASM objects. |
12
+ | [helicalThreadSolidMesh](../helicalThreadSolidMesh.md) | Builds one closed threaded cylinder without a ridge/core Boolean seam. |
13
13
  | [compensateThreadDiameters](../compensateThreadDiameters.md) | Applies role-specific radial compensation while preserving thread depth. |
14
14
  | [compensateThreadProfileAxially](../compensateThreadProfileAxially.md) | Applies axial fit allowance to a validated periodic profile. |
15
15
  | [compensateThreadProfileForFaceting](../compensateThreadProfileForFaceting.md) | Applies printable axial fit plus the conservative phase allowance required by circular facets. |
16
- | [createThreadProfile](../createThreadProfile.md) | Creates a periodic thread profile for the shaft-locked helical mesher. |
17
- | [getMetricClearanceHole](../getMetricClearanceHole.md) | Returns one recommended metric clearance-hole diameter in millimetres. |
16
+ | [threadProfile](../threadProfile.md) | Creates a periodic thread profile for the shaft-locked helical mesher. |
17
+ | [getMetricClearanceHoleDiameter](../getMetricClearanceHoleDiameter.md) | Returns one recommended metric clearance-hole diameter in millimetres. |
18
18
  | [getMetricFastenerStandard](../getMetricFastenerStandard.md) | Returns the immutable standards record for one supported metric size. |
19
19
  | [measureInternalCylindricalGearPairMotion](../measureInternalCylindricalGearPairMotion.md) | Measures sampled kinematic interference over one tooth cycle of an internal gear pair. |
20
20
  | [minimumCylindricalGearToothCountWithoutUndercut](../minimumCylindricalGearToothCountWithoutUndercut.md) | Returns the smallest unshifted full-depth external tooth count that avoids rack-cutter undercut. |
@@ -68,7 +68,7 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
68
68
  | [ThreadedRodOptions](../ThreadedRodOptions.md) | Options for a compensated external threaded rod along +Z. |
69
69
  | [ThreadEndTreatmentOptions](../ThreadEndTreatmentOptions.md) | Axial end controls for a generated ridge. |
70
70
  | [ThreadHelixOptions](../ThreadHelixOptions.md) | Conventional helix options: `pitch` is adjacent spacing and lead is `pitch * starts`. |
71
- | [ThreadProfile](../ThreadProfile.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
71
+ | [ThreadProfile](../ThreadProfile-type.md) | A validated immutable periodic thread profile in `[axial, radial]` millimetres. |
72
72
  | [ThreadProfileBaseSpec](../ThreadProfileBaseSpec.md) | Fields shared by all thread profile specifications. |
73
73
  | [TrapezoidalThreadProfileSpec](../TrapezoidalThreadProfileSpec.md) | Trapezoidal thread profile with a configurable included angle. |
74
74
  | [TriangularThreadProfileSpec](../TriangularThreadProfileSpec.md) | ISO/UTS-like 60-degree truncated triangular profile. |
@@ -98,4 +98,4 @@ Pure kernels resolve dimensions and emit outlines or meshes without native state
98
98
  | [METRIC_FASTENER_STANDARDS](../METRIC_FASTENER_STANDARDS.md) | Curated metric modeling dimensions for clearance holes, regular hex nuts, and socket-head cap screws. |
99
99
  | [PRINTABLE_THREAD_FIT_POLICIES](../PRINTABLE_THREAD_FIT_POLICIES.md) | Conservative baseline print-fit policies in millimetres. |
100
100
 
101
- Package: `@metamesh/modeling@0.13.0`.
101
+ Package: `@metamesh/modeling@0.15.0`.
@@ -11,11 +11,10 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
11
11
  | [analyzeTriangleMesh](../analyzeTriangleMesh.md) | Validates and measures a mesh in one position and one triangle traversal. |
12
12
  | [analyzeTriangleMeshQuality](../analyzeTriangleMeshQuality.md) | Measures triangle shape, edge topology, vertex concentration, and connected planar patches. |
13
13
  | [heightfieldMesh](../heightfieldMesh.md) | Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base. Heights run once per grid point after preflight; center-error adds one evaluation per cell. Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks. |
14
- | [createTriangleMeshSignature](../createTriangleMeshSignature.md) | Creates an order-independent regression signature for a manufacturing mesh. |
14
+ | [computeTriangleMeshSignature](../computeTriangleMeshSignature.md) | Creates an order-independent regression signature for a manufacturing mesh. |
15
15
  | [joinTriangleMeshes](../joinTriangleMeshes.md) | Concatenates meshes into one indexed mesh without welding coincident vertices. |
16
- | [extrudeMesh](../extrudeMesh.md) | Linearly extrudes one simple profile along +Z with robust ear-clipped caps. |
16
+ | [extrudeMesh](../extrudeMesh.md) | Linearly extrudes one simple profile along +Z with robust ear-clipped caps. Path2 profiles must be closed; raw point collections have an implicit closing edge. |
17
17
  | [loftMesh](../loftMesh.md) | Lofts simple point loops at z heights or explicit right-handed frames, in input order. |
18
- | [measureTriangleMesh](../measureTriangleMesh.md) | Measures bounds, surface area, and signed volume without changing the mesh. |
19
18
  | [preflightHeightfield](../preflightHeightfield.md) | Checks grid dimensions, coordinate precision, and allocation bounds before evaluating heights. |
20
19
  | [reverseTriangleMesh](../reverseTriangleMesh.md) | Returns a copy of a mesh with every triangle winding reversed. |
21
20
  | [sweepMesh](../sweepMesh.md) | Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam. |
@@ -70,4 +69,4 @@ Manufacturing meshes use Float32 XYZ positions and Uint32 triangle indices. Clos
70
69
  | [meshBounds](../meshBounds.md) | Computes axis-aligned bounds for a non-empty mesh. |
71
70
  | [revolveMesh](../revolveMesh.md) | Revolves a non-duplicated closed `[radius, z]` profile around +Z. |
72
71
 
73
- Package: `@metamesh/modeling@0.13.0`.
72
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,33 +2,33 @@
2
2
 
3
3
  Calculate pure linear, radial, grid, and path transforms.
4
4
 
5
- Pure pattern transforms use the same counts, spacing, centering and frames as root pattern operations. Transform3 values can place points, meshes or explicit geometry without a native engine. Linear and grid spacing use millimetres; radial angles use degrees. Paths use physical arc-length intervals and omit the seam when closed.
5
+ Pure pattern transforms use the same counts, spacing, centering and frames as root pattern operations. Transform3Matrix values can place points, meshes or explicit geometry without a native engine. Linear and grid spacing use millimetres; radial angles use degrees. Paths use physical arc-length intervals and omit the seam when closed.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
- | [linearPatternTransforms](../linearPatternTransforms.md) | Equal linear placements in millimetres, including the original at the origin. |
11
+ | [linearPatternTransforms](../linearPatternTransforms.md) | Spatial XYZ matrix placements in millimetres, including the original at the origin. |
12
12
  | [radialPatternTransforms](../radialPatternTransforms.md) | Rotations about an explicit axis; angles use degrees and the first placement is identity. |
13
- | [gridPatternTransforms](../gridPatternTransforms.md) | XY or XYZ grid placements in millimetres, in X-fastest order. |
13
+ | [gridPatternTransforms](../gridPatternTransforms.md) | Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. |
14
14
  | [pathPatternTransforms](../pathPatternTransforms.md) | Equal physical arc-length placements along a sampled XYZ path. Tangent orientation maps +Z onto the local path tangent; fixed orientation only translates. Closed paths omit a repeated seam. Explicit sampling ceilings bound both input points and output placements. |
15
15
 
16
16
  ## Interfaces
17
17
 
18
18
  | API | Summary |
19
19
  | --- | --- |
20
- | [RadialPatternOptions](../RadialPatternOptions.md) | Options for repeating one solid around an axis through a center point. |
21
20
  | [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
22
21
 
23
22
  ## Type aliases
24
23
 
25
24
  | API | Summary |
26
25
  | --- | --- |
27
- | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. |
28
- | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. |
26
+ | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. Dimension defaults to 3; Section patterns use 2 and accept XY vector directions. |
27
+ | [RadialPatternOptions](../RadialPatternOptions.md) | Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis. |
28
+ | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane. |
29
29
 
30
30
  ## Guides
31
31
 
32
32
  - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
33
33
 
34
- Package: `@metamesh/modeling@0.13.0`.
34
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Share one option contract for dimensional primitives and edge treatments.
4
4
 
5
- Dimensional shapes share object options, millimetre units and explicit placement. Boxes use scalar or XYZ size; cylinders use scalar or bottom/top radii and independent end treatments. Circular shapes share exact segments, physical resolution and vertex/face radial sizing where applicable. EdgeTreatment distinguishes circular radius from equal or unequal setbacks, smooth cubic transitions and exact custom setback profiles. PrimitivePlacementOptions maps a local anchor to a target with alignment, gap and degree spin.
5
+ Dimensional shapes share object options, millimetre units and explicit placement. Boxes use scalar or XYZ size; cylinders use scalar or bottom/top radii and independent end treatments. Circular shapes share exact segments, physical resolution and vertex/face radial sizing where applicable. EdgeTreatment distinguishes circular radius from equal or unequal setbacks, smooth cubic transitions and exact custom setback profiles. PrimitiveAttachmentOptions maps a local anchor to a target with alignment, gap and degree spin.
6
6
 
7
7
  ## Interfaces
8
8
 
@@ -15,8 +15,8 @@ Dimensional shapes share object options, millimetre units and explicit placement
15
15
  | [TorusOptions](../TorusOptions.md) | Dimensions and independent ring/profile tessellation for a torus around the Z axis. |
16
16
  | [TubeOptions](../TubeOptions.md) | Dimensions, placement, and tessellation for a hollow Z-axis tube. |
17
17
  | [EndTreatments](../EndTreatments.md) | Independent inward finishing on primitive or straight convex extrusion ends. Zero amounts leave the end untreated, including when all ends are disabled. |
18
- | [PrimitivePlacement](../PrimitivePlacement.md) | Placement shared by solid and filled-section factories. |
19
- | [PrimitivePlacementOptions](../PrimitivePlacementOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
18
+ | [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
19
+ | [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
20
20
  | [RadialSizingOptions](../RadialSizingOptions.md) | Nominal radial sizing shared by circular and regular polygon construction. |
21
21
  | [SmoothEdgeTreatment](../SmoothEdgeTreatment.md) | A cubic corner transition with zero curvature at its straight tangent joins. |
22
22
  | [ProfiledEdgeTreatment](../ProfiledEdgeTreatment.md) | A deliberately sampled, inward-only corner profile with exact polyline geometry. |
@@ -33,4 +33,4 @@ Dimensional shapes share object options, millimetre units and explicit placement
33
33
  | [BoxEdgeSelection](../BoxEdgeSelection.md) | Named individual edges or top/bottom rims and all four vertical edges. |
34
34
  | [BoxEdgeTreatments](../BoxEdgeTreatments.md) | Independent treatments for disjoint named edge selections; overlapping selections fail. |
35
35
 
36
- Package: `@metamesh/modeling@0.13.0`.
36
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Define winding, holes, stable profile landmarks, and reusable planar boundaries.
4
4
 
5
- Outer contours are counterclockwise and holes clockwise in Y-up coordinates, with implicit closing edges. The Loop factories return point data; regularPolygonContour uses degree rotation and explicit vertex/face sizing. `rectangleProfile({ size, treatment, id })` returns identified spans for family matching, not sampled points. Profile families preserve component, contour and span identities; matchProfiles returns CorrespondingProfile values with stable shared landmarks. No automatic topology guessing or reordering occurs. closeToAxis closes an open upward radius/height outline into a solid-body contour; hollow walls and bores require explicit material contours.
5
+ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, with implicit closing edges. Contour factories return point data; regularPolygonContour uses degree rotation and explicit vertex/face sizing. Path2.transform preserves traversal, while transformRegionData accepts a Transform2 placement or canonical Transform2Matrix data and retains reflection-safe filled winding. Use Section.transform for ordinary filled-shape authoring; transformRegionData serves serialized data preparation. `rectangleProfile({ size, treatment, id })` returns identified spans for family matching, not sampled points. Profile families preserve component, contour and span identities; matchProfiles returns CorrespondingProfile values with stable shared landmarks. No automatic topology guessing or reordering occurs. closeToAxis closes an open upward radius/height outline into a solid-body contour; hollow walls and bores require explicit material contours.
6
6
 
7
7
  ## Functions
8
8
 
@@ -21,8 +21,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
21
21
  | [sampleSideProfile](../sampleSideProfile.md) | Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline. Anchors must progress strictly upward; nonnegative-radius cubic controls must have ordered heights between their endpoints. Cubics use de Casteljau subdivision with a conservative control-hull chord-error bound. Lines also obey the optional physical edge-length ceiling. Neither normalized coordinates nor editor metadata are required. Endpoints are retained once; no axis closure, winding normalization, or manufacturing repair is performed. |
22
22
  | [sampleContour](../sampleContour.md) | Samples 2–32 connected line/cubic segments into a simple, nonzero-area, immutable CCW XY loop. Physical scaling precedes adaptive curve sampling; the final end must repeat start exactly. Shared anchors and the closing seam are emitted once. Winding normalization may change the starting vertex. The sampled loop is checked for self-intersection and degeneracy by `normalizeContour`; this is a single contour without holes. No editor modes or normalized coordinate range are required. No native engine, SDK, or ambient resolution is used. |
23
23
  | [signedContourArea](../signedContourArea.md) | Returns the signed area of a non-duplicated loop; positive means CCW. |
24
- | [transformContour](../transformContour.md) | Transforms a closed loop and preserves its original winding convention. |
25
- | [transformRegion](../transformRegion.md) | Transforms an explicit outer/hole region with reflection-safe winding correction. |
24
+ | [transformRegionData](../transformRegionData.md) | Transforms serialized polygon data with reflection-safe winding, without an engine. Use Section.transform(placement) when authoring filled geometry; this utility serves pure data preparation. |
26
25
  | [triangulateContour](../triangulateContour.md) | Ear-clips one normalized simple CCW loop into stable local vertex indices. |
27
26
  | [closeToAxis](../closeToAxis.md) | Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once. Returns a counterclockwise filled-boundary contour without a repeated seam vertex. Radii must be nonnegative; the result must enclose nonzero area without touching itself. This is a solid-body closure, not a hollow-wall or mounting-bore construction. |
28
27
 
@@ -36,7 +35,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
36
35
  | [ContourCurve](../ContourCurve.md) | One explicitly closed planar contour, independent of editor metadata and parameter contracts. |
37
36
  | [ContourPoint](../ContourPoint.md) | Planar X and upward Y in millimetres, or in units converted by sampling scales. |
38
37
  | [SideProfilePoint](../SideProfilePoint.md) | Radius and upward height in millimetres, or in units converted by sampling scales. |
39
- | [Polygon](../Polygon.md) | One bounded two-dimensional polygon. |
38
+ | [PolygonData](../PolygonData.md) | One bounded two-dimensional polygon. |
40
39
  | [Profile](../Profile.md) | An explicit component/contour/span topology, before shared family sampling. |
41
40
  | [ProfileComponent2](../ProfileComponent2.md) | One component and its explicitly identified holes. |
42
41
  | [ProfileContour2](../ProfileContour2.md) | Ordered, closed spans. Outer winding is CCW and hole winding is CW. |
@@ -59,7 +58,7 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
59
58
  | [ContourSegment](../ContourSegment.md) | Straight or cubic Bézier segment in one closed planar contour. |
60
59
  | [SideProfileSegment](../SideProfileSegment.md) | One straight or cubic segment of an open, upward-progressing radius/height outline. |
61
60
  | [ProfileSpan2](../ProfileSpan2.md) | An identified line, circular arc, or cubic Bézier between corresponding landmarks. |
62
- | [Region](../Region.md) | A two-dimensional region represented by disjoint filled polygons. |
61
+ | [RegionData](../RegionData.md) | A two-dimensional region represented by disjoint filled polygons. |
63
62
  | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
64
63
  | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
65
64
 
@@ -71,4 +70,4 @@ Outer contours are counterclockwise and holes clockwise in Y-up coordinates, wit
71
70
  | [regularPolygonContour](../regularPolygonContour.md) | Creates a centered CCW point loop with vertex or face radial sizing and an implicit seam. |
72
71
  | [starContour](../starContour.md) | Creates a centered CCW alternating-radius star within the selected profile sampling ceiling. |
73
72
 
74
- Package: `@metamesh/modeling@0.13.0`.
73
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Resolve physical sampling, numerical tolerances, and contextual failures.
4
4
 
5
- Defaults are 0.05 mm maximum circular chord error and 16–512 segments per complete circle. Exact local counts win. Algorithm limits fail explicitly. GeometryError supplies structured codes and operation context; no ambient resolution state exists.
5
+ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per complete circle. Face-sized circular sampling bounds outward radial excess and actual edge lengths. Exact local counts win. Algorithm limits fail explicitly. GeometryError supplies structured codes and operation context; no ambient resolution state exists.
6
6
 
7
7
  ## Functions
8
8
 
@@ -25,6 +25,7 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
25
25
  | API | Summary |
26
26
  | --- | --- |
27
27
  | [AlignedCircularSegmentsOptions](../AlignedCircularSegmentsOptions.md) | Controls full-circle sampling that must satisfy one or more topology alignments. |
28
+ | [CircularResolutionOptions](../CircularResolutionOptions.md) | Circular sampling measured from the nominal inscribed or circumscribed radius. |
28
29
  | [GeometryErrorContext](../GeometryErrorContext.md) | Serializable context attached to a geometry failure. |
29
30
  | [GeometryResolution](../GeometryResolution.md) | Tessellation policy for sampled geometry measured in millimetres. |
30
31
  | [GeometryToleranceOptions](../GeometryToleranceOptions.md) | Optional overrides for MetaMesh's geometry comparison policy. |
@@ -43,4 +44,4 @@ Defaults are 0.05 mm maximum circular chord error and 16–512 segments per comp
43
44
  | --- | --- |
44
45
  | [DEFAULT_GEOMETRY_TOLERANCE](../DEFAULT_GEOMETRY_TOLERANCE.md) | Default absolute, relative, and angular tolerances for millimetre-scale models. |
45
46
 
46
- Package: `@metamesh/modeling@0.13.0`.
47
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,19 +1,23 @@
1
1
  # Transforms and vector math
2
2
 
3
- Compose explicit coordinate transforms and reusable placement anchors.
3
+ Build immutable reusable placements and calculate with fluent vectors or tuple kernels.
4
4
 
5
- Lengths are millimetres. Pure rotation constructors require a degrees or radians object. Transform3 is row-major, and directions exclude translation. Attachment matches source and target frames with an explicit offset; physical clearance is an application decision.
5
+ Use immutable vector2/vector3 and transform2/transform3 values for ordinary authoring. Operations return new values; tuples remain convenient inputs. dot, length and distance return numbers; cross returns a signed scalar in 2D and a right-handed vector in 3D. Normalization rejects zero vectors; fluent values reject nonfinite inputs and results. Rotations use degrees and named optional `{ pivot }` points in world coordinates. Calls and andThen composition apply in execution order. Points include translation; directions exclude it and retain scale; normals use inverse-transpose normalization. Shape methods and path helpers accept matching transforms directly. toArray and toMatrix serve interchange using Vector2Tuple/Vector3Tuple and canonical Transform2Matrix/Transform3Matrix data. to3D/to2D convert dimensions explicitly; XY restriction requires a preserved plane. Raw tuple kernels avoid fluent object allocation in hot loops, and matrix constructors provide lower-level interoperability. rotationTransform3 requires an explicit degrees or radians object; composeTransform3(after, before) applies before first. Attachment matches source and target frames; physical clearance is an application decision.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
+ | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. Matrices are copied and validated. Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ. Zero scales and singular matrices throw GeometryError; negative scales reflect. |
12
+ | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. Matrices are copied and validated. Calls apply in written order; rotations use degrees and pivots use current world coordinates. Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError. Use frameTransform3(frame) as the input for existing orthonormal frame placement. |
13
+ | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform2().applyDirection(value) for rotations and nonuniform scaling. |
14
+ | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform3().applyDirection(value) for rotations and nonuniform scaling. |
11
15
  | [applyTransformDirection3](../applyTransformDirection3.md) | Applies only the linear component of an affine transform to a direction. |
12
16
  | [applyTransformPoint3](../applyTransformPoint3.md) | Applies an affine transform to a point, including translation. |
13
- | [attachTransform](../attachTransform.md) | Builds the transform that moves a source anchor onto a target anchor. |
17
+ | [attachmentTransform3](../attachmentTransform3.md) | Builds the transform that moves a source anchor onto a target anchor. |
14
18
  | [boxAnchor3](../boxAnchor3.md) | Creates an outward face-center anchor using the same local origin convention as box(). |
15
19
  | [composeTransform3](../composeTransform3.md) | Composes two affine transforms without mutating either matrix. |
16
- | [createAnchor3](../createAnchor3.md) | Constructs a normalized immutable attachment anchor. |
20
+ | [anchor3](../anchor3.md) | Constructs a normalized immutable attachment anchor. |
17
21
  | [cylinderAnchor3](../cylinderAnchor3.md) | Creates a cap-center or radial-side anchor using cylinder()'s construction origin. |
18
22
  | [eulerTransform3](../eulerTransform3.md) | Creates an immutable right-handed XYZ Euler rotation transform. |
19
23
  | [frameTransform3](../frameTransform3.md) | Converts a right-handed orthonormal frame into a local-to-world transform. |
@@ -28,8 +32,14 @@ Lengths are millimetres. Pure rotation constructors require a degrees or radians
28
32
 
29
33
  | API | Summary |
30
34
  | --- | --- |
31
- | [Anchor3](../Anchor3.md) | An attachment pose on a solid or assembly. |
32
- | [AttachTransformOptions](../AttachTransformOptions.md) | Options controlling how one anchor is attached to another. |
35
+ | [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
36
+ | [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
37
+ | [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
38
+ | [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
39
+ | [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
40
+ | [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
41
+ | [Anchor3](../Anchor3-type.md) | An attachment pose on a solid or assembly. |
42
+ | [AttachOptions](../AttachOptions.md) | Options controlling how one anchor is attached to another. |
33
43
  | [BoxAnchorOptions](../BoxAnchorOptions.md) | Box dimensions and construction origin for one named face anchor. |
34
44
  | [CylinderAnchorOptions](../CylinderAnchorOptions.md) | Cylinder dimensions and construction origin for one named face anchor. |
35
45
 
@@ -37,27 +47,46 @@ Lengths are millimetres. Pure rotation constructors require a degrees or radians
37
47
 
38
48
  | API | Summary |
39
49
  | --- | --- |
50
+ | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
51
+ | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
52
+ | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
53
+ | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
40
54
  | [AxisAngleRotation3](../AxisAngleRotation3.md) | One explicitly unit-labelled right-handed axis-angle rotation. |
41
55
  | [BoxAnchorFace](../BoxAnchorFace.md) | Named face on an axis-aligned box. |
42
56
  | [CylinderAnchorFace](../CylinderAnchorFace.md) | Named face on a cylinder parallel to +Z. |
43
- | [Transform3](../Transform3.md) | A row-major affine 4x4 matrix applied to column vectors. |
44
- | [Vector2](../Vector2.md) | A two-dimensional Cartesian vector or point. |
45
- | [Vector3](../Vector3.md) | A three-dimensional Cartesian vector or point. |
57
+ | [Transform2Matrix](../Transform2Matrix.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
58
+ | [Transform3Matrix](../Transform3Matrix.md) | A row-major affine 4x4 matrix applied to column vectors. |
59
+ | [Vector2Tuple](../Vector2Tuple.md) | A two-dimensional Cartesian vector or point. |
60
+ | [Vector3Tuple](../Vector3Tuple.md) | A three-dimensional Cartesian vector or point. |
46
61
 
47
62
  ## Values
48
63
 
49
64
  | API | Summary |
50
65
  | --- | --- |
66
+ | [add2](../add2.md) | Adds two finite XY vectors component-wise. |
51
67
  | [add3](../add3.md) | Adds two finite XYZ vectors component-wise. |
52
68
  | [cross3](../cross3.md) | Returns the right-handed cross product. |
69
+ | [cross2](../cross2.md) | Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. |
70
+ | [distance2](../distance2.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
71
+ | [distance3](../distance3.md) | Returns Euclidean point distance without allocating an intermediate difference vector. |
53
72
  | [dot3](../dot3.md) | Returns the scalar dot product. |
73
+ | [dot2](../dot2.md) | Returns the scalar dot product. |
54
74
  | [IDENTITY_TRANSFORM3](../IDENTITY_TRANSFORM3.md) | Identity transform, safe to share because it is frozen. |
55
75
  | [length3](../length3.md) | Returns Euclidean vector length in the vector's coordinate units. |
76
+ | [length2](../length2.md) | Returns Euclidean vector length in the vector's coordinate units. |
56
77
  | [lerp3](../lerp3.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
57
- | [normalize3](../normalize3.md) | Normalizes a finite vector and rejects nonfinite lengths or lengths at or below `epsilon`. |
78
+ | [lerp2](../lerp2.md) | Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. |
79
+ | [normalize3](../normalize3.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
80
+ | [normalize2](../normalize2.md) | Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`). Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively. |
58
81
  | [projectOntoPlane3](../projectOntoPlane3.md) | Removes the component parallel to a normalized plane normal. |
59
- | [rotateAroundAxis3](../rotateAroundAxis3.md) | Rotates a vector right-handed around an axis by `angle` radians. |
82
+ | [rotate2](../rotate2.md) | Rotates a finite vector counter-clockwise in XY by `degrees` about the origin. Throws `NON_FINITE_VALUE` for nonfinite coordinates, angles, or derived coordinates. |
60
83
  | [scale3](../scale3.md) | Multiplies a vector by a dimensionless scalar. |
84
+ | [scale2](../scale2.md) | Multiplies a vector by a dimensionless scalar. |
61
85
  | [subtract3](../subtract3.md) | Subtracts `b` from `a`. |
86
+ | [subtract2](../subtract2.md) | Subtracts `b` from `a` component-wise. |
62
87
 
63
- Package: `@metamesh/modeling@0.13.0`.
88
+ ## Guides
89
+
90
+ - [Reusable transforms and vector math](../../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
91
+
92
+ Package: `@metamesh/modeling@0.15.0`.
@@ -10,14 +10,14 @@ SVG input is bounded and rejects unsupported resources or content contextually.
10
10
  | --- | --- |
11
11
  | [preflightSvgRegion](../preflightSvgRegion.md) | Preflights bounded SVG geometry without browser or Manifold dependencies. |
12
12
  | [sampleTextContours](../sampleTextContours.md) | Samples a prepared text layout without shaping text again or loading a font. |
13
- | [strokePathRegion](../strokePathRegion.md) | Converts a sampled millimetre path into the filled region covered by a centered stroke. |
13
+ | [strokeRegionData](../strokeRegionData.md) | Converts a sampled millimetre path into the filled region covered by a centered stroke. |
14
14
  | [fitTextLayout](../fitTextLayout.md) | Uniformly fits visible text ink inside finite XY bounds, centering it on the target. Transforms retained vector paths before sampling, so later textSection/sampleTextContours resolution remains in final millimetres. Logical advances scale without translation; line count is unchanged. The input layout is preserved. |
15
15
 
16
16
  ## Interfaces
17
17
 
18
18
  | API | Summary |
19
19
  | --- | --- |
20
- | [StrokePathRegionOptions](../StrokePathRegionOptions.md) | Physical stroke and topology controls for strokePathRegion. |
20
+ | [StrokeOptions](../StrokeOptions.md) | Physical stroke and topology controls shared by pure regions and native Sections. |
21
21
  | [SvgImportOptions](../SvgImportOptions.md) | Sampling controls for deterministic SVG-to-region conversion. |
22
22
  | [SvgRegionPreflight](../SvgRegionPreflight.md) | Exact normalized SVG region plus bounded source, geometry, and safe-repair diagnostics. |
23
23
  | [SvgRegionPreflightRepairs](../SvgRegionPreflightRepairs.md) | Visible, appearance-preserving cleanup counters from bounded SVG import. |
@@ -34,7 +34,7 @@ SVG input is bounded and rejects unsupported resources or content contextually.
34
34
 
35
35
  | API | Summary |
36
36
  | --- | --- |
37
- | [StrokePathCap](../StrokePathCap.md) | End-cap treatment for an open stroked path. |
38
- | [StrokePathJoin](../StrokePathJoin.md) | Join treatment where adjacent stroked path segments meet. |
37
+ | [StrokeCap](../StrokeCap.md) | End-cap treatment for an open stroked path. |
38
+ | [StrokeJoin](../StrokeJoin.md) | Join treatment where adjacent stroked path segments meet. |
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.15.0`.
@@ -30,4 +30,4 @@ circleContour({ diameter: 20, segments: 32 });
30
30
  - [CircleContourOptions](CircleContourOptions.md)
31
31
  - [Contour](Contour.md)
32
32
 
33
- Package: `@metamesh/modeling@0.13.0`.
33
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Closes an open, strictly upward [radius, height] side outline to the radius-zero axis. Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once. Returns a counterclockwise filled-boundary contour without a repeated seam vertex. Radii must be nonnegative; the result must enclose nonzero area without touching itself. This is a solid-body closure, not a hollow-wall or mounting-bore construction.
4
4
 
5
- **closeToAxis**(`side`: readonly [`Vector2`](Vector2.md)[], `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>): [`Contour`](Contour.md)
5
+ **closeToAxis**(`side`: readonly [`Vector2Tuple`](Vector2Tuple.md)[], `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>): [`Contour`](Contour.md)
6
6
 
7
7
 
8
8
 
@@ -10,7 +10,7 @@ Closes an open, strictly upward [radius, height] side outline to the radius-zero
10
10
 
11
11
  <a id="side"></a>
12
12
 
13
- **`side`** · readonly [`Vector2`](Vector2.md)[] · Required
13
+ **`side`** · readonly [`Vector2Tuple`](Vector2Tuple.md)[] · Required
14
14
 
15
15
 
16
16
 
@@ -29,6 +29,6 @@ Closes an open, strictly upward [radius, height] side outline to the radius-zero
29
29
 
30
30
  - [Contour](Contour.md)
31
31
  - [GeometrySamplingLimits](GeometrySamplingLimits.md)
32
- - [Vector2](Vector2.md)
32
+ - [Vector2Tuple](Vector2Tuple.md)
33
33
 
34
- Package: `@metamesh/modeling@0.13.0`.
34
+ Package: `@metamesh/modeling@0.15.0`.
@@ -48,4 +48,4 @@ allowances as radial mating clearance.
48
48
  - [CompensatedThreadDiameters](CompensatedThreadDiameters.md)
49
49
  - [ThreadCompensationOptions](ThreadCompensationOptions.md)
50
50
 
51
- Package: `@metamesh/modeling@0.13.0`.
51
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Applies axial fit allowance to a validated periodic profile.
4
4
 
5
- **compensateThreadProfileAxially**(`profile`: [`ThreadProfile`](ThreadProfile.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`): [`ThreadProfile`](ThreadProfile.md)
5
+ **compensateThreadProfileAxially**(`profile`: [`ThreadProfile`](ThreadProfile-type.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`): [`ThreadProfile`](ThreadProfile-type.md)
6
6
 
7
7
 
8
8
 
@@ -14,7 +14,7 @@ change. The returned profile is a new deeply immutable value.
14
14
 
15
15
  <a id="profile"></a>
16
16
 
17
- **`profile`** · [`ThreadProfile`](ThreadProfile.md) · Required
17
+ **`profile`** · [`ThreadProfile`](ThreadProfile-type.md) · Required
18
18
 
19
19
 
20
20
 
@@ -32,11 +32,11 @@ change. The returned profile is a new deeply immutable value.
32
32
 
33
33
  ## Returns
34
34
 
35
- [`ThreadProfile`](ThreadProfile.md)
35
+ [`ThreadProfile`](ThreadProfile-type.md)
36
36
 
37
37
 
38
38
  ## Related APIs
39
39
 
40
- - [ThreadProfile](ThreadProfile.md)
40
+ - [ThreadProfile](ThreadProfile-type.md)
41
41
 
42
- Package: `@metamesh/modeling@0.13.0`.
42
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Applies printable axial fit plus the conservative phase allowance required by circular facets.
4
4
 
5
- **compensateThreadProfileForFaceting**(`profile`: [`ThreadProfile`](ThreadProfile.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`, `starts`: `number`, `circularSegments`: `number`): [`ThreadProfile`](ThreadProfile.md)
5
+ **compensateThreadProfileForFaceting**(`profile`: [`ThreadProfile`](ThreadProfile-type.md), `axialBacklash`: `number`, `role`: `"female"` \| `"male"`, `starts`: `number`, `circularSegments`: `number`): [`ThreadProfile`](ThreadProfile-type.md)
6
6
 
7
7
 
8
8
 
@@ -16,7 +16,7 @@ it exactly.
16
16
 
17
17
  <a id="profile"></a>
18
18
 
19
- **`profile`** · [`ThreadProfile`](ThreadProfile.md) · Required
19
+ **`profile`** · [`ThreadProfile`](ThreadProfile-type.md) · Required
20
20
 
21
21
 
22
22
 
@@ -46,11 +46,11 @@ it exactly.
46
46
 
47
47
  ## Returns
48
48
 
49
- [`ThreadProfile`](ThreadProfile.md)
49
+ [`ThreadProfile`](ThreadProfile-type.md)
50
50
 
51
51
 
52
52
  ## Related APIs
53
53
 
54
- - [ThreadProfile](ThreadProfile.md)
54
+ - [ThreadProfile](ThreadProfile-type.md)
55
55
 
56
- Package: `@metamesh/modeling@0.13.0`.
56
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Composes two affine transforms without mutating either matrix.
4
4
 
5
- **composeTransform3**(`after`: [`Transform3`](Transform3.md), `before`: [`Transform3`](Transform3.md)): [`Transform3`](Transform3.md)
5
+ **composeTransform3**(`after`: [`Transform3Matrix`](Transform3Matrix.md), `before`: [`Transform3Matrix`](Transform3Matrix.md)): [`Transform3Matrix`](Transform3Matrix.md)
6
6
 
7
7
 
8
8
 
@@ -12,7 +12,7 @@ Composes two affine transforms without mutating either matrix.
12
12
 
13
13
  <a id="after"></a>
14
14
 
15
- **`after`** · [`Transform3`](Transform3.md) · Required
15
+ **`after`** · [`Transform3Matrix`](Transform3Matrix.md) · Required
16
16
 
17
17
  Transform applied second.
18
18
 
@@ -20,7 +20,7 @@ Transform applied second.
20
20
 
21
21
  <a id="before"></a>
22
22
 
23
- **`before`** · [`Transform3`](Transform3.md) · Required
23
+ **`before`** · [`Transform3Matrix`](Transform3Matrix.md) · Required
24
24
 
25
25
  Transform applied first.
26
26
 
@@ -28,13 +28,17 @@ Transform applied first.
28
28
 
29
29
  ## Returns
30
30
 
31
- [`Transform3`](Transform3.md)
31
+ [`Transform3Matrix`](Transform3Matrix.md)
32
32
 
33
33
  A new frozen transform equal to `after * before`.
34
34
 
35
35
 
36
36
  ## Related APIs
37
37
 
38
- - [Transform3](Transform3.md)
38
+ - [Transform3Matrix](Transform3Matrix.md)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ ## Guides
41
+
42
+ - [Reusable transforms and vector math](../../guides/concepts.md#reuse-a-transform-across-shapes-and-coordinates)
43
+
44
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Builds rotation-minimizing frames for a non-duplicated closed path.
4
4
 
5
- `const` **computeClosedParallelTransportFrames**: (`path`: readonly [`Vector3`](Vector3.md)[], `initialNormal?`: [`Vector3`](Vector3.md), `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>) => readonly [`PathFrame`](PathFrame.md)[]
5
+ `const` **computeClosedParallelTransportFrames**: (`input`: [`Path3Input`](Path3Input.md), `initialNormal?`: [`Vector3Input`](Vector3Input.md), `limits?`: `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\>) => readonly [`PathFrame`](PathFrame.md)[]
6
6
 
7
7
 
8
8
 
@@ -10,18 +10,21 @@ Centered cyclic tangents are parallel-transported around the loop. Transporting
10
10
  normal back to the first tangent measures seam holonomy; distributing that residual rotation
11
11
  uniformly over all path intervals avoids a visible seam or accumulated frame flip.
12
12
  The maxPathPoints ceiling (default 100000) bounds path points and frames.
13
+ Requires closed path values; raw tuples are interpreted as closed and must omit their seam point.
14
+ Invalid paths throw GeometryError.
15
+ Nonfinite initial normals reject; finite parallel preferences select a canonical fallback.
13
16
 
14
17
  ## Parameters
15
18
 
16
- <a id="path"></a>
19
+ <a id="input"></a>
17
20
 
18
- **`path`** · readonly [`Vector3`](Vector3.md)[] · Required
21
+ **`input`** · [`Path3Input`](Path3Input.md) · Required
19
22
 
20
23
 
21
24
 
22
25
  <a id="initialnormal"></a>
23
26
 
24
- **`initialNormal`** · [`Vector3`](Vector3.md) · Optional
27
+ **`initialNormal`** · [`Vector3Input`](Vector3Input.md) · Optional
25
28
 
26
29
 
27
30
 
@@ -39,7 +42,8 @@ readonly [`PathFrame`](PathFrame.md)[]
39
42
  ## Related APIs
40
43
 
41
44
  - [GeometrySamplingLimits](GeometrySamplingLimits.md)
45
+ - [Path3Input](Path3Input.md)
42
46
  - [PathFrame](PathFrame.md)
43
- - [Vector3](Vector3.md)
47
+ - [Vector3Input](Vector3Input.md)
44
48
 
45
- Package: `@metamesh/modeling@0.13.0`.
49
+ Package: `@metamesh/modeling@0.15.0`.