@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
  Choose physical curve sampling and explicit native tolerance.
4
4
 
5
- Exact operation counts take precedence over the operation’s resolution policy, followed by host session defaults. Pass resolution explicitly to each affected constructor or Section operation. Solid.setTolerance changes native geometric tolerance on an immutable copy; it does not select curve sampling.
5
+ Exact operation counts take precedence over the operation’s resolution policy, followed by host session defaults. Pass resolution explicitly to each affected constructor or Section operation. Solid.withTolerance changes native geometric tolerance on an immutable copy; it does not select curve sampling.
6
6
 
7
7
  ## Interfaces
8
8
 
@@ -15,4 +15,4 @@ Exact operation counts take precedence over the operation’s resolution policy,
15
15
 
16
16
  - [Coordinates, units, and resolution](../../../guides/concepts.md#coordinates-units-and-resolution)
17
17
 
18
- Package: `@metamesh/modeling@0.13.0`.
18
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,16 +1,16 @@
1
1
  # 2D Sections
2
2
 
3
- Create native filled XY sections, including prepared text and bounded painted SVG.
3
+ Create immutable filled XY shapes, including prepared text and bounded painted SVG.
4
4
 
5
- A Section is a filled native XY shape with holes and disconnected components. rectangle, circle, ellipse, regularPolygon and star take object options. Boolean and offset chains stay native until an explicit toRegion conversion. textSection consumes prepared VectorTextLayout without shaping again. Extrusion and revolution preserve filled topology; sweeps retain all contours. Compatible primitive Sections retain their authored landmarks for direct lofting; arbitrary Sections require explicit vertex correspondence. `polygon(points)` fills a single implicit closed contour. `polygon({ outer, holes })` validates explicit topology; `polygon({ contours, fillRule })` resolves compound winding with nonzero fill by default or evenodd fill. All forms return a Section.
5
+ Section is the filled XY modeling value with holes and disconnected components. RegionData is its serialized polygon data. Construct with `polygon(points)`, `polygon({ outer, holes })`, `polygon({ contours, fillRule })`, or `polygon({ polygons: data })`. Explicit topology validates boundaries and winding; compound contours use nonzero fill by default or evenodd fill. Observe evaluated coordinates with section.toRegionData() during synchronous host execution. Construction and composition are engine-independent; native evaluation is host-owned. textSection consumes prepared VectorTextLayout without shaping again. Extrusion, revolution and sweeps preserve filled topology. Compatible primitive Sections retain authored landmarks for lofting; arbitrary Sections need explicit correspondence.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
+ | [stroke](../stroke.md) | Creates a centered-width native Section along a sampled XY path. |
11
12
  | [circle](../circle.md) | Centered circular section. |
12
13
  | [ellipse](../ellipse.md) | Centered elliptical section. |
13
- | [fromRegion](../fromRegion.md) | Imports explicit region topology once. |
14
14
  | [rectangle](../rectangle.md) | Filled rectangular section with uniform or independently treated corners. |
15
15
  | [regularPolygon](../regularPolygon.md) | Regular polygon with a vertex on +X. |
16
16
  | [polygon](../polygon.md) | Fills one closed millimetre XY outline, explicit outer/hole topology, or compound contours. Closing edges are implicit. Compound contours use nonzero fill unless selected otherwise. Explicit topology must be simple and disjoint; compound winding may resolve overlaps. |
@@ -18,16 +18,16 @@ A Section is a filled native XY shape with holes and disconnected components. re
18
18
  | [svgPathSection](../svgPathSection.md) | Imports bounded filled SVG path data. |
19
19
  | [svgSection](../svgSection.md) | Imports bounded painted SVG document geometry. |
20
20
  | [textSection](../textSection.md) | Consumes a previously prepared layout; never shapes or fetches a font. |
21
- | [toRegion](../toRegion.md) | Explicit copied topology inspection; not needed for section operations. |
22
21
 
23
22
  ## Interfaces
24
23
 
25
24
  | API | Summary |
26
25
  | --- | --- |
27
- | [Section](../Section.md) | Immutable deferred filled XY section recipe belonging to exactly one model session. Methods run during synchronous generation and preserve their receiver. Distances use millimetres; rotations are counterclockwise degrees about the origin. Construction uses the session resolution unless the operation supplies explicit options. |
26
+ | [Section](../Section.md) | Immutable deferred filled XY section recipe. Construction and composition require no engine. Ordinary recipes may be reused across sessions regardless of where constructed. Observed components and recipes using them can only be evaluated in their originating session. Methods leave the source unchanged; observations require a synchronous model execution. Distances use millimetres; rotations use counterclockwise degrees. Explicit resolution settings are captured; unspecified settings inherit the evaluating host's defaults. |
27
+ | [StrokeOptions](../StrokeOptions.md) | Physical stroke and topology controls shared by pure regions and native Sections. |
28
28
  | [RectangleContourOptions](../RectangleContourOptions.md) | Shared rectangle dimensions, origin and uniform or per-corner treatment. |
29
29
  | [RectangleOptions](../RectangleOptions.md) | Rectangle dimensions, placement and uniform or per-corner treatment. |
30
- | [RegionOffsetOptions](../RegionOffsetOptions.md) | Options controlling robust Clipper2 region offsets. |
30
+ | [SectionOffsetOptions](../SectionOffsetOptions.md) | Options controlling robust Clipper2 region offsets. |
31
31
  | [StarOptions](../StarOptions.md) | Alternating outer and inner vertices, centered on the XY origin. |
32
32
  | [SvgPathSectionOptions](../SvgPathSectionOptions.md) | Bounded filled SVG path sampling. Path scale converts user units to millimetres. |
33
33
  | [SvgSectionOptions](../SvgSectionOptions.md) | Bounded SVG document sampling. Center origin uses the final painted bounds. |
@@ -39,6 +39,8 @@ A Section is a filled native XY shape with holes and disconnected components. re
39
39
 
40
40
  | API | Summary |
41
41
  | --- | --- |
42
+ | [StrokeCap](../StrokeCap.md) | End-cap treatment for an open stroked path. |
43
+ | [StrokeJoin](../StrokeJoin.md) | Join treatment where adjacent stroked path segments meet. |
42
44
  | [CircleContourOptions](../CircleContourOptions.md) | Circular profile dimensions with exactly one radius or diameter and explicit sampling. |
43
45
  | [CircleOptions](../CircleOptions.md) | Circular dimensions with exactly one nominal radius or diameter. |
44
46
  | [EllipseContourOptions](../EllipseContourOptions.md) | Ellipse dimensions with exactly one XY radii or full-size tuple and explicit sampling. |
@@ -46,7 +48,7 @@ A Section is a filled native XY shape with holes and disconnected components. re
46
48
  | [RectangleCornerTreatment](../RectangleCornerTreatment.md) | A rectangle corner, including an explicitly untreated corner in a treatment tuple. |
47
49
  | [RectangleCornerTreatments](../RectangleCornerTreatments.md) | Corner treatments ordered top-right, top-left, bottom-left, bottom-right. |
48
50
  | [RegularPolygonOptions](../RegularPolygonOptions.md) | Regular polygon dimensions, radial convention and degree rotation. |
49
- | [RegionOffsetJoin](../RegionOffsetJoin.md) | Clipper2 join styles accepted by robust region offsets. |
51
+ | [SectionOffsetJoin](../SectionOffsetJoin.md) | Clipper2 join styles accepted by robust region offsets. |
50
52
  | [PolygonOptions](../PolygonOptions.md) | Explicit polygon topology or compound contours; all closing edges are implicit. |
51
53
  | [SvgOrigin](../SvgOrigin.md) | Placement of painted SVG geometry after SVG Y-axis inversion. |
52
54
 
@@ -56,4 +58,4 @@ A Section is a filled native XY shape with holes and disconnected components. re
56
58
  - [SVG sections: fills and strokes are different inputs](../../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
57
59
  - [Text and font variability](../../../guides/concepts.md#text-and-font-variability)
58
60
 
59
- Package: `@metamesh/modeling@0.13.0`.
61
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # Printable threads
2
2
 
3
- Construct compensated thread forms and inspect allocation-free preflight facts.
3
+ Construct compensated thread forms and inspect bounded preflight facts.
4
4
 
5
5
  Thread pitch is adjacent axial spacing; lead equals pitch times starts. Prepare shared thread dimensions once. Constructors enforce safety automatically; optional preflight provides resource estimates or early control-specific validation. Native rods, internal cutters, and nuts share printable fit and end-treatment options. These forms do not certify a structural rating or a metrology class.
6
6
 
@@ -9,9 +9,9 @@ Thread pitch is adjacent axial spacing; lead equals pitch times starts. Prepare
9
9
  | API | Summary |
10
10
  | --- | --- |
11
11
  | [internalThreadCutter](../internalThreadCutter.md) | Compensated internal threaded cutter. |
12
- | [preflightInternalThreadCutter](../preflightInternalThreadCutter.md) | Allocation-free internal-thread facts. |
13
- | [preflightThreadedNut](../preflightThreadedNut.md) | Allocation-free nut/cutter facts. |
14
- | [preflightThreadedRod](../preflightThreadedRod.md) | Allocation-free external-thread facts. |
12
+ | [preflightInternalThreadCutter](../preflightInternalThreadCutter.md) | Internal-thread facts using host resolution and limits; requires active synchronous model execution. |
13
+ | [preflightThreadedNut](../preflightThreadedNut.md) | Nut/cutter facts using host resolution and limits; requires active synchronous model execution. |
14
+ | [preflightThreadedRod](../preflightThreadedRod.md) | External-thread facts using host resolution and limits; requires active synchronous model execution. |
15
15
  | [threadedNut](../threadedNut.md) | Compensated threaded nut. |
16
16
  | [threadedRod](../threadedRod.md) | Compensated external threaded rod. |
17
17
  | [threadRidge](../threadRidge.md) | Helical ridge mesh construction. |
@@ -47,4 +47,4 @@ Thread pitch is adjacent axial spacing; lead equals pitch times starts. Prepare
47
47
 
48
48
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
49
49
 
50
- Package: `@metamesh/modeling@0.13.0`.
50
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,13 +1,17 @@
1
- # Transforms & Placement
1
+ # Transforms, Vectors & Placement
2
2
 
3
- Transform 2D sections and 3D solids; arrange and attach solids with explicit placement contracts.
3
+ Calculate with immutable vectors, reuse transforms, and arrange geometry with explicit placement contracts.
4
4
 
5
- Solid and Section methods translate, rotate, scale, mirror and transform return immutable same-dimensional recipes. Sections use XY vectors and counterclockwise degree rotations; solids use XYZ vectors and degree Euler angles. Calls apply in written order about the origin: translating then rotating also rotates the translated position. Transform2 and Transform3 are row-major affine matrices. Solid.attach and primitive placement share source/target anchors, alignment, millimetre gap and degree spin. withAnchors adds explicit datums to either shape. Patterns return same-session Solid or Section arrays; Section placements must preserve XY. Pure *PatternTransforms expose matching placements from /geometry. Place completed parts through part options so placement can reuse geometry.
5
+ Use vector2/vector3 for immutable arithmetic and transform2/transform3 for reusable placements. Tuples are accepted as operands; scalar dot, length and distance return numbers. Shape.transform accepts a matching transform directly. Operations apply in written order, rotations use degrees, and optional `{ pivot }` points use world coordinates, defaulting to the origin. andThen composes placements in execution order. applyPoint includes translation, applyDirection retains scale without translation, and applyNormal uses the inverse transpose and returns a unit vector. toArray and toMatrix expose canonical data for interchange. Solid.attach and primitive attachment share source/target anchors, alignment, millimetre gap and degree spin. XY placements can be explicitly embedded with to3D; to2D rejects plane changes. Part placement can reuse finished geometry. Section patterns use XY directions and Path2 trajectories; tangent orientation aligns local +X in the XY plane. Radial Section patterns use an XY pivot and implicit +Z axis. Solid patterns use XYZ inputs and explicit radial axes; path tangent orientation aligns local +Z.
6
6
 
7
7
  ## Functions
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
+ | [transform2](../transform2.md) | Creates an immutable XY transform, identity by default. Matrices are copied and validated. Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ. Zero scales and singular matrices throw GeometryError; negative scales reflect. |
12
+ | [transform3](../transform3.md) | Creates an immutable XYZ transform, identity by default. Matrices are copied and validated. Calls apply in written order; rotations use degrees and pivots use current world coordinates. Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError. Use frameTransform3(frame) as the input for existing orthonormal frame placement. |
13
+ | [vector2](../vector2.md) | Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform2().applyDirection(value) for rotations and nonuniform scaling. |
14
+ | [vector3](../vector3.md) | Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates. Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates and overflow throw `NON_FINITE_VALUE` GeometryError. Use transform3().applyDirection(value) for rotations and nonuniform scaling. |
11
15
  | [anchor](../anchor.md) | Reads a copied, immutable named anchor from this exact active generation. |
12
16
  | [gridPattern](../gridPattern.md) | XY or XYZ copies, optionally centered or placed in an explicit frame. |
13
17
  | [linearPattern](../linearPattern.md) | Repeats one solid along a normalized direction. |
@@ -18,26 +22,36 @@ Solid and Section methods translate, rotate, scale, mirror and transform return
18
22
 
19
23
  | API | Summary |
20
24
  | --- | --- |
25
+ | [Transform2](../Transform2-type.md) | Immutable reusable XY placement. Methods apply in written order; angles are degrees. |
26
+ | [Transform3](../Transform3-type.md) | Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. |
27
+ | [Pivot2Options](../Pivot2Options.md) | A fixed XY point in world coordinates; omitted pivots use the coordinate origin. |
28
+ | [Pivot3Options](../Pivot3Options.md) | A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. |
29
+ | [Vector2](../Vector2-type.md) | Immutable XY arithmetic; vector operations return new values and measurements return numbers. |
30
+ | [Vector3](../Vector3-type.md) | Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. |
21
31
  | [Anchor3](../Anchor3.md) | An attachment pose on a solid or assembly. |
22
- | [AttachOptions](../AttachOptions.md) | Degree-based anchor attachment controls for a scoped solid. |
32
+ | [AttachOptions](../AttachOptions.md) | Options controlling how one anchor is attached to another. |
23
33
  | [PathPatternOptions](../PathPatternOptions.md) | Equal physical arc-length placements along an open or implicitly closed sampled path. |
24
- | [PrimitivePlacement](../PrimitivePlacement.md) | Placement shared by solid and filled-section factories. |
25
- | [PrimitivePlacementOptions](../PrimitivePlacementOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
26
- | [RadialPatternOptions](../RadialPatternOptions.md) | Options for repeating one solid around an axis through a center point. |
34
+ | [PrimitiveAttachment](../PrimitiveAttachment.md) | Anchor attachment shared by solid and filled-section factories. |
35
+ | [PrimitiveAttachmentOptions](../PrimitiveAttachmentOptions.md) | Maps an explicit or named shape-local attachment anchor onto a world-space anchor. |
27
36
 
28
37
  ## Type aliases
29
38
 
30
39
  | API | Summary |
31
40
  | --- | --- |
32
- | [GridPatternOptions](../GridPatternOptions.md) | XY or XYZ grid with X varying fastest. The first item starts at the local origin. |
33
- | [LinearPatternOptions](../LinearPatternOptions.md) | Equal linear intervals determined by exactly two of count, spacing and total length. |
34
- | [PatternSource](../PatternSource.md) | One same-session shape, or a synchronous factory called once per copy in index order. |
35
- | [Transform2](../Transform2.md) | Row-major affine XY matrix. Translation occupies m02/m12; final row is [0, 0, 1]. |
36
- | [Transform3](../Transform3.md) | A row-major affine 4x4 matrix applied to column vectors. |
41
+ | [Transform2Input](../Transform2Input.md) | An immutable XY transform or its canonical row-major matrix for interchange. |
42
+ | [Transform3Input](../Transform3Input.md) | An immutable XYZ transform or its canonical row-major matrix for interchange. |
43
+ | [Vector2Input](../Vector2Input.md) | An XY tuple or immutable fluent vector accepted by vector operations. |
44
+ | [Vector3Input](../Vector3Input.md) | An XYZ tuple or immutable fluent vector accepted by vector operations. |
45
+ | [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. |
46
+ | [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. |
47
+ | [PatternSource](../PatternSource.md) | One immutable shape, or a synchronous factory called once per copy in index order. |
48
+ | [RadialPatternOptions](../RadialPatternOptions.md) | Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis. |
49
+ | [Transform2Matrix](../Transform2Matrix.md) | A row-major affine 3x3 XY matrix applied to column vectors. Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`. |
50
+ | [Transform3Matrix](../Transform3Matrix.md) | A row-major affine 4x4 matrix applied to column vectors. |
37
51
 
38
52
  ## Guides
39
53
 
40
54
  - [Named anchors and custom frames](../../../guides/recipes.md#named-anchors-and-custom-frames)
41
55
  - [Primitive booleans and repeated placement](../../../guides/recipes.md#primitive-booleans-and-repeated-placement)
42
56
 
43
- Package: `@metamesh/modeling@0.13.0`.
57
+ Package: `@metamesh/modeling@0.15.0`.
@@ -36,4 +36,4 @@ circle({ diameter: 12, sizing: "face" });
36
36
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
37
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # components
2
2
 
3
- Separates a solid's disconnected surface shells into same-session solid handles.
3
+ Observes disconnected material pieces as session-restricted solid selections.
4
4
 
5
5
  ## Call Signature
6
6
 
@@ -19,11 +19,13 @@ const pieces = components(islands);
19
19
  union(pieces.map((piece, index) => piece.translate([0, 0, index * 6])));
20
20
  ```
21
21
 
22
- Separates a solid's disconnected surface shells into same-session solid handles.
22
+ Observes disconnected material pieces as session-restricted solid selections.
23
23
 
24
- For solids without enclosed cavities, these shells are the disconnected material islands.
25
- Enclosed cavities produce separate inward shells with negative signed volume; these cannot
26
- be finalized alone as manufacturing parts. This does not cut connected geometry.
24
+ Each piece retains its enclosed cavities. A sealed hollow box is one component; adding a loose
25
+ ball inside its cavity produces two. Recombining the pieces preserves the original material.
26
+ This does not cut connected geometry. Containment is bounded to 2,000,000 comparisons.
27
+ Selection order and cardinality depend on evaluated topology. Results and recipes using them
28
+ can only be evaluated in this session; composition itself requires no engine.
27
29
 
28
30
  ### Parameters
29
31
 
@@ -45,7 +47,8 @@ readonly [`Solid`](Solid.md)[]
45
47
 
46
48
 
47
49
 
48
- Separates filled 2D islands into sections, retaining each island's holes; empty gives [].
50
+ Observes filled 2D islands, retaining each island's holes; empty gives [].
51
+ Selections and recipes using them can only be evaluated in this session.
49
52
 
50
53
  ### Parameters
51
54
 
@@ -65,4 +68,4 @@ readonly [`Section`](Section.md)[]
65
68
  - [Section](Section.md)
66
69
  - [Solid](Solid.md)
67
70
 
68
- Package: `@metamesh/modeling@0.13.0`.
71
+ Package: `@metamesh/modeling@0.15.0`.
@@ -28,4 +28,4 @@ Combines disjoint components without resolving overlap.
28
28
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
29
29
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
30
30
 
31
- Package: `@metamesh/modeling@0.13.0`.
31
+ Package: `@metamesh/modeling@0.15.0`.
@@ -49,4 +49,4 @@ cylinder({ height: 20, radius: [10, 0] });
49
49
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
50
50
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
51
51
 
52
- Package: `@metamesh/modeling@0.13.0`.
52
+ Package: `@metamesh/modeling@0.15.0`.
@@ -17,7 +17,7 @@ const gap = distance(left, right); // 3 mm
17
17
  Uses actual geometry, not bounding-box separation or distance between object origins.
18
18
  Contact or overlapping material returns zero, including one solid inside another.
19
19
  The kernel's search range is managed internally; the result is not capped at a caller limit.
20
- Empty, expired or foreign-build handles reject. Results follow native numeric precision.
20
+ Empty geometry and component selections from another session reject. Results follow native numeric precision.
21
21
 
22
22
  ## Parameters
23
23
 
@@ -42,4 +42,4 @@ Empty, expired or foreign-build handles reject. Results follow native numeric pr
42
42
 
43
43
  - [Solid](Solid.md)
44
44
 
45
- Package: `@metamesh/modeling@0.13.0`.
45
+ Package: `@metamesh/modeling@0.15.0`.
@@ -36,4 +36,4 @@ ellipse({ size: [30, 20] });
36
36
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
37
37
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ Package: `@metamesh/modeling@0.15.0`.
@@ -52,11 +52,11 @@ extrude(profile!, { height: 8 });
52
52
 
53
53
  Operation-level physical policy over the nearest model scope.
54
54
 
55
- - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2`](Vector2.md) · Optional
55
+ - [`scaleTop`](ExtrudeOptions.md#scaletop) · `number` \| [`Vector2Input`](Vector2Input.md) · Optional
56
56
 
57
57
  Finite uniform or XY scale of the top profile; defaults to one.
58
58
 
59
- - [`twistDegrees`](ExtrudeOptions.md#twistdegrees) · `number` · Optional
59
+ - [`twist`](ExtrudeOptions.md#twist) · `number` · Optional
60
60
 
61
61
  Finite rotation of the top profile about +Z, in degrees; defaults to zero.
62
62
 
@@ -80,4 +80,4 @@ extrude(profile!, { height: 8 });
80
80
  - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
81
81
  - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
82
82
 
83
- Package: `@metamesh/modeling@0.13.0`.
83
+ Package: `@metamesh/modeling@0.15.0`.
@@ -43,4 +43,4 @@ const model = generate<{ height: number }>(({ params, part, assert }) => {
43
43
  - [GenerateCallback](GenerateCallback.md)
44
44
  - [ModelProgram](ModelProgram.md)
45
45
 
46
- Package: `@metamesh/modeling@0.13.0`.
46
+ Package: `@metamesh/modeling@0.15.0`.
@@ -40,11 +40,11 @@ readonly [`Solid`](Solid.md)[]
40
40
 
41
41
 
42
42
 
43
- **gridPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `options`: [`GridPatternOptions`](GridPatternOptions.md)): readonly [`Section`](Section.md)[]
43
+ **gridPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `options`: [`GridPatternOptions`](GridPatternOptions.md)\<`2`\>): readonly [`Section`](Section.md)[]
44
44
 
45
45
 
46
46
 
47
- Repeats a filled Section on a grid; placements must preserve its XY plane.
47
+ Repeats a filled Section on an XY grid; any explicit frame must preserve the XY plane.
48
48
 
49
49
  ### Parameters
50
50
 
@@ -56,7 +56,7 @@ Repeats a filled Section on a grid; placements must preserve its XY plane.
56
56
 
57
57
  <a id="options-1"></a>
58
58
 
59
- **`options`** · [`GridPatternOptions`](GridPatternOptions.md) · Required
59
+ **`options`** · [`GridPatternOptions`](GridPatternOptions.md)\<`2`\> · Required
60
60
 
61
61
 
62
62
 
@@ -77,4 +77,4 @@ readonly [`Section`](Section.md)[]
77
77
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
78
78
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
79
79
 
80
- Package: `@metamesh/modeling@0.13.0`.
80
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # heightfield
2
2
 
3
- Closed rectilinear top above a flat base, with uniform or explicit XY coordinates. Samples each grid height once; center-error triangulation also samples each cell centre.
3
+ Closed rectilinear top above a flat base, with uniform or explicit XY coordinates. Samples each grid height once; center-error triangulation also samples each cell centre. The retained callback must capture independent immutable inputs, not live session readers or parameters.
4
4
 
5
5
  **heightfield**(`options`: [`HeightfieldOptions`](HeightfieldOptions.md)): [`Solid`](Solid.md)
6
6
 
@@ -37,4 +37,4 @@ heightfield({
37
37
  - [HeightfieldOptions](HeightfieldOptions.md)
38
38
  - [Solid](Solid.md)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.15.0`.
@@ -44,7 +44,7 @@ Convex hull of points or solids.
44
44
 
45
45
 
46
46
 
47
- Convex filled XY hull of finite points or same-session sections.
47
+ Convex filled XY hull of finite points or filled section recipes.
48
48
 
49
49
  ### Parameters
50
50
 
@@ -71,4 +71,4 @@ Convex filled XY hull of finite points or same-session sections.
71
71
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
72
72
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
73
73
 
74
- Package: `@metamesh/modeling@0.13.0`.
74
+ Package: `@metamesh/modeling@0.15.0`.
@@ -41,4 +41,4 @@ editable[0] = 8; // heights still contains 2, 4, 6.
41
41
  - [ImmutableBuffer](ImmutableBuffer-type.md)
42
42
  - [NumericArray](NumericArray.md)
43
43
 
44
- Package: `@metamesh/modeling@0.13.0`.
44
+ Package: `@metamesh/modeling@0.15.0`.
@@ -37,4 +37,4 @@ const model = generate(({ computed, part }) => {
37
37
  - [ImmutableTriangleMesh](ImmutableTriangleMesh.md)
38
38
  - [TriangleMesh](TriangleMesh.md)
39
39
 
40
- Package: `@metamesh/modeling@0.13.0`.
40
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # implicit
2
2
 
3
- Bounded positive-inside implicit field constructor.
3
+ Bounded positive-inside implicit field constructor. The retained callback must capture independent immutable inputs, not live session readers or parameters.
4
4
 
5
5
  **implicit**(`options`: [`ImplicitOptions`](ImplicitOptions.md)): [`Solid`](Solid.md)
6
6
 
@@ -12,7 +12,7 @@ Bounded positive-inside implicit field constructor.
12
12
 
13
13
  **`options`** · [`ImplicitOptions`](ImplicitOptions.md) · Required
14
14
 
15
- - [`field`](ImplicitOptions.md#field) · (`point`: [`Vector3`](Vector3.md)) => `number` · Required
15
+ - [`field`](ImplicitOptions.md#field) · (`point`: [`Vector3Tuple`](Vector3Tuple.md)) => `number` · Required
16
16
 
17
17
  Positive-inside scalar field evaluated at finite XYZ points.
18
18
 
@@ -44,4 +44,4 @@ Bounded positive-inside implicit field constructor.
44
44
  - [ImplicitOptions](ImplicitOptions.md)
45
45
  - [Solid](Solid.md)
46
46
 
47
- Package: `@metamesh/modeling@0.13.0`.
47
+ Package: `@metamesh/modeling@0.15.0`.
@@ -35,4 +35,4 @@ facts.area; // 200 mm²
35
35
 
36
36
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
37
37
 
38
- Package: `@metamesh/modeling@0.13.0`.
38
+ Package: `@metamesh/modeling@0.15.0`.
@@ -35,4 +35,4 @@ facts.volume; // 3600 mm³
35
35
 
36
36
  - [Solid inspection](../../guides/recipes.md#solid-inspection)
37
37
 
38
- Package: `@metamesh/modeling@0.13.0`.
38
+ Package: `@metamesh/modeling@0.15.0`.
@@ -10,8 +10,8 @@ Compensated internal threaded cutter.
10
10
 
11
11
  ```ts
12
12
  import { cylinder, internalThreadCutter } from "@metamesh/modeling";
13
- import { createThreadProfile } from "@metamesh/modeling/geometry";
14
- const profile = createThreadProfile({ kind: "triangular", pitch: 1.75 });
13
+ import { threadProfile } from "@metamesh/modeling/geometry";
14
+ const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
15
15
  const body = cylinder({ diameter: 20, height: 12, center: false });
16
16
  const cutter = internalThreadCutter({ nominalMajorDiameter: 12, length: 12, profile });
17
17
  body.subtract([cutter]);
@@ -48,7 +48,7 @@ body.subtract([cutter]);
48
48
 
49
49
  Explicit output and circular allocation ceilings.
50
50
 
51
- - [`phaseDegrees`](InternalThreadCutterOptions.md#phasedegrees) · `number` · Optional
51
+ - [`phase`](InternalThreadCutterOptions.md#phase) · `number` · Optional
52
52
 
53
53
  Angular offset of the first start in degrees. Default: `0`.
54
54
 
@@ -97,4 +97,4 @@ body.subtract([cutter]);
97
97
 
98
98
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
99
99
 
100
- Package: `@metamesh/modeling@0.13.0`.
100
+ Package: `@metamesh/modeling@0.15.0`.
@@ -67,4 +67,4 @@ Native filled section intersection; dimensions cannot be mixed.
67
67
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
68
68
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
69
69
 
70
- Package: `@metamesh/modeling@0.13.0`.
70
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # isEmpty
2
2
 
3
- Checks whether a same-session solid or filled section contains no geometry.
3
+ Checks whether a solid or filled section contains no geometry during host execution.
4
4
 
5
5
  **isEmpty**(`shape`: [`Solid`](Solid.md) \| [`Section`](Section.md)): `boolean`
6
6
 
@@ -36,4 +36,4 @@ Useful after a Boolean operation whose inputs may not overlap; no mesh is extrac
36
36
  - [Section](Section.md)
37
37
  - [Solid](Solid.md)
38
38
 
39
- Package: `@metamesh/modeling@0.13.0`.
39
+ Package: `@metamesh/modeling@0.15.0`.
@@ -40,11 +40,11 @@ readonly [`Solid`](Solid.md)[]
40
40
 
41
41
 
42
42
 
43
- **linearPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `options`: [`LinearPatternOptions`](LinearPatternOptions.md)): readonly [`Section`](Section.md)[]
43
+ **linearPattern**(`source`: [`PatternSource`](PatternSource.md)\<[`Section`](Section.md)\>, `options`: [`LinearPatternOptions`](LinearPatternOptions.md)\<`2`\>): readonly [`Section`](Section.md)[]
44
44
 
45
45
 
46
46
 
47
- Repeats a filled Section; every placement must preserve its XY plane.
47
+ Repeats a filled Section along an XY direction, defaulting to +X.
48
48
 
49
49
  ### Parameters
50
50
 
@@ -56,7 +56,7 @@ Repeats a filled Section; every placement must preserve its XY plane.
56
56
 
57
57
  <a id="options-1"></a>
58
58
 
59
- **`options`** · [`LinearPatternOptions`](LinearPatternOptions.md) · Required
59
+ **`options`** · [`LinearPatternOptions`](LinearPatternOptions.md)\<`2`\> · Required
60
60
 
61
61
 
62
62
 
@@ -77,4 +77,4 @@ readonly [`Section`](Section.md)[]
77
77
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
78
78
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
79
79
 
80
- Package: `@metamesh/modeling@0.13.0`.
80
+ Package: `@metamesh/modeling@0.15.0`.
@@ -134,4 +134,4 @@ Lofts explicit corresponding contours, including holes and collapsed logical slo
134
134
  - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
135
135
  - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
136
136
 
137
- Package: `@metamesh/modeling@0.13.0`.
137
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # matchProfiles
2
2
 
3
- Explicit family matching on a shared physical span grid using session or operation resolution.
3
+ Matches a profile family using operation settings over host resolution and limits. Requires active synchronous model execution. Use Geometry's matchProfiles for standalone preparation.
4
4
 
5
5
  **matchProfiles**(`profiles`: readonly [`Profile`](Profile.md)[], `options?`: [`MatchProfilesOptions`](MatchProfilesOptions.md)): readonly [`CorrespondingProfile`](CorrespondingProfile.md)[]
6
6
 
@@ -39,4 +39,4 @@ readonly [`CorrespondingProfile`](CorrespondingProfile.md)[]
39
39
  - [MatchProfilesOptions](MatchProfilesOptions.md)
40
40
  - [Profile](Profile.md)
41
41
 
42
- Package: `@metamesh/modeling@0.13.0`.
42
+ Package: `@metamesh/modeling@0.15.0`.
@@ -34,4 +34,4 @@ Three-dimensional Minkowski sum.
34
34
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
35
35
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
36
36
 
37
- Package: `@metamesh/modeling@0.13.0`.
37
+ Package: `@metamesh/modeling@0.15.0`.
@@ -0,0 +1,42 @@
1
+ # path2
2
+
3
+ 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.
4
+
5
+ **path2**(`input`: [`Path2Input`](Path2Input.md), `options?`: [`PathOptions`](PathOptions.md)): [`Path2`](Path2-type.md)
6
+
7
+
8
+
9
+ ## Parameters
10
+
11
+ <a id="input"></a>
12
+
13
+ **`input`** · [`Path2Input`](Path2Input.md) · Required
14
+
15
+
16
+
17
+ <a id="options"></a>
18
+
19
+ **`options`** · [`PathOptions`](PathOptions.md) · Optional
20
+
21
+ - [`closed`](PathOptions.md#closed) · `boolean` · Optional
22
+
23
+ Connects the last vertex to the first; closed paths omit the repeated seam. Defaults to false.
24
+
25
+ - [`limits`](PathOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
26
+
27
+ Construction point ceiling; defaults to package sampling limits. Later sampling has its own options.
28
+
29
+
30
+
31
+ ## Returns
32
+
33
+ [`Path2`](Path2-type.md)
34
+
35
+
36
+ ## Related APIs
37
+
38
+ - [Path2](Path2-type.md)
39
+ - [Path2Input](Path2Input.md)
40
+ - [PathOptions](PathOptions.md)
41
+
42
+ Package: `@metamesh/modeling@0.15.0`.
@@ -0,0 +1,42 @@
1
+ # path3
2
+
3
+ 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.
4
+
5
+ **path3**(`input`: [`Path3Input`](Path3Input.md), `options?`: [`PathOptions`](PathOptions.md)): [`Path3`](Path3-type.md)
6
+
7
+
8
+
9
+ ## Parameters
10
+
11
+ <a id="input"></a>
12
+
13
+ **`input`** · [`Path3Input`](Path3Input.md) · Required
14
+
15
+
16
+
17
+ <a id="options"></a>
18
+
19
+ **`options`** · [`PathOptions`](PathOptions.md) · Optional
20
+
21
+ - [`closed`](PathOptions.md#closed) · `boolean` · Optional
22
+
23
+ Connects the last vertex to the first; closed paths omit the repeated seam. Defaults to false.
24
+
25
+ - [`limits`](PathOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
26
+
27
+ Construction point ceiling; defaults to package sampling limits. Later sampling has its own options.
28
+
29
+
30
+
31
+ ## Returns
32
+
33
+ [`Path3`](Path3-type.md)
34
+
35
+
36
+ ## Related APIs
37
+
38
+ - [Path3](Path3-type.md)
39
+ - [Path3Input](Path3Input.md)
40
+ - [PathOptions](PathOptions.md)
41
+
42
+ Package: `@metamesh/modeling@0.15.0`.