@metamesh/modeling 0.14.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 (716) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +25 -10
  3. package/dist/api/engine.d.ts +11 -4
  4. package/dist/api/geometry.d.ts +345 -341
  5. package/dist/api/index.d.ts +262 -144
  6. package/dist/api/text.d.ts +3 -1
  7. package/dist/docs/guides/concepts.md +22 -7
  8. package/dist/docs/guides/fundamentals.md +8 -5
  9. package/dist/docs/guides/hosting.md +21 -11
  10. package/dist/docs/guides/recipes.md +42 -21
  11. package/dist/docs/manifest.json +710 -507
  12. package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
  13. package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
  14. package/dist/docs/reference/engine/GenerationOptions.md +1 -1
  15. package/dist/docs/reference/engine/GeometryResource.md +1 -1
  16. package/dist/docs/reference/engine/ModelDependencies.md +1 -1
  17. package/dist/docs/reference/engine/ModelEngine.md +1 -1
  18. package/dist/docs/reference/engine/ModelEngineOptions.md +4 -8
  19. package/dist/docs/reference/engine/ModelSession.md +1 -1
  20. package/dist/docs/reference/engine/ModelSnapshot.md +20 -9
  21. package/dist/docs/reference/engine/SessionOptions.md +1 -1
  22. package/dist/docs/reference/engine/SnapshotPart.md +2 -2
  23. package/dist/docs/reference/engine/categories/host-lifecycle.md +2 -2
  24. package/dist/docs/reference/engine/createModelEngine.md +3 -3
  25. package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
  26. package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
  27. package/dist/docs/reference/engine/validateModel.md +1 -1
  28. package/dist/docs/reference/engine.md +2 -2
  29. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
  30. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +4 -4
  31. package/dist/docs/reference/geometry/{Anchor3.md → Anchor3-type.md} +1 -1
  32. package/dist/docs/reference/geometry/ArcCurve2.md +5 -5
  33. package/dist/docs/reference/geometry/ArcCurve3.md +5 -5
  34. package/dist/docs/reference/geometry/{AttachTransformOptions.md → AttachOptions.md} +10 -5
  35. package/dist/docs/reference/geometry/AxisAngleRotation3.md +1 -1
  36. package/dist/docs/reference/geometry/Bounds2.md +1 -1
  37. package/dist/docs/reference/geometry/Bounds3.md +1 -1
  38. package/dist/docs/reference/geometry/BoundsFit2.md +1 -1
  39. package/dist/docs/reference/geometry/BoundsFit3.md +1 -1
  40. package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
  41. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +1 -1
  42. package/dist/docs/reference/geometry/BoxAnchorFace.md +1 -1
  43. package/dist/docs/reference/geometry/BoxAnchorOptions.md +1 -1
  44. package/dist/docs/reference/geometry/BoxEdge.md +1 -1
  45. package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
  46. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
  47. package/dist/docs/reference/geometry/BoxOptions.md +8 -8
  48. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
  49. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
  50. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
  51. package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
  52. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
  53. package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -7
  54. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
  55. package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
  56. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
  57. package/dist/docs/reference/geometry/Contour.md +1 -1
  58. package/dist/docs/reference/geometry/ContourCurve.md +1 -1
  59. package/dist/docs/reference/geometry/ContourPoint.md +1 -1
  60. package/dist/docs/reference/geometry/ContourSegment.md +1 -1
  61. package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
  62. package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
  63. package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
  64. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
  65. package/dist/docs/reference/geometry/CubicBezierCurve2.md +1 -1
  66. package/dist/docs/reference/geometry/CubicBezierCurve3.md +1 -1
  67. package/dist/docs/reference/geometry/Curve2.md +1 -1
  68. package/dist/docs/reference/geometry/Curve3.md +1 -1
  69. package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -3
  70. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +1 -1
  71. package/dist/docs/reference/geometry/CylinderAnchorFace.md +1 -1
  72. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +3 -3
  73. package/dist/docs/reference/geometry/CylinderOptions.md +3 -3
  74. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +3 -3
  75. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
  76. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
  77. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +3 -3
  78. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
  79. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
  80. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
  81. package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -6
  82. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
  83. package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
  84. package/dist/docs/reference/geometry/EllipseContourOptions.md +1 -1
  85. package/dist/docs/reference/geometry/EndTreatments.md +1 -1
  86. package/dist/docs/reference/geometry/ExtrudeOptions.md +6 -6
  87. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -5
  88. package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
  89. package/dist/docs/reference/geometry/Frame3.md +1 -1
  90. package/dist/docs/reference/geometry/GeometryError.md +1 -1
  91. package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
  92. package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
  93. package/dist/docs/reference/geometry/GeometryResolution.md +5 -5
  94. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
  95. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
  96. package/dist/docs/reference/geometry/GridPatternOptions.md +9 -3
  97. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
  98. package/dist/docs/reference/geometry/HeightfieldOptions.md +1 -1
  99. package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
  100. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -5
  101. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +6 -6
  102. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
  103. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +1 -1
  104. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +6 -6
  105. package/dist/docs/reference/geometry/LineCurve2.md +1 -1
  106. package/dist/docs/reference/geometry/LineCurve3.md +1 -1
  107. package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -5
  108. package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
  109. package/dist/docs/reference/geometry/LoftMeshStation.md +4 -4
  110. package/dist/docs/reference/geometry/LoftOptions.md +1 -1
  111. package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
  112. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
  113. package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
  114. package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
  115. package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
  116. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
  117. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
  118. package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
  119. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
  120. package/dist/docs/reference/geometry/Path2-type.md +192 -0
  121. package/dist/docs/reference/geometry/Path2Data.md +14 -0
  122. package/dist/docs/reference/geometry/Path2Input.md +15 -0
  123. package/dist/docs/reference/geometry/Path3-type.md +192 -0
  124. package/dist/docs/reference/geometry/Path3Data.md +14 -0
  125. package/dist/docs/reference/geometry/Path3Input.md +15 -0
  126. package/dist/docs/reference/geometry/PathFrame.md +1 -1
  127. package/dist/docs/reference/geometry/PathLocation.md +65 -0
  128. package/dist/docs/reference/geometry/PathNormalGuide.md +4 -3
  129. package/dist/docs/reference/geometry/PathOptions.md +34 -0
  130. package/dist/docs/reference/geometry/PathPatternOptions.md +3 -3
  131. package/dist/docs/reference/geometry/PathPlacement.md +1 -1
  132. package/dist/docs/reference/geometry/PathResamplingOptions.md +80 -0
  133. package/dist/docs/reference/geometry/Pivot2Options.md +1 -1
  134. package/dist/docs/reference/geometry/Pivot3Options.md +1 -1
  135. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
  136. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +22 -22
  137. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
  138. package/dist/docs/reference/geometry/PlanarPatchQuality.md +1 -1
  139. package/dist/docs/reference/geometry/PolygonData.md +1 -1
  140. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +4 -4
  141. package/dist/docs/reference/geometry/PrimitiveAttachment.md +31 -0
  142. package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +104 -0
  143. package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
  144. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
  145. package/dist/docs/reference/geometry/Profile.md +1 -1
  146. package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
  147. package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
  148. package/dist/docs/reference/geometry/ProfileSpan2.md +2 -2
  149. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +1 -1
  150. package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
  151. package/dist/docs/reference/geometry/RackPitchSpec.md +5 -5
  152. package/dist/docs/reference/geometry/RadialPatternOptions.md +17 -22
  153. package/dist/docs/reference/geometry/RadialSizing.md +1 -1
  154. package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
  155. package/dist/docs/reference/geometry/RectangleContourOptions.md +1 -1
  156. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
  157. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
  158. package/dist/docs/reference/geometry/RectangleProfileOptions.md +1 -1
  159. package/dist/docs/reference/geometry/RegionData.md +1 -1
  160. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
  161. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
  162. package/dist/docs/reference/geometry/RevolveOptions.md +9 -4
  163. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
  164. package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
  165. package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
  166. package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
  167. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
  168. package/dist/docs/reference/geometry/SampledCurve2.md +1 -1
  169. package/dist/docs/reference/geometry/SampledCurve3.md +1 -1
  170. package/dist/docs/reference/geometry/SampledThreadHelices.md +3 -3
  171. package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
  172. package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
  173. package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
  174. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
  175. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +3 -3
  176. package/dist/docs/reference/geometry/SphereOptions.md +3 -3
  177. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
  178. package/dist/docs/reference/geometry/StrokeCap.md +7 -0
  179. package/dist/docs/reference/geometry/StrokeJoin.md +7 -0
  180. package/dist/docs/reference/geometry/{StrokePathRegionOptions.md → StrokeOptions.md} +7 -7
  181. package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
  182. package/dist/docs/reference/geometry/SvgRegionPreflight.md +1 -1
  183. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +13 -13
  184. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +11 -11
  185. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +9 -9
  186. package/dist/docs/reference/geometry/SweepOptions.md +6 -6
  187. package/dist/docs/reference/geometry/SweepOrientation.md +7 -7
  188. package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
  189. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -5
  190. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
  191. package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
  192. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
  193. package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
  194. package/dist/docs/reference/geometry/ThreadHelixOptions.md +3 -3
  195. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
  196. package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
  197. package/dist/docs/reference/geometry/{ThreadProfile.md → ThreadProfile-type.md} +1 -1
  198. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
  199. package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
  200. package/dist/docs/reference/geometry/ThreadRole.md +1 -1
  201. package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
  202. package/dist/docs/reference/geometry/ThreadedNutOptions.md +6 -6
  203. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
  204. package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
  205. package/dist/docs/reference/geometry/ThreadedRodOptions.md +6 -6
  206. package/dist/docs/reference/geometry/TorusOptions.md +8 -8
  207. package/dist/docs/reference/geometry/Transform2-type.md +1 -1
  208. package/dist/docs/reference/geometry/Transform2Input.md +1 -1
  209. package/dist/docs/reference/geometry/Transform2Matrix.md +1 -1
  210. package/dist/docs/reference/geometry/Transform3-type.md +1 -1
  211. package/dist/docs/reference/geometry/Transform3Input.md +1 -1
  212. package/dist/docs/reference/geometry/Transform3Matrix.md +1 -1
  213. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -4
  214. package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
  215. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +2 -2
  216. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
  217. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
  218. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +3 -3
  219. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
  220. package/dist/docs/reference/geometry/TriangleMeshSignature.md +2 -2
  221. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +3 -3
  222. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
  223. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
  224. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
  225. package/dist/docs/reference/geometry/TubeOptions.md +8 -8
  226. package/dist/docs/reference/geometry/Vector2-type.md +1 -1
  227. package/dist/docs/reference/geometry/Vector2Input.md +1 -1
  228. package/dist/docs/reference/geometry/Vector2Tuple.md +1 -1
  229. package/dist/docs/reference/geometry/Vector3-type.md +1 -1
  230. package/dist/docs/reference/geometry/Vector3Input.md +1 -1
  231. package/dist/docs/reference/geometry/Vector3Tuple.md +1 -1
  232. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +3 -3
  233. package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
  234. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
  235. package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
  236. package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
  237. package/dist/docs/reference/geometry/add2.md +1 -1
  238. package/dist/docs/reference/geometry/add3.md +1 -1
  239. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
  240. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +2 -2
  241. package/dist/docs/reference/geometry/{createAnchor3.md → anchor3.md} +9 -9
  242. package/dist/docs/reference/geometry/anchorFrame3.md +5 -5
  243. package/dist/docs/reference/geometry/applyTransformDirection3.md +1 -1
  244. package/dist/docs/reference/geometry/applyTransformPoint3.md +1 -1
  245. package/dist/docs/reference/geometry/{attachTransform.md → attachmentTransform3.md} +13 -13
  246. package/dist/docs/reference/geometry/boundsCenter.md +1 -1
  247. package/dist/docs/reference/geometry/boundsFromSize.md +1 -1
  248. package/dist/docs/reference/geometry/boundsSize.md +1 -1
  249. package/dist/docs/reference/geometry/boxAnchor3.md +4 -4
  250. package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
  251. package/dist/docs/reference/geometry/categories/curves-paths.md +15 -13
  252. package/dist/docs/reference/geometry/categories/mechanical.md +6 -6
  253. package/dist/docs/reference/geometry/categories/meshes.md +3 -4
  254. package/dist/docs/reference/geometry/categories/pattern-placement.md +6 -6
  255. package/dist/docs/reference/geometry/categories/primitive-options.md +4 -4
  256. package/dist/docs/reference/geometry/categories/profiles-regions.md +2 -3
  257. package/dist/docs/reference/geometry/categories/resolution-errors.md +1 -1
  258. package/dist/docs/reference/geometry/categories/transforms-math.md +5 -5
  259. package/dist/docs/reference/geometry/categories/vector-import.md +5 -5
  260. package/dist/docs/reference/geometry/circleContour.md +1 -1
  261. package/dist/docs/reference/geometry/closeToAxis.md +1 -1
  262. package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
  263. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -5
  264. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -5
  265. package/dist/docs/reference/geometry/composeTransform3.md +1 -1
  266. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +10 -6
  267. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -7
  268. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +1 -1
  269. package/dist/docs/reference/geometry/{createTriangleMeshSignature.md → computeTriangleMeshSignature.md} +4 -4
  270. package/dist/docs/reference/geometry/containsBounds.md +1 -1
  271. package/dist/docs/reference/geometry/contourContainsPoint.md +1 -1
  272. package/dist/docs/reference/geometry/cross2.md +1 -1
  273. package/dist/docs/reference/geometry/cross3.md +1 -1
  274. package/dist/docs/reference/geometry/cylinderAnchor3.md +5 -5
  275. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
  276. package/dist/docs/reference/geometry/distance2.md +1 -1
  277. package/dist/docs/reference/geometry/distance3.md +1 -1
  278. package/dist/docs/reference/geometry/distributeAlongPath.md +8 -6
  279. package/dist/docs/reference/geometry/dot2.md +1 -1
  280. package/dist/docs/reference/geometry/dot3.md +1 -1
  281. package/dist/docs/reference/geometry/ellipseContour.md +1 -1
  282. package/dist/docs/reference/geometry/eulerTransform3.md +1 -1
  283. package/dist/docs/reference/geometry/extrudeMesh.md +8 -8
  284. package/dist/docs/reference/geometry/fitBounds.md +1 -1
  285. package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
  286. package/dist/docs/reference/geometry/frameTransform3.md +1 -1
  287. package/dist/docs/reference/geometry/{getMetricClearanceHole.md → getMetricClearanceHoleDiameter.md} +3 -3
  288. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
  289. package/dist/docs/reference/geometry/gridPatternTransforms.md +2 -2
  290. package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
  291. package/dist/docs/reference/geometry/{buildHelicalThreadRidgeMesh.md → helicalThreadRidgeMesh.md} +5 -5
  292. package/dist/docs/reference/geometry/{buildHelicalThreadSolidMesh.md → helicalThreadSolidMesh.md} +5 -5
  293. package/dist/docs/reference/geometry/inverseTransform3.md +1 -1
  294. package/dist/docs/reference/geometry/isGeometryError.md +1 -1
  295. package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
  296. package/dist/docs/reference/geometry/layoutRow.md +1 -1
  297. package/dist/docs/reference/geometry/length2.md +1 -1
  298. package/dist/docs/reference/geometry/length3.md +1 -1
  299. package/dist/docs/reference/geometry/lerp2.md +1 -1
  300. package/dist/docs/reference/geometry/lerp3.md +1 -1
  301. package/dist/docs/reference/geometry/linearPatternTransforms.md +2 -2
  302. package/dist/docs/reference/geometry/loftMesh.md +2 -1
  303. package/dist/docs/reference/geometry/matchProfiles.md +1 -1
  304. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +1 -1
  305. package/dist/docs/reference/geometry/meshBounds.md +1 -1
  306. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +3 -3
  307. package/dist/docs/reference/geometry/normalize2.md +1 -1
  308. package/dist/docs/reference/geometry/normalize3.md +1 -1
  309. package/dist/docs/reference/geometry/normalizeContour.md +1 -1
  310. package/dist/docs/reference/geometry/normalizePolygon.md +1 -1
  311. package/dist/docs/reference/geometry/normalizeRegion.md +1 -1
  312. package/dist/docs/reference/geometry/optimizePlanarPatches.md +11 -11
  313. package/dist/docs/reference/geometry/path2.md +42 -0
  314. package/dist/docs/reference/geometry/path3.md +42 -0
  315. package/dist/docs/reference/geometry/pathPatternTransforms.md +6 -6
  316. package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
  317. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +3 -3
  318. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +3 -3
  319. package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
  320. package/dist/docs/reference/geometry/preflightThreadedNut.md +3 -3
  321. package/dist/docs/reference/geometry/preflightThreadedRod.md +3 -3
  322. package/dist/docs/reference/geometry/projectOntoPlane3.md +1 -1
  323. package/dist/docs/reference/geometry/radialPatternTransforms.md +1 -17
  324. package/dist/docs/reference/geometry/rectangleContour.md +1 -1
  325. package/dist/docs/reference/geometry/rectangleProfile.md +1 -1
  326. package/dist/docs/reference/geometry/regionArea.md +1 -1
  327. package/dist/docs/reference/geometry/regionBounds.md +1 -1
  328. package/dist/docs/reference/geometry/regularPolygonContour.md +2 -2
  329. package/dist/docs/reference/geometry/resamplePolyline2.md +2 -2
  330. package/dist/docs/reference/geometry/resamplePolyline3.md +2 -2
  331. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +4 -4
  332. package/dist/docs/reference/geometry/resolveArcSegments.md +4 -4
  333. package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
  334. package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
  335. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
  336. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +3 -3
  337. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
  338. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
  339. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
  340. package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
  341. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +4 -4
  342. package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
  343. package/dist/docs/reference/geometry/revolveMesh.md +10 -10
  344. package/dist/docs/reference/geometry/rotate2.md +1 -1
  345. package/dist/docs/reference/geometry/rotationTransform3.md +1 -1
  346. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +6 -4
  347. package/dist/docs/reference/geometry/sampleContour.md +3 -3
  348. package/dist/docs/reference/geometry/sampleCurve2.md +3 -3
  349. package/dist/docs/reference/geometry/sampleCurve3.md +2 -2
  350. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
  351. package/dist/docs/reference/geometry/sampleHelix.md +2 -2
  352. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
  353. package/dist/docs/reference/geometry/sampleRackToothPath.md +4 -4
  354. package/dist/docs/reference/geometry/sampleSideProfile.md +3 -3
  355. package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
  356. package/dist/docs/reference/geometry/sampleThreadHelices.md +2 -2
  357. package/dist/docs/reference/geometry/scale2.md +1 -1
  358. package/dist/docs/reference/geometry/scale3.md +1 -1
  359. package/dist/docs/reference/geometry/scaleTransform3.md +1 -1
  360. package/dist/docs/reference/geometry/signedContourArea.md +1 -1
  361. package/dist/docs/reference/geometry/starContour.md +1 -1
  362. package/dist/docs/reference/geometry/strokeRegionData.md +63 -0
  363. package/dist/docs/reference/geometry/subtract2.md +1 -1
  364. package/dist/docs/reference/geometry/subtract3.md +1 -1
  365. package/dist/docs/reference/geometry/sweepMesh.md +9 -9
  366. package/dist/docs/reference/geometry/{createThreadProfile.md → threadProfile.md} +6 -6
  367. package/dist/docs/reference/geometry/transform2.md +1 -1
  368. package/dist/docs/reference/geometry/transform3.md +1 -1
  369. package/dist/docs/reference/geometry/transformDeterminant3.md +1 -1
  370. package/dist/docs/reference/geometry/transformRegionData.md +1 -1
  371. package/dist/docs/reference/geometry/transformTriangleMesh.md +6 -6
  372. package/dist/docs/reference/geometry/translationTransform3.md +1 -1
  373. package/dist/docs/reference/geometry/triangulateContour.md +1 -1
  374. package/dist/docs/reference/geometry/validateSolidMesh.md +2 -2
  375. package/dist/docs/reference/geometry/validateTransform3.md +1 -1
  376. package/dist/docs/reference/geometry/validateTriangleMesh.md +1 -1
  377. package/dist/docs/reference/geometry/vector2.md +1 -1
  378. package/dist/docs/reference/geometry/vector3.md +1 -1
  379. package/dist/docs/reference/geometry.md +2 -2
  380. package/dist/docs/reference/model/Anchor3.md +1 -1
  381. package/dist/docs/reference/model/AttachOptions.md +10 -5
  382. package/dist/docs/reference/model/Bounds2.md +1 -1
  383. package/dist/docs/reference/model/Bounds3.md +1 -1
  384. package/dist/docs/reference/model/BoxEdge.md +1 -1
  385. package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
  386. package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
  387. package/dist/docs/reference/model/BoxOptions.md +8 -8
  388. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
  389. package/dist/docs/reference/model/CircleContourOptions.md +1 -1
  390. package/dist/docs/reference/model/CircleOptions.md +3 -3
  391. package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
  392. package/dist/docs/reference/model/Computed.md +1 -1
  393. package/dist/docs/reference/model/ComputedValue.md +1 -1
  394. package/dist/docs/reference/model/Contour.md +1 -1
  395. package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
  396. package/dist/docs/reference/model/CorrespondingContour.md +1 -1
  397. package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
  398. package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
  399. package/dist/docs/reference/model/CylinderOptions.md +3 -3
  400. package/dist/docs/reference/model/DiagnosticOptions.md +1 -1
  401. package/dist/docs/reference/model/EdgeTreatment.md +1 -1
  402. package/dist/docs/reference/model/EllipseContourOptions.md +1 -1
  403. package/dist/docs/reference/model/EllipseOptions.md +3 -3
  404. package/dist/docs/reference/model/EndTreatments.md +1 -1
  405. package/dist/docs/reference/model/ExtrudeOptions.md +6 -6
  406. package/dist/docs/reference/model/FinalizedModel.md +18 -8
  407. package/dist/docs/reference/model/FinalizedPart.md +1 -1
  408. package/dist/docs/reference/model/Frame3.md +1 -1
  409. package/dist/docs/reference/model/GenerateCallback.md +1 -1
  410. package/dist/docs/reference/model/GenerateContext.md +1 -1
  411. package/dist/docs/reference/model/GeneratedPart.md +1 -1
  412. package/dist/docs/reference/model/GenerationDiagnostic.md +1 -1
  413. package/dist/docs/reference/model/GenerationError.md +1 -1
  414. package/dist/docs/reference/model/GeometryResolution.md +5 -5
  415. package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
  416. package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
  417. package/dist/docs/reference/model/GridPatternOptions.md +9 -3
  418. package/dist/docs/reference/model/HeightfieldOptions.md +1 -1
  419. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +3 -3
  420. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +1 -1
  421. package/dist/docs/reference/model/HullOptions.md +5 -5
  422. package/dist/docs/reference/model/ImmutableBuffer-type.md +1 -1
  423. package/dist/docs/reference/model/ImmutableTriangleMesh.md +1 -1
  424. package/dist/docs/reference/model/ImplicitOptions.md +1 -1
  425. package/dist/docs/reference/model/InternalThreadCutterOptions.md +4 -4
  426. package/dist/docs/reference/model/LinearPatternOptions.md +12 -5
  427. package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
  428. package/dist/docs/reference/model/LoftOptions.md +1 -1
  429. package/dist/docs/reference/model/LoftPlacement.md +1 -1
  430. package/dist/docs/reference/model/LoftStation.md +3 -3
  431. package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
  432. package/dist/docs/reference/model/ModelProgram.md +1 -1
  433. package/dist/docs/reference/model/ModelingLimits.md +1 -1
  434. package/dist/docs/reference/model/NumericArray.md +1 -1
  435. package/dist/docs/reference/model/PartGeometry.md +1 -1
  436. package/dist/docs/reference/model/PartOptions.md +1 -1
  437. package/dist/docs/reference/model/Path2-type.md +192 -0
  438. package/dist/docs/reference/model/Path2Data.md +14 -0
  439. package/dist/docs/reference/model/Path2Input.md +15 -0
  440. package/dist/docs/reference/model/Path3-type.md +192 -0
  441. package/dist/docs/reference/model/Path3Data.md +14 -0
  442. package/dist/docs/reference/model/Path3Input.md +15 -0
  443. package/dist/docs/reference/model/PathLocation.md +65 -0
  444. package/dist/docs/reference/model/PathNormalGuide.md +4 -3
  445. package/dist/docs/reference/model/PathOptions.md +34 -0
  446. package/dist/docs/reference/model/PathPatternOptions.md +3 -3
  447. package/dist/docs/reference/model/PathResamplingOptions.md +79 -0
  448. package/dist/docs/reference/model/PatternSource.md +1 -1
  449. package/dist/docs/reference/model/Pivot2Options.md +1 -1
  450. package/dist/docs/reference/model/Pivot3Options.md +1 -1
  451. package/dist/docs/reference/model/PlaneOptions.md +3 -3
  452. package/dist/docs/reference/model/PolygonData.md +1 -1
  453. package/dist/docs/reference/model/PolygonOptions.md +8 -8
  454. package/dist/docs/reference/model/{PrimitivePlacement.md → PrimitiveAttachment.md} +7 -7
  455. package/dist/docs/reference/model/{PrimitivePlacementOptions.md → PrimitiveAttachmentOptions.md} +41 -20
  456. package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
  457. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
  458. package/dist/docs/reference/model/Profile.md +1 -1
  459. package/dist/docs/reference/model/ProfileComponent2.md +1 -1
  460. package/dist/docs/reference/model/ProfileContour2.md +1 -1
  461. package/dist/docs/reference/model/ProfileSpan2.md +2 -2
  462. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +1 -1
  463. package/dist/docs/reference/model/RadialPatternOptions.md +17 -22
  464. package/dist/docs/reference/model/RadialSizing.md +1 -1
  465. package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
  466. package/dist/docs/reference/model/RectangleContourOptions.md +1 -1
  467. package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
  468. package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
  469. package/dist/docs/reference/model/RectangleOptions.md +8 -8
  470. package/dist/docs/reference/model/RegionData.md +1 -1
  471. package/dist/docs/reference/model/RegularPolygonOptions.md +5 -5
  472. package/dist/docs/reference/model/RevolveOptions.md +9 -4
  473. package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
  474. package/dist/docs/reference/model/Section.md +12 -11
  475. package/dist/docs/reference/model/SectionHullOptions.md +5 -5
  476. package/dist/docs/reference/model/SectionInspection.md +7 -7
  477. package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
  478. package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
  479. package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
  480. package/dist/docs/reference/model/Solid.md +23 -6
  481. package/dist/docs/reference/model/SolidInspection.md +4 -4
  482. package/dist/docs/reference/model/{SolidRayHit.md → SolidSegmentHit.md} +3 -3
  483. package/dist/docs/reference/model/SphereOptions.md +3 -3
  484. package/dist/docs/reference/model/StarOptions.md +10 -10
  485. package/dist/docs/reference/model/{StrokePathCap.md → StrokeCap.md} +3 -3
  486. package/dist/docs/reference/model/{StrokePathJoin.md → StrokeJoin.md} +3 -3
  487. package/dist/docs/reference/model/StrokeOptions.md +6 -6
  488. package/dist/docs/reference/model/SvgOrigin.md +1 -1
  489. package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
  490. package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
  491. package/dist/docs/reference/model/SweepOptions.md +6 -6
  492. package/dist/docs/reference/model/SweepOrientation.md +7 -7
  493. package/dist/docs/reference/model/TextSectionOptions.md +1 -1
  494. package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
  495. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
  496. package/dist/docs/reference/model/ThreadHandedness.md +1 -1
  497. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
  498. package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
  499. package/dist/docs/reference/model/ThreadProfile.md +1 -1
  500. package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
  501. package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
  502. package/dist/docs/reference/model/ThreadedNutOptions.md +4 -4
  503. package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
  504. package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
  505. package/dist/docs/reference/model/ThreadedRodOptions.md +4 -4
  506. package/dist/docs/reference/model/TorusOptions.md +8 -8
  507. package/dist/docs/reference/model/Transform2-type.md +1 -1
  508. package/dist/docs/reference/model/Transform2Input.md +1 -1
  509. package/dist/docs/reference/model/Transform2Matrix.md +1 -1
  510. package/dist/docs/reference/model/Transform3-type.md +1 -1
  511. package/dist/docs/reference/model/Transform3Input.md +1 -1
  512. package/dist/docs/reference/model/Transform3Matrix.md +1 -1
  513. package/dist/docs/reference/model/TriangleMesh.md +1 -1
  514. package/dist/docs/reference/model/TriangleMeshAnalysis.md +2 -2
  515. package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
  516. package/dist/docs/reference/model/TubeOptions.md +8 -8
  517. package/dist/docs/reference/model/Vector2-type.md +1 -1
  518. package/dist/docs/reference/model/Vector2Input.md +1 -1
  519. package/dist/docs/reference/model/Vector2Tuple.md +1 -1
  520. package/dist/docs/reference/model/Vector3-type.md +1 -1
  521. package/dist/docs/reference/model/Vector3Input.md +1 -1
  522. package/dist/docs/reference/model/Vector3Tuple.md +1 -1
  523. package/dist/docs/reference/model/VectorTextLayout.md +1 -1
  524. package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
  525. package/dist/docs/reference/model/anchor.md +1 -1
  526. package/dist/docs/reference/model/box.md +3 -3
  527. package/dist/docs/reference/model/castSegment.md +40 -0
  528. package/dist/docs/reference/model/categories/boolean-operations.md +1 -1
  529. package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -1
  530. package/dist/docs/reference/model/categories/contracts.md +2 -2
  531. package/dist/docs/reference/model/categories/core-values-errors.md +1 -1
  532. package/dist/docs/reference/model/categories/explicit-profiles.md +2 -2
  533. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +2 -2
  534. package/dist/docs/reference/model/categories/generation.md +1 -1
  535. package/dist/docs/reference/model/categories/inspection.md +4 -5
  536. package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
  537. package/dist/docs/reference/model/categories/paths.md +33 -0
  538. package/dist/docs/reference/model/categories/primitives.md +2 -2
  539. package/dist/docs/reference/model/categories/resolution.md +2 -2
  540. package/dist/docs/reference/model/categories/sections.md +3 -4
  541. package/dist/docs/reference/model/categories/threads.md +5 -5
  542. package/dist/docs/reference/model/categories/transforms-placement.md +8 -8
  543. package/dist/docs/reference/model/circle.md +1 -1
  544. package/dist/docs/reference/model/components.md +6 -6
  545. package/dist/docs/reference/model/compose.md +1 -1
  546. package/dist/docs/reference/model/cylinder.md +1 -1
  547. package/dist/docs/reference/model/distance.md +1 -1
  548. package/dist/docs/reference/model/ellipse.md +1 -1
  549. package/dist/docs/reference/model/extrude.md +3 -3
  550. package/dist/docs/reference/model/generate.md +1 -1
  551. package/dist/docs/reference/model/gridPattern.md +4 -4
  552. package/dist/docs/reference/model/heightfield.md +1 -1
  553. package/dist/docs/reference/model/hull.md +1 -1
  554. package/dist/docs/reference/model/immutableBuffer.md +1 -1
  555. package/dist/docs/reference/model/immutableMesh.md +1 -1
  556. package/dist/docs/reference/model/implicit.md +1 -1
  557. package/dist/docs/reference/model/inspectSection.md +1 -1
  558. package/dist/docs/reference/model/inspectSolid.md +1 -1
  559. package/dist/docs/reference/model/internalThreadCutter.md +4 -4
  560. package/dist/docs/reference/model/intersect.md +1 -1
  561. package/dist/docs/reference/model/isEmpty.md +1 -1
  562. package/dist/docs/reference/model/linearPattern.md +4 -4
  563. package/dist/docs/reference/model/loft.md +1 -1
  564. package/dist/docs/reference/model/matchProfiles.md +2 -2
  565. package/dist/docs/reference/model/minkowskiSum.md +1 -1
  566. package/dist/docs/reference/model/path2.md +42 -0
  567. package/dist/docs/reference/model/path3.md +42 -0
  568. package/dist/docs/reference/model/pathPattern.md +13 -12
  569. package/dist/docs/reference/model/polygon.md +4 -4
  570. package/dist/docs/reference/model/preflightInternalThreadCutter.md +3 -3
  571. package/dist/docs/reference/model/preflightThreadedNut.md +3 -3
  572. package/dist/docs/reference/model/preflightThreadedRod.md +3 -3
  573. package/dist/docs/reference/model/radialPattern.md +5 -37
  574. package/dist/docs/reference/model/rectangle.md +3 -3
  575. package/dist/docs/reference/model/regularPolygon.md +1 -1
  576. package/dist/docs/reference/model/revolve.md +5 -4
  577. package/dist/docs/reference/model/solidFromMesh.md +1 -1
  578. package/dist/docs/reference/model/sphere.md +1 -1
  579. package/dist/docs/reference/model/split.md +1 -1
  580. package/dist/docs/reference/model/splitByPlane.md +1 -1
  581. package/dist/docs/reference/model/star.md +4 -4
  582. package/dist/docs/reference/model/stroke.md +8 -8
  583. package/dist/docs/reference/model/svgPathSection.md +1 -1
  584. package/dist/docs/reference/model/svgSection.md +1 -1
  585. package/dist/docs/reference/model/sweep.md +7 -7
  586. package/dist/docs/reference/model/textSection.md +1 -1
  587. package/dist/docs/reference/model/threadRidge.md +2 -2
  588. package/dist/docs/reference/model/threadedNut.md +4 -4
  589. package/dist/docs/reference/model/threadedRod.md +4 -4
  590. package/dist/docs/reference/model/torus.md +3 -3
  591. package/dist/docs/reference/model/transform2.md +1 -1
  592. package/dist/docs/reference/model/transform3.md +1 -1
  593. package/dist/docs/reference/model/tube.md +3 -3
  594. package/dist/docs/reference/model/union.md +1 -1
  595. package/dist/docs/reference/model/vector2.md +1 -1
  596. package/dist/docs/reference/model/vector3.md +1 -1
  597. package/dist/docs/reference/model.md +3 -2
  598. package/dist/docs/reference/text/Bounds2.md +1 -1
  599. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
  600. package/dist/docs/reference/text/Vector2Tuple.md +1 -1
  601. package/dist/docs/reference/text/VectorFont.md +2 -2
  602. package/dist/docs/reference/text/VectorFontOptions.md +1 -1
  603. package/dist/docs/reference/text/VectorTextArcBaseline.md +3 -3
  604. package/dist/docs/reference/text/VectorTextLayout.md +1 -1
  605. package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
  606. package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
  607. package/dist/docs/reference/text/VectorTextOptions.md +1 -1
  608. package/dist/docs/reference/text/categories/font-preparation.md +3 -3
  609. package/dist/docs/reference/text/prepareVectorFont.md +2 -2
  610. package/dist/docs/reference/text.md +1 -1
  611. package/dist/engine/construction-operations.js +31 -14
  612. package/dist/engine/execution.js +39 -8
  613. package/dist/engine/extrusion-finishing.js +1 -1
  614. package/dist/engine/index.js +6 -1
  615. package/dist/engine/inspection-operations.js +13 -11
  616. package/dist/engine/loft-operations.js +35 -14
  617. package/dist/engine/model-summary.js +8 -5
  618. package/dist/engine/native/material-components.js +305 -0
  619. package/dist/engine/native/regions.js +2 -1
  620. package/dist/engine/native/threads.js +3 -3
  621. package/dist/engine/native/transforms.js +5 -7
  622. package/dist/engine/operation-environment.js +2 -2
  623. package/dist/engine/pattern-operations.js +1 -1
  624. package/dist/engine/placement.js +2 -2
  625. package/dist/engine/primitive-anchors.js +17 -17
  626. package/dist/engine/primitive-operations.js +1 -1
  627. package/dist/engine/primitive-profiles.js +7 -7
  628. package/dist/engine/profile-mesh.js +7 -7
  629. package/dist/engine/recipe-realization.js +6 -0
  630. package/dist/engine/section-operations.js +33 -8
  631. package/dist/engine/session-snapshot.js +14 -4
  632. package/dist/engine/session.js +10 -5
  633. package/dist/engine/shape-anchors.js +3 -3
  634. package/dist/engine/transform-operations.js +24 -24
  635. package/dist/geometry/anchors.js +40 -33
  636. package/dist/geometry/curves/sampling.js +14 -14
  637. package/dist/geometry/edge-finishing.js +1 -1
  638. package/dist/geometry/extrusion.js +13 -16
  639. package/dist/geometry/index.js +9 -10
  640. package/dist/geometry/loft/loft-simple-mesh.js +6 -6
  641. package/dist/geometry/loft/loft.js +22 -13
  642. package/dist/geometry/math/immutable-value.js +1 -1
  643. package/dist/geometry/mechanical/gear-motion.js +3 -3
  644. package/dist/geometry/mechanical/gears.js +38 -38
  645. package/dist/geometry/mechanical/index.js +3 -3
  646. package/dist/geometry/mechanical/standards.js +1 -1
  647. package/dist/geometry/mechanical/thread-helices.js +2 -3
  648. package/dist/geometry/mechanical/thread-mesh-plan.js +4 -5
  649. package/dist/geometry/mechanical/thread-mesh.js +7 -7
  650. package/dist/geometry/mechanical/thread-profiles.js +5 -5
  651. package/dist/geometry/mechanical/thread-solids.js +2 -2
  652. package/dist/geometry/mechanical/thread-surface.js +1 -1
  653. package/dist/geometry/mechanical/threads.js +8 -8
  654. package/dist/geometry/mesh/mesh-planar.js +25 -27
  655. package/dist/geometry/mesh/mesh-quality.js +5 -5
  656. package/dist/geometry/mesh/mesh-signature.js +13 -13
  657. package/dist/geometry/mesh/mesh-solid.js +7 -7
  658. package/dist/geometry/mesh/mesh.js +4 -15
  659. package/dist/geometry/paths/closest-point.js +8 -19
  660. package/dist/geometry/paths/frames.js +41 -11
  661. package/dist/geometry/paths/helix.js +16 -6
  662. package/dist/geometry/paths/path-value.js +252 -0
  663. package/dist/geometry/paths/planar.js +36 -23
  664. package/dist/geometry/paths/resampling.js +27 -5
  665. package/dist/geometry/patterns/placements.js +100 -27
  666. package/dist/geometry/patterns.js +2 -2
  667. package/dist/geometry/polygon-clipping.js +17 -0
  668. package/dist/geometry/profiles/contour.js +6 -6
  669. package/dist/geometry/profiles/matched.js +4 -4
  670. package/dist/geometry/profiles/profiles.js +4 -4
  671. package/dist/geometry/profiles/rectangle.js +4 -4
  672. package/dist/geometry/profiles/side-profile.js +7 -7
  673. package/dist/geometry/profiles/span-sampling.js +1 -1
  674. package/dist/geometry/resolution.js +34 -34
  675. package/dist/geometry/revolve/revolve-mesh.js +12 -7
  676. package/dist/geometry/stroke-path.js +12 -27
  677. package/dist/geometry/svg/fill.js +7 -21
  678. package/dist/geometry/svg-import.js +23 -23
  679. package/dist/geometry/sweeps/options.js +5 -4
  680. package/dist/geometry/sweeps/orientation.js +5 -5
  681. package/dist/geometry/sweeps/stations.js +10 -10
  682. package/dist/geometry/sweeps/sweep-closed.js +2 -2
  683. package/dist/geometry/sweeps/sweep-mesh.js +9 -3
  684. package/dist/geometry/sweeps/sweep-open.js +1 -1
  685. package/dist/geometry/sweeps/validation.js +4 -7
  686. package/dist/geometry/transform-geometry.js +7 -14
  687. package/dist/index.js +1 -0
  688. package/dist/model/execution-binding.js +3 -3
  689. package/dist/model/geometry-recipes.js +1 -1
  690. package/dist/model/immutable-generation-data.js +66 -6
  691. package/dist/model/operations.js +25 -26
  692. package/dist/model/recipe-declaration.js +13 -7
  693. package/dist/model/shape-handles.js +2 -1
  694. package/dist/text/index.js +15 -9
  695. package/dist/text/vector-text-layout.js +31 -26
  696. package/package.json +1 -1
  697. package/dist/docs/reference/geometry/ClosestPointOnPathOptions.md +0 -34
  698. package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +0 -65
  699. package/dist/docs/reference/geometry/Path2.md +0 -14
  700. package/dist/docs/reference/geometry/Path3.md +0 -14
  701. package/dist/docs/reference/geometry/PrimitivePlacement.md +0 -31
  702. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +0 -83
  703. package/dist/docs/reference/geometry/StrokePathCap.md +0 -7
  704. package/dist/docs/reference/geometry/StrokePathJoin.md +0 -7
  705. package/dist/docs/reference/geometry/closestPointOnPath.md +0 -110
  706. package/dist/docs/reference/geometry/cumulativePathLengths.md +0 -33
  707. package/dist/docs/reference/geometry/measureTriangleMesh.md +0 -55
  708. package/dist/docs/reference/geometry/pathLength.md +0 -33
  709. package/dist/docs/reference/geometry/strokePathRegion.md +0 -63
  710. package/dist/docs/reference/geometry/transformContour.md +0 -42
  711. package/dist/docs/reference/geometry/transformPath2.md +0 -40
  712. package/dist/docs/reference/geometry/transformPath3.md +0 -33
  713. package/dist/docs/reference/model/Path2.md +0 -20
  714. package/dist/docs/reference/model/rayCast.md +0 -40
  715. package/dist/docs/reference/model/toTriangleMesh.md +0 -27
  716. package/dist/geometry/paths/path.js +0 -32
@@ -37,16 +37,14 @@ export declare interface Anchor3 {
37
37
  readonly up: Vector3Tuple;
38
38
  }
39
39
 
40
- /**
41
- * Degree-based anchor attachment controls for a scoped solid.
42
- */
40
+ /** Options controlling how one anchor is attached to another. */
43
41
  export declare interface AttachOptions {
44
42
  /** Align outward directions face-to-face (`opposed`) or in parallel (`same`). */
45
43
  readonly alignment?: "opposed" | "same";
46
- /** Separation along the target anchor's outward direction in millimetres. */
44
+ /** Separation along the target anchor's outward direction in model units. */
47
45
  readonly gap?: number;
48
46
  /** Additional right-handed roll about the attached direction, in degrees. */
49
- readonly spinDegrees?: number;
47
+ readonly spin?: number;
50
48
  /** Optional numeric comparison overrides. */
51
49
  readonly tolerance?: GeometryToleranceOptions;
52
50
  }
@@ -103,7 +101,7 @@ export declare type BoxEdgeTreatments = Readonly<
103
101
  /**
104
102
  * Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box.
105
103
  */
106
- export declare interface BoxOptions extends PrimitivePlacement {
104
+ export declare interface BoxOptions extends PrimitiveAttachment {
107
105
  /** Explicit sampling ceilings for edge treatments, bounded by the host policy. */
108
106
  readonly limits?: Partial<GeometrySamplingLimits>;
109
107
  /**
@@ -137,6 +135,13 @@ declare interface ButtressThreadProfileSpec extends ThreadProfileBaseSpec {
137
135
  readonly pressureFlankSide?: ButtressPressureFlankSide;
138
136
  }
139
137
 
138
+ /** Copies intersections along the finite directed origin-to-endpoint segment. */
139
+ export declare function castSegment(
140
+ solid: Solid,
141
+ origin: Vector3Input,
142
+ endpoint: Vector3Input,
143
+ ): readonly SolidSegmentHit[];
144
+
140
145
  /**
141
146
  * A planar edge or corner chamfer with equal or independent surface setbacks.
142
147
  */
@@ -180,7 +185,7 @@ export declare type CircleContourOptions = CircularPrimitiveOptions &
180
185
  /**
181
186
  * Circular dimensions with exactly one nominal radius or diameter.
182
187
  */
183
- export declare type CircleOptions = CircleContourOptions & PrimitivePlacement;
188
+ export declare type CircleOptions = CircleContourOptions & PrimitiveAttachment;
184
189
 
185
190
  /**
186
191
  * Tessellation controls shared by circular primitives across Geometry entry points.
@@ -200,11 +205,11 @@ export declare interface CircularPrimitiveOptions {
200
205
  }
201
206
 
202
207
  /**
203
- * Observes a solid's disconnected surface shells as session-restricted solid selections.
208
+ * Observes disconnected material pieces as session-restricted solid selections.
204
209
  *
205
- * For solids without enclosed cavities, these shells are the disconnected material islands.
206
- * Enclosed cavities produce separate inward shells with negative signed volume; these cannot
207
- * be finalized alone as manufacturing parts. This does not cut connected geometry.
210
+ * Each piece retains its enclosed cavities. A sealed hollow box is one component; adding a loose
211
+ * ball inside its cavity produces two. Recombining the pieces preserves the original material.
212
+ * This does not cut connected geometry. Containment is bounded to 2,000,000 comparisons.
208
213
  * Selection order and cardinality depend on evaluated topology. Results and recipes using them
209
214
  * can only be evaluated in this session; composition itself requires no engine.
210
215
  *
@@ -280,6 +285,20 @@ export declare type CorrespondingProfileStation = LoftPlacement & {
280
285
  readonly profile: CorrespondingProfile;
281
286
  };
282
287
 
288
+ /**
289
+ * Explicit physical sampling and allocation policy for reusable curves.
290
+ */
291
+ declare interface CurveSamplingOptions {
292
+ /** Exact segment count overrides physical criteria; curve parameters are spaced uniformly. */
293
+ readonly segments?: number;
294
+ /** Millimetre sampling policy; circularSegments applies only to arcs. */
295
+ readonly resolution?: GeometryResolution;
296
+ /** Output vertex ceiling of at least two; may only lower limits.maxPathPoints. */
297
+ readonly maxVertices?: number;
298
+ /** Explicit sampling ceilings; omitted values use package defaults without ambient state. */
299
+ readonly limits?: Partial<GeometrySamplingLimits>;
300
+ }
301
+
283
302
  /** Caller-defined periodic axial/radial profile in millimetres. */
284
303
  declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
285
304
  /** Selects a caller-defined periodic profile. */
@@ -311,7 +330,7 @@ export declare function cylinder(options: CylinderOptions): Solid;
311
330
  */
312
331
  export declare type CylinderOptions = CircularPrimitiveOptions &
313
332
  RadialSizingOptions &
314
- PrimitivePlacement & {
333
+ PrimitiveAttachment & {
315
334
  /**
316
335
  * Centers the solid on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
317
336
  * @defaultValue `true`
@@ -400,7 +419,8 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
400
419
  /**
401
420
  * Ellipse dimensions in local XY, with exactly one radii or full-size tuple.
402
421
  */
403
- export declare type EllipseOptions = EllipseContourOptions & PrimitivePlacement;
422
+ export declare type EllipseOptions = EllipseContourOptions &
423
+ PrimitiveAttachment;
404
424
 
405
425
  /**
406
426
  * Independent inward finishing on primitive or straight convex extrusion ends.
@@ -452,9 +472,9 @@ declare interface ExtrusionSamplingOptions {
452
472
  /** Operation-level physical policy over the nearest model scope. */
453
473
  readonly resolution?: GeometryResolution;
454
474
  /** Finite uniform or XY scale of the top profile; defaults to one. */
455
- readonly scaleTop?: number | Vector2Tuple;
475
+ readonly scaleTop?: number | Vector2Input;
456
476
  /** Finite rotation of the top profile about +Z, in degrees; defaults to zero. */
457
- readonly twistDegrees?: number;
477
+ readonly twist?: number;
458
478
  }
459
479
 
460
480
  /** Finalized manufacturing snapshot. Its arrays are independent of all native values. */
@@ -465,19 +485,21 @@ export declare interface FinalizedModel {
465
485
  readonly bounds: Bounds3;
466
486
  /** Aggregate counts, unique backing storage, volume, and execution timings. */
467
487
  readonly stats: {
488
+ /** Number of declared output parts, including repeated geometry instances. */
489
+ readonly partCount: number;
468
490
  /** Aggregate position-buffer vertex count. */
469
- readonly vertices: number;
491
+ readonly vertexCount: number;
470
492
  /** Aggregate indexed triangle count. */
471
- readonly triangles: number;
493
+ readonly triangleCount: number;
472
494
  /** Signed enclosed volume of all selected parts in cubic millimetres. */
473
495
  readonly volumeMm3: number;
474
496
  /** Unique transferable backing-buffer bytes, counted once across all parts. */
475
- readonly bytes: number;
497
+ readonly byteCount: number;
476
498
  /** Synchronous callback duration in milliseconds. */
477
499
  readonly buildMs: number;
478
500
  /** Manufacturing validation and buffer finalization duration in milliseconds. */
479
501
  readonly finalizationMs: number;
480
- /** Total callback and finalization duration in milliseconds. */
502
+ /** Total generation duration, including cache retention and native cleanup, in milliseconds. */
481
503
  readonly generationMs: number;
482
504
  };
483
505
  }
@@ -589,9 +611,9 @@ export declare interface GeometryResolution {
589
611
  /** Optional maximum sampled edge length in millimetres. */
590
612
  readonly maxSegmentLength?: number;
591
613
  /** Upper safety bound for a full circle; defaults to the selected maxCircularSegments (512 by default). */
592
- readonly maximumSegments?: number;
614
+ readonly maxSegments?: number;
593
615
  /** Lower full-circle segment count; defaults to 16 or a lower selected circular ceiling. */
594
- readonly minimumSegments?: number;
616
+ readonly minSegments?: number;
595
617
  }
596
618
 
597
619
  /** Explicit allocation ceilings for pure sampling and host-owned modeling operations. */
@@ -629,16 +651,17 @@ export declare function gridPattern(
629
651
  options: GridPatternOptions,
630
652
  ): readonly Solid[];
631
653
 
632
- /** Repeats a filled Section on a grid; placements must preserve its XY plane. */
654
+ /** Repeats a filled Section on an XY grid; any explicit frame must preserve the XY plane. */
633
655
  export declare function gridPattern(
634
656
  source: PatternSource<Section>,
635
- options: GridPatternOptions,
657
+ options: GridPatternOptions<2>,
636
658
  ): readonly Section[];
637
659
 
638
660
  /**
639
661
  * XY or XYZ grid with X varying fastest. The first item starts at the local origin.
662
+ * Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane.
640
663
  */
641
- export declare type GridPatternOptions = {
664
+ export declare type GridPatternOptions<Dimension extends 2 | 3 = 3> = {
642
665
  /** Center the complete distribution around its local origin; defaults to false. */
643
666
  readonly center?: boolean;
644
667
  /** Optional right-handed local axes and origin for the grid. */
@@ -650,12 +673,14 @@ export declare type GridPatternOptions = {
650
673
  /** Signed millimetres between adjacent copies on X and Y. */
651
674
  readonly spacing: Vector2Tuple;
652
675
  }
653
- | {
654
- /** Positive integer counts on X, Y and Z. */
655
- readonly count: Vector3Tuple;
656
- /** Signed millimetres between adjacent copies on X, Y and Z. */
657
- readonly spacing: Vector3Tuple;
658
- }
676
+ | (Dimension extends 3
677
+ ? {
678
+ /** Positive integer counts on X, Y and Z. */
679
+ readonly count: Vector3Tuple;
680
+ /** Signed millimetres between adjacent copies on X, Y and Z. */
681
+ readonly spacing: Vector3Tuple;
682
+ }
683
+ : never)
659
684
  );
660
685
 
661
686
  /**
@@ -741,7 +766,7 @@ export declare interface HelicalThreadRidgeMeshOptions {
741
766
  /** Nominal major diameter before any caller-owned fit compensation. */
742
767
  readonly majorDiameter: number;
743
768
  /** Angular offset of the first start in degrees. Default: `0`. */
744
- readonly phaseDegrees?: number;
769
+ readonly phase?: number;
745
770
  /** Validated periodic profile repeated around the shaft. */
746
771
  readonly profile: ThreadProfile;
747
772
  /** Optional circular-resolution policy. */
@@ -783,7 +808,7 @@ export declare function hull(options: SectionHullOptions): Section;
783
808
  export declare type HullOptions =
784
809
  | {
785
810
  /** Finite millimetre XYZ points to include in the convex hull. */
786
- readonly points: readonly Vector3Tuple[];
811
+ readonly points: readonly Vector3Input[];
787
812
  /** Point input excludes solid input. */
788
813
  readonly solids?: never;
789
814
  }
@@ -898,8 +923,8 @@ export declare function inspectSolid(solid: Solid): SolidInspection;
898
923
  * @example Internal thread
899
924
  * ```ts
900
925
  * import { cylinder, internalThreadCutter } from "@metamesh/modeling";
901
- * import { createThreadProfile } from "@metamesh/modeling/geometry";
902
- * const profile = createThreadProfile({ kind: "triangular", pitch: 1.75 });
926
+ * import { threadProfile } from "@metamesh/modeling/geometry";
927
+ * const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
903
928
  * const body = cylinder({ diameter: 20, height: 12, center: false });
904
929
  * const cutter = internalThreadCutter({ nominalMajorDiameter: 12, length: 12, profile });
905
930
  * body.subtract([cutter]);
@@ -962,18 +987,19 @@ export declare function linearPattern(
962
987
  options: LinearPatternOptions,
963
988
  ): readonly Solid[];
964
989
 
965
- /** Repeats a filled Section; every placement must preserve its XY plane. */
990
+ /** Repeats a filled Section along an XY direction, defaulting to +X. */
966
991
  export declare function linearPattern(
967
992
  source: PatternSource<Section>,
968
- options: LinearPatternOptions,
993
+ options: LinearPatternOptions<2>,
969
994
  ): readonly Section[];
970
995
 
971
996
  /**
972
997
  * Equal linear intervals determined by exactly two of count, spacing and total length.
998
+ * Dimension defaults to 3; Section patterns use 2 and accept XY vector directions.
973
999
  */
974
- export declare type LinearPatternOptions = {
1000
+ export declare type LinearPatternOptions<Dimension extends 2 | 3 = 3> = {
975
1001
  /** Direction of repetition; magnitude is ignored. Defaults to +X. */
976
- readonly direction?: Vector3Tuple;
1002
+ readonly direction?: Dimension extends 2 ? Vector2Input : Vector3Input;
977
1003
  } & (
978
1004
  | {
979
1005
  /** Positive copy count, including the original. */
@@ -1079,10 +1105,13 @@ export declare type LoftPlacement =
1079
1105
  */
1080
1106
  export declare type LoftStation = LoftPlacement & {
1081
1107
  /** Filled Section recipe or ordered XY boundary point data. */
1082
- readonly profile: Section | Contour;
1108
+ readonly profile: Section | Path2Input;
1083
1109
  };
1084
1110
 
1085
- /** Explicit family matching on a shared physical span grid using session or operation resolution. */
1111
+ /**
1112
+ * Matches a profile family using operation settings over host resolution and limits.
1113
+ * Requires active synchronous model execution. Use Geometry's matchProfiles for standalone preparation.
1114
+ */
1086
1115
  export declare function matchProfiles(
1087
1116
  profiles: readonly Profile[],
1088
1117
  options?: MatchProfilesOptions,
@@ -1138,8 +1167,91 @@ export declare interface PartOptions {
1138
1167
  readonly color?: string;
1139
1168
  }
1140
1169
 
1141
- /** An ordered, open sequence of two-dimensional points. */
1142
- export declare type Path2 = readonly Vector2Tuple[];
1170
+ /** Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. */
1171
+ export declare interface Path2 {
1172
+ /** Coordinate dimension; identifies planar paths even when empty. */
1173
+ readonly dimension: 2;
1174
+ /** Whether traversal includes the last-to-first edge. */
1175
+ readonly closed: boolean;
1176
+ /** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
1177
+ toArray(): Path2Data;
1178
+ /** Total sampled edge length in model units, including the closing edge when closed. */
1179
+ length(): number;
1180
+ /** Axis-aligned bounds, or undefined for an empty path. */
1181
+ bounds(): Bounds2 | undefined;
1182
+ /** Finds the nearest edge location; requires at least two vertices. */
1183
+ closestPoint(point: Vector2Input): PathLocation<Vector2>;
1184
+ /** Applies an XY placement without reordering traversal, including after reflection. */
1185
+ transform(placement: Transform2Input): Path2;
1186
+ /** Reverses vertex order and traversal; neither the source nor its coordinates are mutated. */
1187
+ reverse(): Path2;
1188
+ /** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
1189
+ resample(options?: PathResamplingOptions): Path2;
1190
+ }
1191
+
1192
+ /**
1193
+ * Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization.
1194
+ * Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated
1195
+ * seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed.
1196
+ * Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement
1197
+ * overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError.
1198
+ * A path input retains its closure. Limits bound construction only; resampling takes its own limits.
1199
+ */
1200
+ export declare function path2(input: Path2Input, options?: PathOptions): Path2;
1201
+
1202
+ /** XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. */
1203
+ export declare type Path2Data = readonly Vector2Tuple[];
1204
+
1205
+ /** An immutable XY sampled path or a collection of XY tuples and fluent vectors. */
1206
+ export declare type Path2Input = Path2 | readonly Vector2Input[];
1207
+
1208
+ /** Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. */
1209
+ export declare interface Path3 {
1210
+ /** Coordinate dimension; identifies spatial paths even when empty. */
1211
+ readonly dimension: 3;
1212
+ /** Whether traversal includes the last-to-first edge. */
1213
+ readonly closed: boolean;
1214
+ /** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
1215
+ toArray(): Path3Data;
1216
+ /** Total sampled edge length in model units, including the closing edge when closed. */
1217
+ length(): number;
1218
+ /** Axis-aligned bounds, or undefined for an empty path. */
1219
+ bounds(): Bounds3 | undefined;
1220
+ /** Finds the nearest edge location; requires at least two vertices. */
1221
+ closestPoint(point: Vector3Input): PathLocation<Vector3>;
1222
+ /** Applies an XYZ placement without changing traversal order or closure. */
1223
+ transform(placement: Transform3Input): Path3;
1224
+ /** Reverses vertex order and traversal without mutating the source. */
1225
+ reverse(): Path3;
1226
+ /** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
1227
+ resample(options?: PathResamplingOptions): Path3;
1228
+ }
1229
+
1230
+ /**
1231
+ * Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam,
1232
+ * allocation and error rules as path2. Analytic curves must be sampled explicitly first.
1233
+ */
1234
+ export declare function path3(input: Path3Input, options?: PathOptions): Path3;
1235
+
1236
+ /**
1237
+ * XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value.
1238
+ */
1239
+ export declare type Path3Data = readonly Vector3Tuple[];
1240
+
1241
+ /** An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. */
1242
+ export declare type Path3Input = Path3 | readonly Vector3Input[];
1243
+
1244
+ /** Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. */
1245
+ export declare interface PathLocation<Point extends Vector2 | Vector3> {
1246
+ /** Immutable position on the selected edge. */
1247
+ readonly point: Point;
1248
+ /** Euclidean distance from the query in model units. */
1249
+ readonly distance: number;
1250
+ /** Starting vertex of the selected edge; ties keep the first edge in traversal order. */
1251
+ readonly edgeIndex: number;
1252
+ /** Clamped fraction along that edge, not the whole path's normalized arc length. */
1253
+ readonly fraction: number;
1254
+ }
1143
1255
 
1144
1256
  /**
1145
1257
  * Supplies a profile-X orientation guide for each original normalized sweep station.
@@ -1151,7 +1263,15 @@ export declare type Path2 = readonly Vector2Tuple[];
1151
1263
  export declare type PathNormalGuide = (
1152
1264
  point: Vector3Tuple,
1153
1265
  index: number,
1154
- ) => Vector3Tuple;
1266
+ ) => Vector3Input;
1267
+
1268
+ /** Topology and allocation ceiling for an immutable sampled path. */
1269
+ export declare interface PathOptions {
1270
+ /** Connects the last vertex to the first; closed paths omit the repeated seam. Defaults to false. */
1271
+ readonly closed?: boolean;
1272
+ /** Construction point ceiling; defaults to package sampling limits. Later sampling has its own options. */
1273
+ readonly limits?: Partial<GeometrySamplingLimits>;
1274
+ }
1155
1275
 
1156
1276
  /**
1157
1277
  * Physical arc-length copies along a sampled path, with optional tangent orientation.
@@ -1163,17 +1283,17 @@ export declare type PathNormalGuide = (
1163
1283
  */
1164
1284
  export declare function pathPattern(
1165
1285
  source: PatternSource,
1166
- path: readonly Vector3Tuple[],
1286
+ path: Path3Input,
1167
1287
  options: PathPatternOptions,
1168
1288
  ): readonly Solid[];
1169
1289
 
1170
1290
  /**
1171
- * Repeats a filled Section along a sampled XY path at Z=0. Fixed orientation preserves XY;
1172
- * tangent orientation maps +Z to the tangent and rejects when that leaves the plane.
1291
+ * Repeats a filled Section along a sampled XY path. Tangent orientation maps local +X
1292
+ * to the path tangent counterclockwise, preserving the XY plane.
1173
1293
  */
1174
1294
  export declare function pathPattern(
1175
1295
  source: PatternSource<Section>,
1176
- path: readonly Vector3Tuple[],
1296
+ path: Path2Input,
1177
1297
  options: PathPatternOptions,
1178
1298
  ): readonly Section[];
1179
1299
 
@@ -1181,12 +1301,18 @@ export declare function pathPattern(
1181
1301
  export declare interface PathPatternOptions {
1182
1302
  /** Positive number of copies; open paths include both endpoints when greater than one. */
1183
1303
  readonly count: number;
1184
- /** Include the closing edge without duplicating the seam; defaults to false. */
1304
+ /** Raw point closure defaults to false; a path value supplies closure and rejects conflicts. */
1185
1305
  readonly closed?: boolean;
1186
- /** Preserve the source orientation, or align its +Z to the path tangent; defaults to fixed. */
1306
+ /** Preserve orientation, or align local +X for Sections / +Z for Solids to the tangent. Defaults to fixed. */
1187
1307
  readonly orientation?: "fixed" | "tangent";
1188
1308
  }
1189
1309
 
1310
+ /** Equal arc-length sampling; the path itself owns whether its closing edge is included. */
1311
+ export declare interface PathResamplingOptions extends CurveSamplingOptions {
1312
+ /** Exact arc-length intervals; closed paths need at least three. Otherwise physical resolution or the effective source edge count controls sampling. */
1313
+ readonly segments?: number;
1314
+ }
1315
+
1190
1316
  /**
1191
1317
  * One immutable shape, or a synchronous factory called once per copy in index order.
1192
1318
  */
@@ -1208,7 +1334,7 @@ export declare interface Pivot3Options {
1208
1334
  /** A world-space cutting plane, retaining the half-space in the normal's direction. */
1209
1335
  export declare interface PlaneOptions {
1210
1336
  /** Finite nonzero plane normal; magnitude does not affect the plane. */
1211
- readonly normal: Vector3Tuple;
1337
+ readonly normal: Vector3Input;
1212
1338
  /** Signed millimetre distance from the origin along the unit normal. Defaults to zero. */
1213
1339
  readonly offset?: number;
1214
1340
  }
@@ -1223,7 +1349,7 @@ export declare interface PlaneOptions {
1223
1349
  * polygon([[0, 0], [20, 0], [10, 12]]).extrude({ height: 3 });
1224
1350
  * ```
1225
1351
  */
1226
- export declare function polygon(input: Contour | PolygonOptions): Section;
1352
+ export declare function polygon(input: Path2Input | PolygonOptions): Section;
1227
1353
 
1228
1354
  /**
1229
1355
  * One bounded two-dimensional polygon.
@@ -1243,9 +1369,9 @@ export declare interface PolygonData {
1243
1369
  export declare type PolygonOptions =
1244
1370
  | {
1245
1371
  /** One simple exterior boundary, normalized to counterclockwise winding. */
1246
- readonly outer: Contour;
1372
+ readonly outer: Path2Input;
1247
1373
  /** Disjoint simple holes inside the exterior; normalized to clockwise winding. */
1248
- readonly holes?: readonly Contour[];
1374
+ readonly holes?: readonly Path2Input[];
1249
1375
  /** Explicit topology excludes compound contours. */
1250
1376
  readonly contours?: never;
1251
1377
  /** Explicit topology determines fill without a winding rule. */
@@ -1255,7 +1381,7 @@ export declare type PolygonOptions =
1255
1381
  }
1256
1382
  | {
1257
1383
  /** Compound boundaries; may overlap or contain holes according to the fill rule. */
1258
- readonly contours: readonly Contour[];
1384
+ readonly contours: readonly Path2Input[];
1259
1385
  /** Winding interpretation; defaults to nonzero. An empty list creates an empty Section. */
1260
1386
  readonly fillRule?: "nonzero" | "evenodd";
1261
1387
  /** Compound contours exclude explicit topology. */
@@ -1278,41 +1404,33 @@ export declare type PolygonOptions =
1278
1404
  readonly fillRule?: never;
1279
1405
  };
1280
1406
 
1281
- /** Allocation-free internal-thread facts. */
1407
+ /** Internal-thread facts using host resolution and limits; requires active synchronous model execution. */
1282
1408
  export declare function preflightInternalThreadCutter(
1283
1409
  options: InternalThreadCutterOptions,
1284
1410
  ): HelicalThreadSolidMeshPreflight;
1285
1411
 
1286
- /** Allocation-free nut/cutter facts. */
1412
+ /** Nut/cutter facts using host resolution and limits; requires active synchronous model execution. */
1287
1413
  export declare function preflightThreadedNut(
1288
1414
  options: ThreadedNutOptions,
1289
1415
  ): ThreadedNutPreflight;
1290
1416
 
1291
- /** Allocation-free external-thread facts. */
1417
+ /** External-thread facts using host resolution and limits; requires active synchronous model execution. */
1292
1418
  export declare function preflightThreadedRod(
1293
1419
  options: ThreadedRodOptions,
1294
1420
  ): HelicalThreadSolidMeshPreflight;
1295
1421
 
1296
- /** Placement shared by solid and filled-section factories. */
1297
- export declare interface PrimitivePlacement {
1298
- /** Applied after local construction; Section placement must preserve the XY plane. */
1299
- readonly placement?: PrimitivePlacementOptions;
1422
+ /** Anchor attachment shared by solid and filled-section factories. */
1423
+ export declare interface PrimitiveAttachment {
1424
+ /** Applied after local construction; Section attachment must preserve the XY plane. */
1425
+ readonly attachment?: PrimitiveAttachmentOptions;
1300
1426
  }
1301
1427
 
1302
1428
  /** Maps an explicit or named shape-local attachment anchor onto a world-space anchor. */
1303
- export declare interface PrimitivePlacementOptions {
1429
+ export declare interface PrimitiveAttachmentOptions extends AttachOptions {
1304
1430
  /** Shape-local source frame or a named primitive anchor such as bottom. */
1305
1431
  readonly source: Anchor3 | string;
1306
1432
  /** World-space target frame in millimetres. */
1307
1433
  readonly target: Anchor3;
1308
- /** Align outward directions face-to-face or in parallel. Defaults to opposed. */
1309
- readonly alignment?: "opposed" | "same";
1310
- /** Finite separation along the target direction in millimetres. Defaults to zero. */
1311
- readonly gap?: number;
1312
- /** Finite additional roll around the attached direction in degrees. Defaults to zero. */
1313
- readonly spinDegrees?: number;
1314
- /** Explicit numeric comparison overrides for anchor normalization. */
1315
- readonly tolerance?: GeometryToleranceOptions;
1316
1434
  }
1317
1435
 
1318
1436
  /**
@@ -1397,9 +1515,9 @@ export declare type ProfileSpan2 = {
1397
1515
  /** Circular radius in millimetres. */
1398
1516
  readonly radius: number;
1399
1517
  /** Initial counterclockwise angle in degrees. */
1400
- readonly startDegrees: number;
1518
+ readonly startAngle: number;
1401
1519
  /** Signed counterclockwise angular sweep in degrees. */
1402
- readonly sweepDegrees: number;
1520
+ readonly sweepAngle: number;
1403
1521
  }
1404
1522
  | {
1405
1523
  /** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
@@ -1421,7 +1539,7 @@ export declare type ProfileSpan2 = {
1421
1539
  * @example Six copies around Z
1422
1540
  * ```ts
1423
1541
  * const pin = cylinder({ height: 6, radius: 2 }).translate([12, 0, 0]);
1424
- * radialPattern(pin, { count: 6, axis: [0, 0, 1], angleDegrees: 60 });
1542
+ * radialPattern(pin, { count: 6, axis: [0, 0, 1], angle: 60 });
1425
1543
  * ```
1426
1544
  */
1427
1545
  export declare function radialPattern(
@@ -1429,25 +1547,31 @@ export declare function radialPattern(
1429
1547
  options: RadialPatternOptions,
1430
1548
  ): readonly Solid[];
1431
1549
 
1432
- /** Repeats a filled Section about an axis; placements must preserve its XY plane. */
1550
+ /** Repeats a filled Section counterclockwise about a fixed XY pivot, using the implicit +Z axis. */
1433
1551
  export declare function radialPattern(
1434
1552
  source: PatternSource<Section>,
1435
- options: RadialPatternOptions,
1553
+ options: RadialPatternOptions<2>,
1436
1554
  ): readonly Section[];
1437
1555
 
1438
1556
  /**
1439
- * Options for repeating one solid around an axis through a center point.
1557
+ * Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis.
1440
1558
  */
1441
- export declare interface RadialPatternOptions {
1442
- /** Number of solids to return, including the original. */
1559
+ export declare type RadialPatternOptions<Dimension extends 2 | 3 = 3> = {
1560
+ /** Number of shapes to return, including the original. */
1443
1561
  readonly count: number;
1444
- /** Axis of the right-handed rotation. Its magnitude is ignored. */
1445
- readonly axis: Vector3Tuple;
1446
1562
  /** Signed rotation from one copy to the next, in degrees. */
1447
- readonly angleDegrees: number;
1448
- /** Rotation center in world coordinates. Defaults to the origin. */
1449
- readonly center?: Vector3Tuple;
1450
- }
1563
+ readonly angle: number;
1564
+ /** Fixed world-space rotation pivot; defaults to the coordinate origin. */
1565
+ readonly pivot?: Dimension extends 2 ? Vector2Input : Vector3Input;
1566
+ } & (Dimension extends 2
1567
+ ? {
1568
+ /** XY rotation uses +Z; an explicit spatial axis is unavailable. */
1569
+ readonly axis?: never;
1570
+ }
1571
+ : {
1572
+ /** Axis of the right-handed rotation. Its nonzero magnitude is ignored. */
1573
+ readonly axis: Vector3Input;
1574
+ });
1451
1575
 
1452
1576
  /** Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. */
1453
1577
  export declare type RadialSizing = "vertex" | "face";
@@ -1462,13 +1586,6 @@ export declare interface RadialSizingOptions {
1462
1586
  readonly sizing?: RadialSizing;
1463
1587
  }
1464
1588
 
1465
- /** Copies intersections along the finite directed origin-to-endpoint segment. */
1466
- export declare function rayCast(
1467
- solid: Solid,
1468
- origin: Vector3Tuple,
1469
- endpoint: Vector3Tuple,
1470
- ): readonly SolidRayHit[];
1471
-
1472
1589
  /**
1473
1590
  * Filled rectangular section with uniform or independently treated corners.
1474
1591
  *
@@ -1513,7 +1630,7 @@ export declare type RectangleCornerTreatments = readonly [
1513
1630
  * Rectangle dimensions, placement and uniform or per-corner treatment.
1514
1631
  */
1515
1632
  export declare interface RectangleOptions
1516
- extends RectangleContourOptions, PrimitivePlacement {}
1633
+ extends RectangleContourOptions, PrimitiveAttachment {}
1517
1634
 
1518
1635
  /** A two-dimensional region represented by disjoint filled polygons. */
1519
1636
  export declare type RegionData = readonly PolygonData[];
@@ -1532,13 +1649,13 @@ export declare function regularPolygon(options: RegularPolygonOptions): Section;
1532
1649
  * Regular polygon dimensions, radial convention and degree rotation.
1533
1650
  */
1534
1651
  export declare type RegularPolygonOptions = RadialSizingOptions &
1535
- PrimitivePlacement & {
1652
+ PrimitiveAttachment & {
1536
1653
  /** Positive nominal radius in millimetres, interpreted according to sizing. */
1537
1654
  readonly radius: number;
1538
1655
  /** Exact integer side count from three through 100000. */
1539
1656
  readonly sides: number;
1540
1657
  /** Counterclockwise rotation in degrees; defaults to zero with a vertex on +X. */
1541
- readonly rotationDegrees?: number;
1658
+ readonly rotation?: number;
1542
1659
  };
1543
1660
 
1544
1661
  /**
@@ -1552,7 +1669,7 @@ export declare type RegularPolygonOptions = RadialSizingOptions &
1552
1669
  *
1553
1670
  * // Contour coordinates are [radius, Z].
1554
1671
  * const [profile] = matchProfiles([rectangleProfile({ size: [4, 16], center: false })]);
1555
- * revolve(profile!, { revolveDegrees: 270 });
1672
+ * revolve(profile!, { degrees: 270 });
1556
1673
  * ```
1557
1674
  */
1558
1675
  export declare function revolve(
@@ -1565,12 +1682,14 @@ export declare function revolve(
1565
1682
  */
1566
1683
  export declare interface RevolveOptions extends CircularPrimitiveOptions {
1567
1684
  /**
1568
- * Positive angular sweep no greater than 360 degrees; partial revolutions have end caps.
1685
+ * Positive sweep in degrees, no greater than 360. Defaults to a full revolution;
1686
+ * smaller sweeps form partial revolutions with end caps.
1569
1687
  * Segment counts describe a complete circle and scale to this angular span. Native filled
1570
1688
  * revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
1571
1689
  * while exact counts that imply fewer intervals reject. Pure revolveMesh supports one interval.
1690
+ * @defaultValue `360`
1572
1691
  */
1573
- readonly revolveDegrees?: number;
1692
+ readonly degrees?: number;
1574
1693
  /** Explicit output and sampling allocation ceilings. */
1575
1694
  readonly limits?: Partial<ModelingLimits>;
1576
1695
  }
@@ -1661,11 +1780,7 @@ export declare interface Section {
1661
1780
  /**
1662
1781
  * Sweeps this filled section using the selected frame policy and degree twist.
1663
1782
  */
1664
- sweep(
1665
- this: Section,
1666
- path: readonly Vector3Tuple[],
1667
- options?: SweepOptions,
1668
- ): Solid;
1783
+ sweep(this: Section, path: Path3Input, options?: SweepOptions): Solid;
1669
1784
  }
1670
1785
 
1671
1786
  declare const sectionBrand: unique symbol;
@@ -1674,7 +1789,7 @@ declare const sectionBrand: unique symbol;
1674
1789
  export declare type SectionHullOptions =
1675
1790
  | {
1676
1791
  /** At least three finite millimetre XY points spanning positive area. */
1677
- readonly points: readonly Vector2Tuple[];
1792
+ readonly points: readonly Vector2Input[];
1678
1793
  /** Point input excludes section input. */
1679
1794
  readonly sections?: never;
1680
1795
  }
@@ -1695,15 +1810,15 @@ export declare interface SectionInspection {
1695
1810
  /** Filled section area in square millimetres. */
1696
1811
  readonly area: number;
1697
1812
  /** Number of extracted outer and hole contours. */
1698
- readonly contours: number;
1813
+ readonly contourCount: number;
1699
1814
  /** Inclusive maximum coordinates in millimetres. */
1700
1815
  readonly max: Vector2Tuple;
1701
1816
  /** Inclusive minimum coordinates in millimetres. */
1702
1817
  readonly min: Vector2Tuple;
1703
1818
  /** Number of disconnected filled section components. */
1704
- readonly parts: number;
1819
+ readonly componentCount: number;
1705
1820
  /** Number of native section vertices. */
1706
- readonly vertices: number;
1821
+ readonly vertexCount: number;
1707
1822
  }
1708
1823
 
1709
1824
  /** Clipper2 join styles accepted by robust region offsets. */
@@ -1777,6 +1892,8 @@ export declare interface Solid {
1777
1892
  mirror(this: Solid, normal: Vector3Input): Solid;
1778
1893
  /** Applies a reusable XYZ placement or canonical row-major matrix. */
1779
1894
  transform(this: Solid, placement: Transform3Input): Solid;
1895
+ /** Copies manufacturing mesh buffers for interchange; requires an active model execution. */
1896
+ toTriangleMesh(this: Solid): TriangleMesh;
1780
1897
  /**
1781
1898
  * Robust difference; an empty cutter array preserves the source.
1782
1899
  */
@@ -1801,8 +1918,8 @@ export declare interface Solid {
1801
1918
  target: Anchor3,
1802
1919
  options?: AttachOptions,
1803
1920
  ): Solid;
1804
- /** Replaces native tolerance on an immutable copy; zero selects the kernel minimum. */
1805
- setTolerance(this: Solid, tolerance: number): Solid;
1921
+ /** Returns an immutable copy with this native tolerance; zero selects the kernel minimum. */
1922
+ withTolerance(this: Solid, tolerance: number): Solid;
1806
1923
  /** Projects this solid into a filled XY section. */
1807
1924
  projectSection(this: Solid): Section;
1808
1925
  /** Takes a filled horizontal slice at Z millimetres. */
@@ -1838,8 +1955,8 @@ export declare interface SolidInspection {
1838
1955
  readonly max: Vector3Tuple;
1839
1956
  /** Inclusive minimum coordinates in millimetres. */
1840
1957
  readonly min: Vector3Tuple;
1841
- /** Number of connected surface shells; inward cavity shells count separately. */
1842
- readonly parts: number;
1958
+ /** Number of disconnected material components, each retaining enclosed cavities. */
1959
+ readonly componentCount: number;
1843
1960
  /** Enclosed native solid volume in cubic millimetres. */
1844
1961
  readonly volume: number;
1845
1962
  /** Total native surface area in square millimetres. */
@@ -1849,10 +1966,10 @@ export declare interface SolidInspection {
1849
1966
  }
1850
1967
 
1851
1968
  /** Copied surface intersection from a finite directed segment. Distance is in millimetres. */
1852
- export declare interface SolidRayHit {
1969
+ export declare interface SolidSegmentHit {
1853
1970
  /** Copied numeric native face identity. */
1854
1971
  readonly faceId: number;
1855
- /** Distance from the ray origin in millimetres. */
1972
+ /** Distance from the segment origin in millimetres. */
1856
1973
  readonly distance: number;
1857
1974
  /** Intersection position in millimetres. */
1858
1975
  readonly position: Vector3Tuple;
@@ -1874,7 +1991,7 @@ export declare function sphere(options: SphereOptions): Solid;
1874
1991
  * Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere.
1875
1992
  */
1876
1993
  export declare type SphereOptions = CircularPrimitiveOptions &
1877
- PrimitivePlacement &
1994
+ PrimitiveAttachment &
1878
1995
  (
1879
1996
  | {
1880
1997
  /** Positive radius in millimetres; mutually exclusive with diameter. */
@@ -1960,7 +2077,7 @@ export declare function star(options: StarOptions): Section;
1960
2077
  /**
1961
2078
  * Alternating outer and inner vertices, centered on the XY origin.
1962
2079
  */
1963
- export declare interface StarOptions extends PrimitivePlacement {
2080
+ export declare interface StarOptions extends PrimitiveAttachment {
1964
2081
  /** Explicit sampling ceilings, bounded by the host policy. */
1965
2082
  readonly limits?: Partial<GeometrySamplingLimits>;
1966
2083
  /** Positive outer vertex radius in millimetres. */
@@ -1970,13 +2087,13 @@ export declare interface StarOptions extends PrimitivePlacement {
1970
2087
  /** Integer outer point count from three through 50000. */
1971
2088
  readonly points: number;
1972
2089
  /** Initial counterclockwise rotation in degrees; defaults to zero. */
1973
- readonly rotationDegrees?: number;
2090
+ readonly rotation?: number;
1974
2091
  }
1975
2092
 
1976
2093
  /**
1977
2094
  * Creates a centered-width native Section along a sampled XY path.
1978
2095
  *
1979
- * Shares caps, joins and physical sampling with Geometry's strokePathRegion. Native union
2096
+ * Shares caps, joins and physical sampling with Geometry's strokeRegionData. Native union
1980
2097
  * resolves overlapping stroke primitives. Session resolution and resource ceilings apply;
1981
2098
  * closed paths omit the duplicated seam. Returns an immutable deferred recipe.
1982
2099
  *
@@ -1985,30 +2102,33 @@ export declare interface StarOptions extends PrimitivePlacement {
1985
2102
  * stroke([[0, 0], [20, 0], [20, 10]], { width: 3, join: "round", cap: "round" }).extrude({ height: 2 });
1986
2103
  * ```
1987
2104
  */
1988
- export declare function stroke(path: Path2, options: StrokeOptions): Section;
2105
+ export declare function stroke(
2106
+ path: Path2Input,
2107
+ options: StrokeOptions,
2108
+ ): Section;
2109
+
2110
+ /** End-cap treatment for an open stroked path. */
2111
+ export declare type StrokeCap = "butt" | "round" | "square";
2112
+
2113
+ /** Join treatment where adjacent stroked path segments meet. */
2114
+ export declare type StrokeJoin = "bevel" | "miter" | "round";
1989
2115
 
1990
2116
  /** Physical stroke and topology controls shared by pure regions and native Sections. */
1991
2117
  export declare interface StrokeOptions {
1992
2118
  /** Explicit path, circular and expanded-profile allocation ceilings. */
1993
2119
  readonly limits?: Partial<GeometrySamplingLimits>;
1994
- /** Treat the path as a closed non-duplicated loop. Default: `false`. */
2120
+ /** Raw point closure defaults to false; a Path2 supplies its closure and rejects conflicts. */
1995
2121
  readonly closed?: boolean;
1996
2122
  /** End-cap treatment for an open path. Ignored for closed paths. Default: `butt`. */
1997
- readonly cap?: StrokePathCap;
2123
+ readonly cap?: StrokeCap;
1998
2124
  /** Corner treatment; miters exceeding SVG's default limit of 4 become bevels. Default: `miter`. */
1999
- readonly join?: StrokePathJoin;
2125
+ readonly join?: StrokeJoin;
2000
2126
  /** Physical tessellation policy for round caps and joins. */
2001
2127
  readonly resolution?: GeometryResolution;
2002
2128
  /** Positive total stroke width in millimetres, centered on the sampled path. */
2003
2129
  readonly width: number;
2004
2130
  }
2005
2131
 
2006
- /** End-cap treatment for an open stroked path. */
2007
- export declare type StrokePathCap = "butt" | "round" | "square";
2008
-
2009
- /** Join treatment where adjacent stroked path segments meet. */
2010
- export declare type StrokePathJoin = "bevel" | "miter" | "round";
2011
-
2012
2132
  /** Placement of painted SVG geometry after SVG Y-axis inversion. */
2013
2133
  export declare type SvgOrigin = "center" | "document";
2014
2134
 
@@ -2086,7 +2206,7 @@ export declare interface SvgSectionOptions {
2086
2206
  */
2087
2207
  export declare function sweep(
2088
2208
  shape: CorrespondingProfile,
2089
- path: readonly Vector3Tuple[],
2209
+ path: Path3Input,
2090
2210
  options?: SweepOptions,
2091
2211
  ): Solid;
2092
2212
 
@@ -2094,7 +2214,7 @@ export declare function sweep(
2094
2214
  * Controls shared by pure mesh construction and filled modeling sweeps.
2095
2215
  */
2096
2216
  export declare interface SweepOptions {
2097
- /** Join the path's last station to its first. Open paths retain watertight end caps. */
2217
+ /** Raw point closure defaults to false; a Path3 supplies its closure and rejects conflicts. */
2098
2218
  readonly closed?: boolean;
2099
2219
  /** Explicit output and sampling allocation ceilings. */
2100
2220
  readonly limits?: Partial<ModelingLimits>;
@@ -2103,11 +2223,11 @@ export declare interface SweepOptions {
2103
2223
  /** Physical sampling of nonzero twist; inserted stations retain authored station controls. */
2104
2224
  readonly resolution?: GeometryResolution;
2105
2225
  /** Total additional profile rotation in degrees, with progression selected by twistBy. */
2106
- readonly twistDegrees?: number;
2226
+ readonly twist?: number;
2107
2227
  /** Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap. */
2108
2228
  readonly twistBy?: "length" | "stations";
2109
2229
  /** Positive uniform/XY scale, or one XY pair per path station. Defaults to one. */
2110
- readonly scale?: number | Vector2Tuple | readonly Vector2Tuple[];
2230
+ readonly scale?: number | Vector2Input | readonly Vector2Input[];
2111
2231
  /** Corresponding point-index advance at a rotationally equivalent closed seam. */
2112
2232
  readonly seamProfileOffset?: number;
2113
2233
  }
@@ -2120,13 +2240,13 @@ export declare type SweepOrientation =
2120
2240
  /** Minimizes frame rotation by parallel transport. */
2121
2241
  readonly kind: "transport";
2122
2242
  /** Initial profile +X guide, projected perpendicular to the first tangent. */
2123
- readonly initialNormal?: Vector3Tuple;
2243
+ readonly initialNormal?: Vector3Input;
2124
2244
  }
2125
2245
  | {
2126
2246
  /** Projects one fixed world-space normal at every path station. */
2127
2247
  readonly kind: "fixed-normal";
2128
2248
  /** Directed profile +X guide; must not be parallel to any local tangent. */
2129
- readonly normal: Vector3Tuple;
2249
+ readonly normal: Vector3Input;
2130
2250
  }
2131
2251
  | {
2132
2252
  /** Uses an explicitly directed normal callback at each original normalized station. */
@@ -2184,9 +2304,9 @@ declare interface ThreadBevelOptions {
2184
2304
  * @example Threaded nut
2185
2305
  * ```ts
2186
2306
  * import { threadedNut } from "@metamesh/modeling";
2187
- * import { createThreadProfile } from "@metamesh/modeling/geometry";
2307
+ * import { threadProfile } from "@metamesh/modeling/geometry";
2188
2308
  *
2189
- * const profile = createThreadProfile({ kind: "triangular", pitch: 1.75 });
2309
+ * const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
2190
2310
  * threadedNut({ nominalMajorDiameter: 12, thickness: 8, width: 20, shape: "hex", profile, fit: "normal" });
2191
2311
  * ```
2192
2312
  */
@@ -2248,9 +2368,9 @@ export declare type ThreadedNutShape = "hex" | "round" | "square";
2248
2368
  * @example Threaded rod
2249
2369
  * ```ts
2250
2370
  * import { threadedRod } from "@metamesh/modeling";
2251
- * import { createThreadProfile } from "@metamesh/modeling/geometry";
2371
+ * import { threadProfile } from "@metamesh/modeling/geometry";
2252
2372
  *
2253
- * const profile = createThreadProfile({ kind: "triangular", pitch: 1.75 });
2373
+ * const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
2254
2374
  * threadedRod({ nominalMajorDiameter: 12, length: 24, profile, fit: "normal" });
2255
2375
  * ```
2256
2376
  */
@@ -2376,7 +2496,7 @@ export declare function torus(options: TorusOptions): Solid;
2376
2496
  /**
2377
2497
  * Dimensions and independent ring/profile tessellation for a torus around the Z axis.
2378
2498
  */
2379
- export declare interface TorusOptions extends PrimitivePlacement {
2499
+ export declare interface TorusOptions extends PrimitiveAttachment {
2380
2500
  /** Explicit sampling ceilings, bounded by the host policy. */
2381
2501
  readonly limits?: Partial<GeometrySamplingLimits>;
2382
2502
  /** Radius from the Z axis to the profile center, in millimetres; greater than `minorRadius`. */
@@ -2391,9 +2511,6 @@ export declare interface TorusOptions extends PrimitivePlacement {
2391
2511
  readonly resolution?: GeometryResolution;
2392
2512
  }
2393
2513
 
2394
- /** Copies a handle to manufacturing mesh buffers. */
2395
- export declare function toTriangleMesh(solid: Solid): TriangleMesh;
2396
-
2397
2514
  /** Immutable reusable XY placement. Methods apply in written order; angles are degrees. */
2398
2515
  export declare interface Transform2 {
2399
2516
  /** Applies a translation in model units after this placement. */
@@ -2532,10 +2649,11 @@ declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
2532
2649
  */
2533
2650
  readonly depth?: number;
2534
2651
  /**
2535
- * Included flank angle in degrees. Use `90` for printable 45-degree slopes.
2652
+ * Full angle between the flanks in degrees, from `0` inclusive to `180` exclusive.
2653
+ * Each flank uses half this angle from the radial direction; `90` gives 45-degree slopes.
2536
2654
  * @defaultValue `30`
2537
2655
  */
2538
- readonly threadAngle?: number;
2656
+ readonly includedAngle?: number;
2539
2657
  }
2540
2658
 
2541
2659
  /**
@@ -2552,7 +2670,7 @@ export declare interface TriangleMesh {
2552
2670
  * Measurements and optional edge-connected topology from one validated mesh traversal.
2553
2671
  */
2554
2672
  export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
2555
- /** Number of referenced edge-connected components when `includeTopology` is requested. */
2673
+ /** Number of referenced edge-connected boundary shells when `includeTopology` is requested; cavities count separately. */
2556
2674
  readonly connectedComponentCount?: number;
2557
2675
  /** Number of distinct indexed undirected edges when `includeTopology` is requested. */
2558
2676
  readonly edgeCount?: number;
@@ -2606,7 +2724,7 @@ export declare function tube(options: TubeOptions): Solid;
2606
2724
  * Dimensions, placement, and tessellation for a hollow Z-axis tube.
2607
2725
  */
2608
2726
  export declare interface TubeOptions
2609
- extends CircularPrimitiveOptions, PrimitivePlacement {
2727
+ extends CircularPrimitiveOptions, PrimitiveAttachment {
2610
2728
  /**
2611
2729
  * Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
2612
2730
  * @defaultValue `true`