@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
@@ -38,12 +38,12 @@ export declare interface AlignedCircularSegmentsOptions {
38
38
  * Additional full-circle segment floor, as a safe integer of at least three.
39
39
  * @defaultValue `3`
40
40
  */
41
- readonly minimumSegments?: number;
41
+ readonly minSegments?: number;
42
42
  /**
43
43
  * Exact full-circle segment count.
44
44
  *
45
45
  * This takes precedence over `resolution.circularSegments` and adaptive sampling, and must
46
- * already satisfy every alignment factor and `minimumSegments`.
46
+ * already satisfy every alignment factor and `minSegments`.
47
47
  */
48
48
  readonly segments?: number;
49
49
  /** Operation-level physical tessellation policy over the active model-wide policy. */
@@ -96,10 +96,30 @@ export declare interface Anchor3 {
96
96
  readonly up: Vector3Tuple;
97
97
  }
98
98
 
99
+ /**
100
+ * Constructs a normalized immutable attachment anchor.
101
+ *
102
+ * `up` is projected onto the plane perpendicular to `direction`, removing small
103
+ * input drift while preserving its roll intent.
104
+ *
105
+ * @param position - Finite anchor point in model coordinates.
106
+ * @param direction - Non-zero outward attachment normal.
107
+ * @param up - Non-parallel roll reference; defaults to +Y.
108
+ * @param tolerance - Optional comparison overrides.
109
+ * @returns A frozen anchor with unit, orthogonal direction and up vectors.
110
+ * @throws {@link GeometryError} For non-finite or degenerate inputs.
111
+ */
112
+ export declare function anchor3(
113
+ position: Vector3Input,
114
+ direction: Vector3Input,
115
+ up?: Vector3Input,
116
+ tolerance?: GeometryToleranceOptions,
117
+ ): Anchor3;
118
+
99
119
  /**
100
120
  * Converts an anchor into a right-handed frame with direction as local +Z.
101
121
  *
102
- * @param anchor - Anchor created by {@link createAnchor3} or equivalent valid data.
122
+ * @param anchor - Anchor created by {@link anchor3} or equivalent valid data.
103
123
  * @param tolerance - Optional comparison overrides.
104
124
  * @returns A normalized right-handed frame at the anchor position.
105
125
  */
@@ -143,9 +163,9 @@ export declare interface ArcCurve2 {
143
163
  /** Positive circular radius in millimetres. */
144
164
  readonly radius: number;
145
165
  /** Initial angle in degrees; defaults to zero. */
146
- readonly startDegrees?: number;
166
+ readonly startAngle?: number;
147
167
  /** Nonzero signed sweep in degrees, bounded to one complete turn. */
148
- readonly sweepDegrees: number;
168
+ readonly sweepAngle: number;
149
169
  }
150
170
 
151
171
  /** Spatial circular arc in the plane of two orthogonal unit directions. */
@@ -161,9 +181,9 @@ export declare interface ArcCurve3 {
161
181
  /** Orthogonal unit direction at positive ninety degrees. */
162
182
  readonly yAxis: Vector3Tuple;
163
183
  /** Initial angle in degrees; defaults to zero. */
164
- readonly startDegrees?: number;
184
+ readonly startAngle?: number;
165
185
  /** Nonzero signed sweep in degrees, bounded to one complete turn. */
166
- readonly sweepDegrees: number;
186
+ readonly sweepAngle: number;
167
187
  }
168
188
 
169
189
  /**
@@ -180,20 +200,20 @@ export declare interface ArcCurve3 {
180
200
  * @returns A frozen affine transform for the moving object.
181
201
  * @throws {@link GeometryError} For invalid anchors or non-finite options.
182
202
  */
183
- export declare function attachTransform(
203
+ export declare function attachmentTransform3(
184
204
  source: Anchor3,
185
205
  target: Anchor3,
186
- options?: AttachTransformOptions,
206
+ options?: AttachOptions,
187
207
  ): Transform3Matrix;
188
208
 
189
209
  /** Options controlling how one anchor is attached to another. */
190
- export declare interface AttachTransformOptions {
210
+ export declare interface AttachOptions {
191
211
  /** Align outward directions face-to-face (`opposed`) or in parallel (`same`). */
192
212
  readonly alignment?: "opposed" | "same";
193
213
  /** Separation along the target anchor's outward direction in model units. */
194
214
  readonly gap?: number;
195
- /** Additional right-handed roll about the attached direction, in radians. */
196
- readonly spinRadians?: number;
215
+ /** Additional right-handed roll about the attached direction, in degrees. */
216
+ readonly spin?: number;
197
217
  /** Optional numeric comparison overrides. */
198
218
  readonly tolerance?: GeometryToleranceOptions;
199
219
  }
@@ -335,7 +355,7 @@ export declare type BoxEdgeTreatments = Readonly<
335
355
  /**
336
356
  * Dimensions, placement, and uniform or independently selected finishing for an axis-aligned box.
337
357
  */
338
- export declare interface BoxOptions extends PrimitivePlacement {
358
+ export declare interface BoxOptions extends PrimitiveAttachment {
339
359
  /** Explicit sampling ceilings for edge treatments, bounded by the host policy. */
340
360
  readonly limits?: Partial<GeometrySamplingLimits>;
341
361
  /**
@@ -349,28 +369,6 @@ export declare interface BoxOptions extends PrimitivePlacement {
349
369
  readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
350
370
  }
351
371
 
352
- /**
353
- * Builds closed thread-ridge components with every profile locked to the
354
- * shaft's radial/axial frame. The mesh is intended for union with its
355
- * minor-envelope cylinder and never owns WASM objects.
356
- */
357
- export declare function buildHelicalThreadRidgeMesh(
358
- options: HelicalThreadRidgeMeshOptions,
359
- ): TriangleMesh;
360
-
361
- /**
362
- * Builds one closed threaded cylinder without a ridge/core Boolean seam.
363
- *
364
- * Each circular facet includes its exact phase-shifted profile breakpoints, including duplicate-Z
365
- * samples for vertical flanks and blunt transitions. Adjacent variable grids are stitched as a
366
- * monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
367
- * conservative pre-allocation estimate rejects excessive meshes before constructing position
368
- * arrays.
369
- */
370
- export declare function buildHelicalThreadSolidMesh(
371
- options: HelicalThreadSolidMeshOptions,
372
- ): TriangleMesh;
373
-
374
372
  /** Axial side carrying the near-normal pressure flank of a buttress thread. */
375
373
  export declare type ButtressPressureFlankSide = "negative" | "positive";
376
374
 
@@ -467,54 +465,6 @@ export declare interface ClearanceHoleDimensions {
467
465
  /** Common clearance-hole fit categories, ordered from smallest to largest. */
468
466
  export declare type ClearanceHoleFit = "close" | "normal" | "loose";
469
467
 
470
- /**
471
- * Finds the closest position anywhere on an open XY path or closed contour.
472
- *
473
- * Open paths need two points; closed paths need three and omit the duplicated seam.
474
- * Repeated vertices are treated as zero-length edges. Inputs and derived distances must be
475
- * finite. Only the final result is allocated, so scanning a dense boundary creates no per-edge objects.
476
- * This measures the sampled boundary, not its filled interior or an underlying analytic curve.
477
- *
478
- * @example Find a point on a closed boundary
479
- * ```ts
480
- * closestPointOnPath([[0, 0], [10, 0], [10, 10]], [4, -2], { closed: true });
481
- * ```
482
- */
483
- export declare function closestPointOnPath(
484
- path: Path2,
485
- point: Vector2Tuple,
486
- options?: ClosestPointOnPathOptions,
487
- ): ClosestPointOnPathResult<Vector2Tuple>;
488
-
489
- /** Finds the closest position on an open XYZ path or explicitly closed spatial loop. */
490
- export declare function closestPointOnPath(
491
- path: Path3,
492
- point: Vector3Tuple,
493
- options?: ClosestPointOnPathOptions,
494
- ): ClosestPointOnPathResult<Vector3Tuple>;
495
-
496
- /** Topology and work ceiling for a closest-point query on a sampled path. */
497
- export declare interface ClosestPointOnPathOptions {
498
- /** Include the last-to-first edge without duplicating the seam point. Defaults to false. */
499
- readonly closed?: boolean;
500
- /** Explicit path point ceiling; defaults to the package sampling limits. */
501
- readonly limits?: Partial<GeometrySamplingLimits>;
502
- }
503
-
504
- /** Closest position on a sampled path, measured in millimetres. */
505
- export declare interface ClosestPointOnPathResult<
506
- Point extends Vector2Tuple | Vector3Tuple,
507
- > {
508
- /** Copied position on the selected edge. */
509
- readonly point: Point;
510
- /** Euclidean distance from the query point to the path. */
511
- readonly distance: number;
512
- /** Zero-based starting vertex of the selected edge. Equal distances keep the first edge. */
513
- readonly edgeIndex: number;
514
- /** Clamped interpolation fraction from the edge's start to its end. */
515
- readonly fraction: number;
516
- }
517
-
518
468
  /**
519
469
  * Closes an open, strictly upward [radius, height] side outline to the radius-zero axis.
520
470
  * Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once.
@@ -601,10 +551,13 @@ export declare function composeTransform3(
601
551
  * normal back to the first tangent measures seam holonomy; distributing that residual rotation
602
552
  * uniformly over all path intervals avoids a visible seam or accumulated frame flip.
603
553
  * The maxPathPoints ceiling (default 100000) bounds path points and frames.
554
+ * Requires closed path values; raw tuples are interpreted as closed and must omit their seam point.
555
+ * Invalid paths throw GeometryError.
556
+ * Nonfinite initial normals reject; finite parallel preferences select a canonical fallback.
604
557
  */
605
558
  export declare const computeClosedParallelTransportFrames: (
606
- path: readonly Vector3Tuple[],
607
- initialNormal?: Vector3Tuple,
559
+ input: Path3Input,
560
+ initialNormal?: Vector3Input,
608
561
  limits?: Partial<GeometrySamplingLimits>,
609
562
  ) => readonly PathFrame[];
610
563
 
@@ -612,10 +565,12 @@ export declare const computeClosedParallelTransportFrames: (
612
565
  * Builds rotation-minimizing frames by parallel-transporting the previous normal.
613
566
  * This avoids the sudden profile flips produced by picking a fresh up-vector per ring.
614
567
  * Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation.
568
+ * Requires open path values; raw tuples are interpreted as an open path. Invalid paths throw GeometryError.
569
+ * Nonfinite normals and guide results reject. A finite initial guide parallel to the tangent selects a canonical fallback.
615
570
  */
616
571
  export declare const computeParallelTransportFrames: (
617
- path: readonly Vector3Tuple[],
618
- initialNormal?: Vector3Tuple,
572
+ input: Path3Input,
573
+ initialNormal?: Vector3Input,
619
574
  normalGuide?: PathNormalGuide,
620
575
  limits?: Partial<GeometrySamplingLimits>,
621
576
  ) => readonly PathFrame[];
@@ -633,6 +588,23 @@ export declare function computeTriangleMeshCentroid(
633
588
  mesh: TriangleMesh,
634
589
  ): Vector3Tuple;
635
590
 
591
+ /**
592
+ * Creates an order-independent regression signature for a manufacturing mesh.
593
+ *
594
+ * The input must be non-empty, closed, consistently wound, and have no unreferenced vertices.
595
+ * Vertex and triangle order do not affect the fingerprint; winding, quantized geometry, and
596
+ * connectivity metrics do. The fingerprint is a regression aid, not a cryptographic digest.
597
+ *
598
+ * @param mesh - Closed oriented mesh to measure without mutation.
599
+ * @param options - Absolute quantization and complexity limits.
600
+ * @returns Compact counts, bounds, volume, topology, tolerances, and canonical fingerprint.
601
+ * @throws {@link GeometryError} When validation, topology, tolerance, or complexity checks fail.
602
+ */
603
+ export declare function computeTriangleMeshSignature(
604
+ mesh: TriangleMesh,
605
+ options?: TriangleMeshSignatureOptions,
606
+ ): TriangleMeshSignature;
607
+
636
608
  /** Tests actual XY containment, including touching boundaries; dimensions must match. */
637
609
  export declare function containsBounds(outer: Bounds2, inner: Bounds2): boolean;
638
610
 
@@ -720,59 +692,6 @@ export declare type CorrespondingProfileStation = LoftPlacement & {
720
692
  readonly profile: CorrespondingProfile;
721
693
  };
722
694
 
723
- /**
724
- * Constructs a normalized immutable attachment anchor.
725
- *
726
- * `up` is projected onto the plane perpendicular to `direction`, removing small
727
- * input drift while preserving its roll intent.
728
- *
729
- * @param position - Finite anchor point in model coordinates.
730
- * @param direction - Non-zero outward attachment normal.
731
- * @param up - Non-parallel roll reference; defaults to +Y.
732
- * @param tolerance - Optional comparison overrides.
733
- * @returns A frozen anchor with unit, orthogonal direction and up vectors.
734
- * @throws {@link GeometryError} For non-finite or degenerate inputs.
735
- */
736
- export declare function createAnchor3(
737
- position: Vector3Tuple,
738
- direction: Vector3Tuple,
739
- up?: Vector3Tuple,
740
- tolerance?: GeometryToleranceOptions,
741
- ): Anchor3;
742
-
743
- /**
744
- * Creates a periodic thread profile for the shaft-locked helical mesher.
745
- *
746
- * The open path spans one pitch. Radial zero is the major envelope; negative
747
- * values point toward the shaft. Custom paths must be finite, axially
748
- * non-decreasing, periodic at their endpoints, and reach radial zero.
749
- *
750
- * @example Printable triangular thread profile
751
- * ```ts
752
- * createThreadProfile({ kind: "triangular", pitch: 1.75 });
753
- * ```
754
- */
755
- export declare function createThreadProfile(
756
- spec: ThreadProfileSpec,
757
- ): ThreadProfile;
758
-
759
- /**
760
- * Creates an order-independent regression signature for a manufacturing mesh.
761
- *
762
- * The input must be non-empty, closed, consistently wound, and have no unreferenced vertices.
763
- * Vertex and triangle order do not affect the fingerprint; winding, quantized geometry, and
764
- * connectivity metrics do. The fingerprint is a regression aid, not a cryptographic digest.
765
- *
766
- * @param mesh - Closed oriented mesh to measure without mutation.
767
- * @param options - Absolute quantization and complexity limits.
768
- * @returns Compact counts, bounds, volume, topology, tolerances, and canonical fingerprint.
769
- * @throws {@link GeometryError} When validation, topology, tolerance, or complexity checks fail.
770
- */
771
- export declare function createTriangleMeshSignature(
772
- mesh: TriangleMesh,
773
- options?: TriangleMeshSignatureOptions,
774
- ): TriangleMeshSignature;
775
-
776
695
  /** Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. */
777
696
  export declare const cross2: (a: Vector2Tuple, b: Vector2Tuple) => number;
778
697
 
@@ -815,12 +734,6 @@ export declare interface CubicBezierCurve3 {
815
734
  readonly end: Vector3Tuple;
816
735
  }
817
736
 
818
- /** Returns cumulative arc length for finite points under maxPathPoints (default 100000); rejects overflowing length. */
819
- export declare const cumulativePathLengths: (
820
- path: readonly Vector3Tuple[],
821
- limits?: Partial<GeometrySamplingLimits>,
822
- ) => readonly number[];
823
-
824
737
  /** Reusable planar curve definition. */
825
738
  export declare type Curve2 = LineCurve2 | ArcCurve2 | CubicBezierCurve2;
826
739
 
@@ -838,7 +751,7 @@ export declare interface CurveSamplingOptions {
838
751
  /** Millimetre sampling policy; circularSegments applies only to arcs. */
839
752
  readonly resolution?: GeometryResolution;
840
753
  /** Output vertex ceiling of at least two; may only lower limits.maxPathPoints. */
841
- readonly maximumVertices?: number;
754
+ readonly maxVertices?: number;
842
755
  /** Explicit sampling ceilings; omitted values use package defaults without ambient state. */
843
756
  readonly limits?: Partial<GeometrySamplingLimits>;
844
757
  }
@@ -874,7 +787,7 @@ export declare interface CylinderAnchorOptions {
874
787
  /** Named outward face; side anchors lie halfway up the cylinder. */
875
788
  readonly face: CylinderAnchorFace;
876
789
  /** Side angle counter-clockwise from +X, in degrees; defaults to zero. */
877
- readonly angleDegrees?: number;
790
+ readonly angle?: number;
878
791
  /** Centers the cylinder along Z; defaults to true, matching cylinder(). */
879
792
  readonly center?: boolean;
880
793
  /** Construction origin; centered-axis midpoint or noncentered bottom axis. Defaults to zero. */
@@ -886,7 +799,7 @@ export declare interface CylinderAnchorOptions {
886
799
  */
887
800
  export declare type CylinderOptions = CircularPrimitiveOptions &
888
801
  RadialSizingOptions &
889
- PrimitivePlacement & {
802
+ PrimitiveAttachment & {
890
803
  /**
891
804
  * Centers the solid on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
892
805
  * @defaultValue `true`
@@ -918,7 +831,7 @@ export declare interface CylindricalGearDimensions {
918
831
  /** Addendum above the pitch circle, in millimetres. */
919
832
  readonly addendum: number;
920
833
  /** Angular pitch between adjacent teeth, in radians. */
921
- readonly angularPitch: number;
834
+ readonly angularPitchRadians: number;
922
835
  /** Tangential backlash applied to this gear, in millimetres. */
923
836
  readonly backlash: number;
924
837
  /** Base-circle radius used by the involute, in millimetres. */
@@ -985,7 +898,7 @@ export declare interface CylindricalGearPairDimensions {
985
898
  /** Absolute driven-to-driver tooth-count ratio. */
986
899
  readonly ratio: number;
987
900
  /** Helix angle required on the driven member for conjugate teeth, in degrees. */
988
- readonly requiredDrivenHelixAngleDegrees: number;
901
+ readonly requiredDrivenHelixAngle: number;
989
902
  }
990
903
 
991
904
  /** Sampling controls for one coupled internal-gear tooth cycle. */
@@ -1021,7 +934,7 @@ export declare interface CylindricalGearPairSpec {
1021
934
  /**
1022
935
  * Nominal dimensions for a standard full-depth cylindrical involute gear.
1023
936
  *
1024
- * Lengths use millimetres. `module` and `pressureAngleDegrees` are measured in
937
+ * Lengths use millimetres. `module` and `pressureAngle` are measured in
1025
938
  * the normal plane; a non-zero signed helix angle is converted to transverse
1026
939
  * pitch-plane dimensions. Positive and negative helix angles identify
1027
940
  * opposite hands but produce the same 2D pitch geometry.
@@ -1032,11 +945,11 @@ export declare interface CylindricalGearSpec {
1032
945
  /** Dedendum clearance as a multiple of normal module; defaults to `0.25`. */
1033
946
  readonly clearanceFactor?: number;
1034
947
  /** Signed helix angle in degrees; zero creates a spur pitch system. */
1035
- readonly helixAngleDegrees?: number;
948
+ readonly helixAngle?: number;
1036
949
  /** Normal module in millimetres per tooth. */
1037
950
  readonly module: number;
1038
951
  /** Normal pressure angle in degrees; defaults to 20 degrees. */
1039
- readonly pressureAngleDegrees?: number;
952
+ readonly pressureAngle?: number;
1040
953
  /** Integer tooth count from 6 through 1,000; external profiles also enforce the no-undercut limit. */
1041
954
  readonly toothCount: number;
1042
955
  }
@@ -1067,11 +980,13 @@ export declare const distance3: (a: Vector3Tuple, b: Vector3Tuple) => number;
1067
980
  * open paths include both endpoints when `count` is greater than one.
1068
981
  * Coordinates and total length must be finite. Input points and output placements are each
1069
982
  * limited by maxPathPoints (default 100000); exact counts exceeding that ceiling reject before length calculation.
983
+ * Closure defaults to the path value's metadata, or false for tuples. An explicit conflicting closure rejects.
984
+ * Invalid arguments and degenerate paths throw GeometryError.
1070
985
  */
1071
986
  export declare const distributeAlongPath: (
1072
- path: readonly Vector3Tuple[],
987
+ input: Path3Input,
1073
988
  count: number,
1074
- closed: boolean,
989
+ closed?: boolean,
1075
990
  limits?: Partial<GeometrySamplingLimits>,
1076
991
  ) => readonly PathPlacement[];
1077
992
 
@@ -1152,6 +1067,7 @@ export declare function eulerTransform3(
1152
1067
 
1153
1068
  /**
1154
1069
  * Linearly extrudes one simple profile along +Z with robust ear-clipped caps.
1070
+ * Path2 profiles must be closed; raw point collections have an implicit closing edge.
1155
1071
  *
1156
1072
  * @example Extrude point data without an engine
1157
1073
  * ```ts
@@ -1160,7 +1076,7 @@ export declare function eulerTransform3(
1160
1076
  * ```
1161
1077
  */
1162
1078
  export declare function extrudeMesh(
1163
- profile: Contour,
1079
+ input: Path2Input,
1164
1080
  options: ExtrudeOptions,
1165
1081
  ): TriangleMesh;
1166
1082
 
@@ -1185,9 +1101,9 @@ export declare interface ExtrusionSamplingOptions {
1185
1101
  /** Operation-level physical policy over the nearest model scope. */
1186
1102
  readonly resolution?: GeometryResolution;
1187
1103
  /** Finite uniform or XY scale of the top profile; defaults to one. */
1188
- readonly scaleTop?: number | Vector2Tuple;
1104
+ readonly scaleTop?: number | Vector2Input;
1189
1105
  /** Finite rotation of the top profile about +Z, in degrees; defaults to zero. */
1190
- readonly twistDegrees?: number;
1106
+ readonly twist?: number;
1191
1107
  }
1192
1108
 
1193
1109
  /** Fits XY bounds uniformly and centers them in the target; zero source axes do not constrain scale. */
@@ -1321,9 +1237,9 @@ export declare interface GeometryResolution {
1321
1237
  /** Optional maximum sampled edge length in millimetres. */
1322
1238
  readonly maxSegmentLength?: number;
1323
1239
  /** Upper safety bound for a full circle; defaults to the selected maxCircularSegments (512 by default). */
1324
- readonly maximumSegments?: number;
1240
+ readonly maxSegments?: number;
1325
1241
  /** Lower full-circle segment count; defaults to 16 or a lower selected circular ceiling. */
1326
- readonly minimumSegments?: number;
1242
+ readonly minSegments?: number;
1327
1243
  }
1328
1244
 
1329
1245
  /** Explicit allocation ceilings for pure sampling and host-owned modeling operations. */
@@ -1349,7 +1265,7 @@ export declare interface GeometryToleranceOptions {
1349
1265
  }
1350
1266
 
1351
1267
  /** Returns one recommended metric clearance-hole diameter in millimetres. */
1352
- export declare function getMetricClearanceHole(
1268
+ export declare function getMetricClearanceHoleDiameter(
1353
1269
  size: MetricFastenerSize,
1354
1270
  fit?: ClearanceHoleFit,
1355
1271
  ): number;
@@ -1361,8 +1277,9 @@ export declare function getMetricFastenerStandard(
1361
1277
 
1362
1278
  /**
1363
1279
  * XY or XYZ grid with X varying fastest. The first item starts at the local origin.
1280
+ * Dimension 2 restricts counts and spacing to XY; any frame must preserve the XY plane.
1364
1281
  */
1365
- export declare type GridPatternOptions = {
1282
+ export declare type GridPatternOptions<Dimension extends 2 | 3 = 3> = {
1366
1283
  /** Center the complete distribution around its local origin; defaults to false. */
1367
1284
  readonly center?: boolean;
1368
1285
  /** Optional right-handed local axes and origin for the grid. */
@@ -1374,15 +1291,17 @@ export declare type GridPatternOptions = {
1374
1291
  /** Signed millimetres between adjacent copies on X and Y. */
1375
1292
  readonly spacing: Vector2Tuple;
1376
1293
  }
1377
- | {
1378
- /** Positive integer counts on X, Y and Z. */
1379
- readonly count: Vector3Tuple;
1380
- /** Signed millimetres between adjacent copies on X, Y and Z. */
1381
- readonly spacing: Vector3Tuple;
1382
- }
1294
+ | (Dimension extends 3
1295
+ ? {
1296
+ /** Positive integer counts on X, Y and Z. */
1297
+ readonly count: Vector3Tuple;
1298
+ /** Signed millimetres between adjacent copies on X, Y and Z. */
1299
+ readonly spacing: Vector3Tuple;
1300
+ }
1301
+ : never)
1383
1302
  );
1384
1303
 
1385
- /** XY or XYZ grid placements in millimetres, in X-fastest order. */
1304
+ /** Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. */
1386
1305
  export declare function gridPatternTransforms(
1387
1306
  options: GridPatternOptions,
1388
1307
  ): readonly Transform3Matrix[];
@@ -1475,6 +1394,15 @@ export declare interface HeightfieldPreflight {
1475
1394
  readonly byteCount: number;
1476
1395
  }
1477
1396
 
1397
+ /**
1398
+ * Builds closed thread-ridge components with every profile locked to the
1399
+ * shaft's radial/axial frame. The mesh is intended for union with its
1400
+ * minor-envelope cylinder and never owns WASM objects.
1401
+ */
1402
+ export declare function helicalThreadRidgeMesh(
1403
+ options: HelicalThreadRidgeMeshOptions,
1404
+ ): TriangleMesh;
1405
+
1478
1406
  /** Runtime-neutral options for the dedicated helical ridge mesher. */
1479
1407
  export declare interface HelicalThreadRidgeMeshOptions {
1480
1408
  /**
@@ -1491,7 +1419,7 @@ export declare interface HelicalThreadRidgeMeshOptions {
1491
1419
  /** Nominal major diameter before any caller-owned fit compensation. */
1492
1420
  readonly majorDiameter: number;
1493
1421
  /** Angular offset of the first start in degrees. Default: `0`. */
1494
- readonly phaseDegrees?: number;
1422
+ readonly phase?: number;
1495
1423
  /** Validated periodic profile repeated around the shaft. */
1496
1424
  readonly profile: ThreadProfile;
1497
1425
  /** Optional circular-resolution policy. */
@@ -1502,6 +1430,19 @@ export declare interface HelicalThreadRidgeMeshOptions {
1502
1430
  readonly tolerance?: GeometryToleranceOptions;
1503
1431
  }
1504
1432
 
1433
+ /**
1434
+ * Builds one closed threaded cylinder without a ridge/core Boolean seam.
1435
+ *
1436
+ * Each circular facet includes its exact phase-shifted profile breakpoints, including duplicate-Z
1437
+ * samples for vertical flanks and blunt transitions. Adjacent variable grids are stitched as a
1438
+ * monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
1439
+ * conservative pre-allocation estimate rejects excessive meshes before constructing position
1440
+ * arrays.
1441
+ */
1442
+ export declare function helicalThreadSolidMesh(
1443
+ options: HelicalThreadSolidMeshOptions,
1444
+ ): TriangleMesh;
1445
+
1505
1446
  /** Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. */
1506
1447
  export declare interface HelicalThreadSolidMeshOptions extends HelicalThreadRidgeMeshOptions {
1507
1448
  /** Apply a 45-degree radial bevel at the lower target face. */
@@ -1608,10 +1549,11 @@ export declare const lerp3: (
1608
1549
 
1609
1550
  /**
1610
1551
  * Equal linear intervals determined by exactly two of count, spacing and total length.
1552
+ * Dimension defaults to 3; Section patterns use 2 and accept XY vector directions.
1611
1553
  */
1612
- export declare type LinearPatternOptions = {
1554
+ export declare type LinearPatternOptions<Dimension extends 2 | 3 = 3> = {
1613
1555
  /** Direction of repetition; magnitude is ignored. Defaults to +X. */
1614
- readonly direction?: Vector3Tuple;
1556
+ readonly direction?: Dimension extends 2 ? Vector2Input : Vector3Input;
1615
1557
  } & (
1616
1558
  | {
1617
1559
  /** Positive copy count, including the original. */
@@ -1639,7 +1581,7 @@ export declare type LinearPatternOptions = {
1639
1581
  }
1640
1582
  );
1641
1583
 
1642
- /** Equal linear placements in millimetres, including the original at the origin. */
1584
+ /** Spatial XYZ matrix placements in millimetres, including the original at the origin. */
1643
1585
  export declare function linearPatternTransforms(
1644
1586
  options: LinearPatternOptions,
1645
1587
  ): readonly Transform3Matrix[];
@@ -1688,6 +1630,7 @@ export declare type LoftCorrespondence =
1688
1630
  * Both ends use ear-clipped caps, supporting concave profiles without center fans.
1689
1631
  * Intermediate slices interpolate placed world vertices, never frame axes.
1690
1632
  * Transformed coordinates must fit finite Float32 mesh storage.
1633
+ * Path2 profiles must be closed; raw point collections are interpreted as closed.
1691
1634
  *
1692
1635
  * @example Loft with explicit point correspondence
1693
1636
  * ```ts
@@ -1703,8 +1646,8 @@ export declare function loftMesh(
1703
1646
 
1704
1647
  /** One point-data profile at a height or explicit right-handed spatial frame. */
1705
1648
  export declare type LoftMeshStation = LoftPlacement & {
1706
- /** Ordered finite XY boundary points with an implicit closing edge. */
1707
- readonly profile: Contour;
1649
+ /** Closed Path2 or ordered finite XY boundary points with an implicit closing edge. */
1650
+ readonly profile: Path2Input;
1708
1651
  };
1709
1652
 
1710
1653
  /**
@@ -1784,21 +1727,6 @@ export declare function measureInternalCylindricalGearPairMotion(
1784
1727
  options?: CylindricalGearPairMotionOptions,
1785
1728
  ): CylindricalGearPairMotionReport;
1786
1729
 
1787
- /**
1788
- * Measures bounds, surface area, and signed volume without changing the mesh.
1789
- *
1790
- * Signed volume is meaningful for a consistently wound closed mesh. Set
1791
- * `requireClosed` when measurements will be used as manufacturing assertions.
1792
- *
1793
- * @param mesh - Mesh to validate and measure.
1794
- * @param options - Validation policy applied before measurement.
1795
- * @returns Immutable deterministic scalar and bounds measurements.
1796
- */
1797
- export declare function measureTriangleMesh(
1798
- mesh: TriangleMesh,
1799
- options?: TriangleMeshValidationOptions,
1800
- ): TriangleMeshMeasurements;
1801
-
1802
1730
  /**
1803
1731
  * Computes axis-aligned bounds for a non-empty mesh.
1804
1732
  *
@@ -1880,9 +1808,7 @@ export declare interface MetricSocketCapHeadDimensions {
1880
1808
  * count `z_v = z / cos³(beta)`, so increasing helix angle can reduce the physical tooth count.
1881
1809
  */
1882
1810
  export declare function minimumCylindricalGearToothCountWithoutUndercut(
1883
- spec?: Readonly<
1884
- Pick<CylindricalGearSpec, "helixAngleDegrees" | "pressureAngleDegrees">
1885
- >,
1811
+ spec?: Readonly<Pick<CylindricalGearSpec, "helixAngle" | "pressureAngle">>,
1886
1812
  ): number;
1887
1813
 
1888
1814
  /** Aggregate manufacturing output ceilings selected by a trusted host. */
@@ -1970,13 +1896,79 @@ export declare function optimizePlanarPatches(
1970
1896
  options?: PlanarMeshOptimizationOptions,
1971
1897
  ): PlanarMeshOptimizationResult;
1972
1898
 
1973
- /** An ordered, open sequence of two-dimensional points. */
1974
- export declare type Path2 = readonly Vector2Tuple[];
1899
+ /** Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. */
1900
+ export declare interface Path2 {
1901
+ /** Coordinate dimension; identifies planar paths even when empty. */
1902
+ readonly dimension: 2;
1903
+ /** Whether traversal includes the last-to-first edge. */
1904
+ readonly closed: boolean;
1905
+ /** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
1906
+ toArray(): Path2Data;
1907
+ /** Total sampled edge length in model units, including the closing edge when closed. */
1908
+ length(): number;
1909
+ /** Axis-aligned bounds, or undefined for an empty path. */
1910
+ bounds(): Bounds2 | undefined;
1911
+ /** Finds the nearest edge location; requires at least two vertices. */
1912
+ closestPoint(point: Vector2Input): PathLocation<Vector2>;
1913
+ /** Applies an XY placement without reordering traversal, including after reflection. */
1914
+ transform(placement: Transform2Input): Path2;
1915
+ /** Reverses vertex order and traversal; neither the source nor its coordinates are mutated. */
1916
+ reverse(): Path2;
1917
+ /** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
1918
+ resample(options?: PathResamplingOptions): Path2;
1919
+ }
1920
+
1921
+ /**
1922
+ * Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization.
1923
+ * Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated
1924
+ * seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed.
1925
+ * Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement
1926
+ * overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError.
1927
+ * A path input retains its closure. Limits bound construction only; resampling takes its own limits.
1928
+ */
1929
+ export declare function path2(input: Path2Input, options?: PathOptions): Path2;
1930
+
1931
+ /** XY point tuples for interchange; closure is supplied by the consuming operation or Path2 value. */
1932
+ export declare type Path2Data = readonly Vector2Tuple[];
1933
+
1934
+ /** An immutable XY sampled path or a collection of XY tuples and fluent vectors. */
1935
+ export declare type Path2Input = Path2 | readonly Vector2Input[];
1936
+
1937
+ /** Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. */
1938
+ export declare interface Path3 {
1939
+ /** Coordinate dimension; identifies spatial paths even when empty. */
1940
+ readonly dimension: 3;
1941
+ /** Whether traversal includes the last-to-first edge. */
1942
+ readonly closed: boolean;
1943
+ /** Returns frozen tuple coordinates; closure remains separate metadata. Repeated calls do not allocate. */
1944
+ toArray(): Path3Data;
1945
+ /** Total sampled edge length in model units, including the closing edge when closed. */
1946
+ length(): number;
1947
+ /** Axis-aligned bounds, or undefined for an empty path. */
1948
+ bounds(): Bounds3 | undefined;
1949
+ /** Finds the nearest edge location; requires at least two vertices. */
1950
+ closestPoint(point: Vector3Input): PathLocation<Vector3>;
1951
+ /** Applies an XYZ placement without changing traversal order or closure. */
1952
+ transform(placement: Transform3Input): Path3;
1953
+ /** Reverses vertex order and traversal without mutating the source. */
1954
+ reverse(): Path3;
1955
+ /** Returns a path sampled at equal arc lengths. Corners may be bridged; closure is preserved. */
1956
+ resample(options?: PathResamplingOptions): Path3;
1957
+ }
1975
1958
 
1976
1959
  /**
1977
- * An ordered, open sequence of three-dimensional points.
1960
+ * Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam,
1961
+ * allocation and error rules as path2. Analytic curves must be sampled explicitly first.
1978
1962
  */
1979
- export declare type Path3 = readonly Vector3Tuple[];
1963
+ export declare function path3(input: Path3Input, options?: PathOptions): Path3;
1964
+
1965
+ /**
1966
+ * XYZ point tuples for interchange; closure is supplied by the consuming operation or Path3 value.
1967
+ */
1968
+ export declare type Path3Data = readonly Vector3Tuple[];
1969
+
1970
+ /** An immutable XYZ sampled path or a collection of XYZ tuples and fluent vectors. */
1971
+ export declare type Path3Input = Path3 | readonly Vector3Input[];
1980
1972
 
1981
1973
  /** Orthonormal right-handed frame sampled along a path. */
1982
1974
  export declare interface PathFrame {
@@ -1988,13 +1980,17 @@ export declare interface PathFrame {
1988
1980
  readonly binormal: Vector3Tuple;
1989
1981
  }
1990
1982
 
1991
- /**
1992
- * Returns total sampled 3D path length, or zero for an empty path.
1993
- */
1994
- export declare const pathLength: (
1995
- path: readonly Vector3Tuple[],
1996
- limits?: Partial<GeometrySamplingLimits>,
1997
- ) => number;
1983
+ /** Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. */
1984
+ export declare interface PathLocation<Point extends Vector2 | Vector3> {
1985
+ /** Immutable position on the selected edge. */
1986
+ readonly point: Point;
1987
+ /** Euclidean distance from the query in model units. */
1988
+ readonly distance: number;
1989
+ /** Starting vertex of the selected edge; ties keep the first edge in traversal order. */
1990
+ readonly edgeIndex: number;
1991
+ /** Clamped fraction along that edge, not the whole path's normalized arc length. */
1992
+ readonly fraction: number;
1993
+ }
1998
1994
 
1999
1995
  /**
2000
1996
  * Supplies a profile-X orientation guide for each original normalized sweep station.
@@ -2006,15 +2002,23 @@ export declare const pathLength: (
2006
2002
  export declare type PathNormalGuide = (
2007
2003
  point: Vector3Tuple,
2008
2004
  index: number,
2009
- ) => Vector3Tuple;
2005
+ ) => Vector3Input;
2006
+
2007
+ /** Topology and allocation ceiling for an immutable sampled path. */
2008
+ export declare interface PathOptions {
2009
+ /** Connects the last vertex to the first; closed paths omit the repeated seam. Defaults to false. */
2010
+ readonly closed?: boolean;
2011
+ /** Construction point ceiling; defaults to package sampling limits. Later sampling has its own options. */
2012
+ readonly limits?: Partial<GeometrySamplingLimits>;
2013
+ }
2010
2014
 
2011
2015
  /** Equal physical arc-length placements along an open or implicitly closed sampled path. */
2012
2016
  export declare interface PathPatternOptions {
2013
2017
  /** Positive number of copies; open paths include both endpoints when greater than one. */
2014
2018
  readonly count: number;
2015
- /** Include the closing edge without duplicating the seam; defaults to false. */
2019
+ /** Raw point closure defaults to false; a path value supplies closure and rejects conflicts. */
2016
2020
  readonly closed?: boolean;
2017
- /** Preserve the source orientation, or align its +Z to the path tangent; defaults to fixed. */
2021
+ /** Preserve orientation, or align local +X for Sections / +Z for Solids to the tangent. Defaults to fixed. */
2018
2022
  readonly orientation?: "fixed" | "tangent";
2019
2023
  }
2020
2024
 
@@ -2024,7 +2028,7 @@ export declare interface PathPatternOptions {
2024
2028
  * Explicit sampling ceilings bound both input points and output placements.
2025
2029
  */
2026
2030
  export declare function pathPatternTransforms(
2027
- path: readonly Vector3Tuple[],
2031
+ path: Path3Input,
2028
2032
  options: PathPatternOptions,
2029
2033
  limits?: Partial<GeometrySamplingLimits>,
2030
2034
  ): readonly Transform3Matrix[];
@@ -2037,6 +2041,12 @@ export declare interface PathPlacement {
2037
2041
  readonly tangent: Vector3Tuple;
2038
2042
  }
2039
2043
 
2044
+ /** Equal arc-length sampling; the path itself owns whether its closing edge is included. */
2045
+ export declare interface PathResamplingOptions extends CurveSamplingOptions {
2046
+ /** Exact arc-length intervals; closed paths need at least three. Otherwise physical resolution or the effective source edge count controls sampling. */
2047
+ readonly segments?: number;
2048
+ }
2049
+
2040
2050
  /** A fixed XY point in world coordinates; omitted pivots use the coordinate origin. */
2041
2051
  export declare interface Pivot2Options {
2042
2052
  /** World-space point left fixed by rotation or scaling. */
@@ -2063,23 +2073,23 @@ export declare interface PlanarMeshOptimizationOptions extends TriangleMeshQuali
2063
2073
  * Maximum attempted edge evaluations. By default this is twenty times the initial candidate
2064
2074
  * edge count, capped at `1000000`.
2065
2075
  */
2066
- readonly maximumFlipAttempts?: number;
2076
+ readonly maxFlipAttempts?: number;
2067
2077
  /** Maximum times one edge may be reconsidered after neighbouring flips. Defaults to `12`. */
2068
- readonly maximumEdgeRevisits?: number;
2078
+ readonly maxEdgeRevisits?: number;
2069
2079
  /** Maximum triangles allowed in one selected patch. Defaults to `50000`. */
2070
- readonly maximumPatchTriangleCount?: number;
2080
+ readonly maxPatchTriangles?: number;
2071
2081
  /** Maximum cumulative triangles across selected patches. Defaults to `200000`. */
2072
- readonly maximumProcessedTriangleCount?: number;
2082
+ readonly maxProcessedTriangles?: number;
2073
2083
  /** Minimum triangles required before a planar patch is eligible. Defaults to `8`. */
2074
- readonly minimumPatchTriangleCount?: number;
2084
+ readonly minPatchTriangles?: number;
2075
2085
  /** Select patches whose worst normalized aspect ratio exceeds this value. Defaults to `12`. */
2076
- readonly triggerMaximumAspectRatio?: number;
2086
+ readonly triggerMaxAspectRatio?: number;
2077
2087
  /** Select patches whose largest per-vertex triangle share exceeds this ratio. Defaults to `0.2`. */
2078
- readonly triggerMaximumFanRatio?: number;
2088
+ readonly triggerMaxFanRatio?: number;
2079
2089
  /** Select patches whose largest vertex triangle incidence exceeds this value. Defaults to `16`. */
2080
- readonly triggerMaximumVertexTriangleIncidence?: number;
2090
+ readonly triggerMaxVertexTriangleIncidence?: number;
2081
2091
  /** Select patches whose smallest interior angle is below this many degrees. Defaults to `8`. */
2082
- readonly triggerMinimumAngleDegrees?: number;
2092
+ readonly triggerMinAngleDegrees?: number;
2083
2093
  }
2084
2094
 
2085
2095
  /** Outcome of bounded planar-patch optimization, including before/after diagnostics. */
@@ -2206,26 +2216,18 @@ export declare function preflightThreadedRod(
2206
2216
  options: ThreadedRodOptions,
2207
2217
  ): HelicalThreadSolidMeshPreflight;
2208
2218
 
2209
- /** Placement shared by solid and filled-section factories. */
2210
- export declare interface PrimitivePlacement {
2211
- /** Applied after local construction; Section placement must preserve the XY plane. */
2212
- readonly placement?: PrimitivePlacementOptions;
2219
+ /** Anchor attachment shared by solid and filled-section factories. */
2220
+ export declare interface PrimitiveAttachment {
2221
+ /** Applied after local construction; Section attachment must preserve the XY plane. */
2222
+ readonly attachment?: PrimitiveAttachmentOptions;
2213
2223
  }
2214
2224
 
2215
2225
  /** Maps an explicit or named shape-local attachment anchor onto a world-space anchor. */
2216
- export declare interface PrimitivePlacementOptions {
2226
+ export declare interface PrimitiveAttachmentOptions extends AttachOptions {
2217
2227
  /** Shape-local source frame or a named primitive anchor such as bottom. */
2218
2228
  readonly source: Anchor3 | string;
2219
2229
  /** World-space target frame in millimetres. */
2220
2230
  readonly target: Anchor3;
2221
- /** Align outward directions face-to-face or in parallel. Defaults to opposed. */
2222
- readonly alignment?: "opposed" | "same";
2223
- /** Finite separation along the target direction in millimetres. Defaults to zero. */
2224
- readonly gap?: number;
2225
- /** Finite additional roll around the attached direction in degrees. Defaults to zero. */
2226
- readonly spinDegrees?: number;
2227
- /** Explicit numeric comparison overrides for anchor normalization. */
2228
- readonly tolerance?: GeometryToleranceOptions;
2229
2231
  }
2230
2232
 
2231
2233
  /**
@@ -2325,9 +2327,9 @@ export declare type ProfileSpan2 = {
2325
2327
  /** Circular radius in millimetres. */
2326
2328
  readonly radius: number;
2327
2329
  /** Initial counterclockwise angle in degrees. */
2328
- readonly startDegrees: number;
2330
+ readonly startAngle: number;
2329
2331
  /** Signed counterclockwise angular sweep in degrees. */
2330
- readonly sweepDegrees: number;
2332
+ readonly sweepAngle: number;
2331
2333
  }
2332
2334
  | {
2333
2335
  /** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
@@ -2378,28 +2380,34 @@ export declare interface RackPitchSpec {
2378
2380
  /** Dedendum clearance as a multiple of normal module; defaults to `0.25`. */
2379
2381
  readonly clearanceFactor?: number;
2380
2382
  /** Signed helix angle in degrees; zero creates a straight rack. */
2381
- readonly helixAngleDegrees?: number;
2383
+ readonly helixAngle?: number;
2382
2384
  /** Normal module in millimetres per tooth. */
2383
2385
  readonly module: number;
2384
2386
  /** Normal pressure angle in degrees; defaults to 20 degrees. */
2385
- readonly pressureAngleDegrees?: number;
2387
+ readonly pressureAngle?: number;
2386
2388
  /** Number of complete rack teeth represented by the segment. */
2387
2389
  readonly toothCount: number;
2388
2390
  }
2389
2391
 
2390
2392
  /**
2391
- * Options for repeating one solid around an axis through a center point.
2393
+ * Degree rotations about a fixed world-space pivot; XY patterns use the implicit +Z axis.
2392
2394
  */
2393
- export declare interface RadialPatternOptions {
2394
- /** Number of solids to return, including the original. */
2395
+ export declare type RadialPatternOptions<Dimension extends 2 | 3 = 3> = {
2396
+ /** Number of shapes to return, including the original. */
2395
2397
  readonly count: number;
2396
- /** Axis of the right-handed rotation. Its magnitude is ignored. */
2397
- readonly axis: Vector3Tuple;
2398
2398
  /** Signed rotation from one copy to the next, in degrees. */
2399
- readonly angleDegrees: number;
2400
- /** Rotation center in world coordinates. Defaults to the origin. */
2401
- readonly center?: Vector3Tuple;
2402
- }
2399
+ readonly angle: number;
2400
+ /** Fixed world-space rotation pivot; defaults to the coordinate origin. */
2401
+ readonly pivot?: Dimension extends 2 ? Vector2Input : Vector3Input;
2402
+ } & (Dimension extends 2
2403
+ ? {
2404
+ /** XY rotation uses +Z; an explicit spatial axis is unavailable. */
2405
+ readonly axis?: never;
2406
+ }
2407
+ : {
2408
+ /** Axis of the right-handed rotation. Its nonzero magnitude is ignored. */
2409
+ readonly axis: Vector3Input;
2410
+ });
2403
2411
 
2404
2412
  /** Rotations about an explicit axis; angles use degrees and the first placement is identity. */
2405
2413
  export declare function radialPatternTransforms(
@@ -2516,7 +2524,7 @@ export declare interface RegularPolygonContourOptions extends RadialSizingOption
2516
2524
  /** Exact side count from three through the selected profile sampling ceiling. */
2517
2525
  readonly sides: number;
2518
2526
  /** Counterclockwise rotation in degrees; defaults to zero with a vertex on +X. */
2519
- readonly rotationDegrees?: number;
2527
+ readonly rotation?: number;
2520
2528
  }
2521
2529
 
2522
2530
  /** Resamples a planar polyline with the same point, tangent, seam and budget guarantees as 3D.
@@ -2553,7 +2561,7 @@ export declare function resamplePolyline3(
2553
2561
  * `alignTo` must be non-empty and contain only positive safe integers. Its checked least common
2554
2562
  * multiple defines the alignment grid. An exact `segments` value wins over
2555
2563
  * `resolution.circularSegments` and adaptive sampling, but is never rounded: it must already be
2556
- * aligned and meet `minimumSegments`. Adaptive counts are rounded upward and fail with
2564
+ * aligned and meet `minSegments`. Adaptive counts are rounded upward and fail with
2557
2565
  * `COMPLEXITY_LIMIT` when the aligned result exceeds the configured safety cap.
2558
2566
  *
2559
2567
  * @param radius - Positive circle radius in millimetres used for adaptive physical sampling.
@@ -2580,7 +2588,7 @@ export declare function resolveAlignedCircularSegments(
2580
2588
  * the reusable BOSL2-style convention while retaining at least one segment.
2581
2589
  *
2582
2590
  * @param radius - Arc radius in millimetres.
2583
- * @param angleDegrees - Non-zero signed sweep angle no greater than 360 degrees in magnitude.
2591
+ * @param angle - Non-zero signed sweep angle no greater than 360 degrees in magnitude.
2584
2592
  * @param policy - Optional operation-level policy over the active model scope.
2585
2593
  * @returns Segment count for the requested arc span.
2586
2594
  * @throws {@link GeometryError} when radius, angle, or resolution policy is invalid, or the
@@ -2594,7 +2602,7 @@ export declare function resolveAlignedCircularSegments(
2594
2602
  */
2595
2603
  export declare function resolveArcSegments(
2596
2604
  radius: number,
2597
- angleDegrees: number,
2605
+ angle: number,
2598
2606
  policy?: CircularResolutionOptions,
2599
2607
  limits?: Partial<GeometrySamplingLimits>,
2600
2608
  ): number;
@@ -2718,7 +2726,7 @@ export declare function resolveRackPitch(
2718
2726
  * Resolves a role-independent, start-aligned facet count from the larger female mating envelope.
2719
2727
  *
2720
2728
  * An exact `circularSegments` value must already be divisible by `starts`; it is never silently
2721
- * raised. Adaptive policies align upward and fail if that would exceed `maximumSegments`.
2729
+ * raised. Adaptive policies align upward and fail if that would exceed `maxSegments`.
2722
2730
  */
2723
2731
  export declare function resolveThreadCircularSegments(
2724
2732
  options: ThreadCircularSegmentsOptions,
@@ -2741,6 +2749,7 @@ export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
2741
2749
  * vertices and zero-area quads. Profile edges that lie entirely on the axis
2742
2750
  * collapse to the solid's interior and are intentionally omitted.
2743
2751
  * Profile coordinates must fit finite Float32 mesh storage.
2752
+ * Path2 profiles must be closed; raw point collections have an implicit closing edge.
2744
2753
  *
2745
2754
  * @param profile - Closed CCW `[radius, z]` profile without a duplicated seam point.
2746
2755
  * @param options - Optional physical or exact circumferential sampling controls. Defaults to `{}`.
@@ -2749,11 +2758,11 @@ export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
2749
2758
  * @example Partial revolution with end caps
2750
2759
  * ```ts
2751
2760
  * // Each point is [radius, Z]; the profile seam is implicit.
2752
- * revolveMesh([[0, 0], [12, 0], [8, 20], [0, 20]], { revolveDegrees: 270 });
2761
+ * revolveMesh([[0, 0], [12, 0], [8, 20], [0, 20]], { degrees: 270 });
2753
2762
  * ```
2754
2763
  */
2755
2764
  export declare const revolveMesh: (
2756
- profile: readonly Vector2Tuple[],
2765
+ input: Path2Input,
2757
2766
  options?: RevolveOptions,
2758
2767
  ) => TriangleMesh;
2759
2768
 
@@ -2762,12 +2771,14 @@ export declare const revolveMesh: (
2762
2771
  */
2763
2772
  export declare interface RevolveOptions extends CircularPrimitiveOptions {
2764
2773
  /**
2765
- * Positive angular sweep no greater than 360 degrees; partial revolutions have end caps.
2774
+ * Positive sweep in degrees, no greater than 360. Defaults to a full revolution;
2775
+ * smaller sweeps form partial revolutions with end caps.
2766
2776
  * Segment counts describe a complete circle and scale to this angular span. Native filled
2767
2777
  * revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
2768
2778
  * while exact counts that imply fewer intervals reject. Pure revolveMesh supports one interval.
2779
+ * @defaultValue `360`
2769
2780
  */
2770
- readonly revolveDegrees?: number;
2781
+ readonly degrees?: number;
2771
2782
  /** Explicit output and sampling allocation ceilings. */
2772
2783
  readonly limits?: Partial<ModelingLimits>;
2773
2784
  }
@@ -2803,9 +2814,10 @@ export declare function rotationTransform3(
2803
2814
  * 45% of adjacent segment lengths to prevent neighboring corners from crossing.
2804
2815
  * The returned path does not duplicate its closing point.
2805
2816
  * Coordinates and radius must be finite; input and output are each limited by maxPathPoints (default 100000).
2817
+ * Requires a closed path value; raw tuples are interpreted as closed. Invalid inputs throw GeometryError.
2806
2818
  */
2807
2819
  export declare const roundClosedPolylinePath: (
2808
- points: readonly Vector3Tuple[],
2820
+ input: Path3Input,
2809
2821
  radius: number,
2810
2822
  segmentsPerCorner: number,
2811
2823
  limits?: Partial<GeometrySamplingLimits>,
@@ -2836,7 +2848,7 @@ export declare interface RowLayoutOptions {
2836
2848
  * coordinate range are required. No native engine, SDK, or ambient resolution is used.
2837
2849
  *
2838
2850
  * @param curve - Closed contour in millimetres unless positive scales convert its coordinates.
2839
- * @param options - Physical resolution and unique vertex budget; defaults to 4096 vertices.
2851
+ * @param options - Physical resolution and unique vertex budget; defaults to min(4096, maxProfilePoints).
2840
2852
  * @returns Frozen counterclockwise loop in millimetres, without a repeated seam endpoint.
2841
2853
  * @throws {@link GeometryError} for invalid data, topology, scale, or exceeded sampling budgets.
2842
2854
  *
@@ -2866,7 +2878,7 @@ export declare interface SampleContourOptions {
2866
2878
  /** Physical policy evaluated after scaling, using the shared curve sampler. */
2867
2879
  readonly resolution?: GeometryResolution;
2868
2880
  /** Unique output vertex ceiling, at least three, within maxProfilePoints. Defaults to min(4096, maxProfilePoints). */
2869
- readonly maximumVertices?: number;
2881
+ readonly maxVertices?: number;
2870
2882
  /** Selected profile and per-segment path ceilings; omitted values use package defaults. */
2871
2883
  readonly limits?: Partial<GeometrySamplingLimits>;
2872
2884
  }
@@ -2876,7 +2888,7 @@ export declare interface SampleContourOptions {
2876
2888
  * frozen. At stationary tangents, outgoing secants are preferred and endpoints use a backward fallback.
2877
2889
  * @example
2878
2890
  * ```ts
2879
- * const turn = sampleCurve2({kind: "arc", center: [0,0], radius: 10, sweepDegrees: 90});
2891
+ * const turn = sampleCurve2({kind: "arc", center: [0,0], radius: 10, sweepAngle: 90});
2880
2892
  * ```
2881
2893
  */
2882
2894
  export declare function sampleCurve2(
@@ -2933,7 +2945,7 @@ export declare interface SampledThreadHelices {
2933
2945
  /** Axial advance over one revolution, equal to `pitch * starts`. */
2934
2946
  readonly lead: number;
2935
2947
  /** One immutable sampled path for each thread start. */
2936
- readonly paths: readonly Path3[];
2948
+ readonly paths: readonly Path3Data[];
2937
2949
  /** Adjacent axial thread spacing in millimetres. */
2938
2950
  readonly pitch: number;
2939
2951
  /** Number of revolutions represented by each path. */
@@ -2944,6 +2956,7 @@ export declare interface SampledThreadHelices {
2944
2956
  * Creates `segments + 1` points including exact helix endpoints from finite positive dimensions.
2945
2957
  * Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive
2946
2958
  * exact counts reject before evaluating axial weights or allocating sample arrays.
2959
+ * Invalid inputs use GeometryError; exceptions thrown by axialWeight propagate unchanged.
2947
2960
  */
2948
2961
  export declare const sampleHelix: ({
2949
2962
  turns,
@@ -2997,7 +3010,7 @@ export declare function sampleInternalCylindricalGearSpaceOutline(
2997
3010
  export declare function sampleRackToothPath(
2998
3011
  spec: RackPitchSpec,
2999
3012
  limits?: Partial<GeometrySamplingLimits>,
3000
- ): Path2;
3013
+ ): Path2Data;
3001
3014
 
3002
3015
  /**
3003
3016
  * Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline.
@@ -3008,7 +3021,7 @@ export declare function sampleRackToothPath(
3008
3021
  * no axis closure, winding normalization, or manufacturing repair is performed.
3009
3022
  *
3010
3023
  * @param curve - Open outline in millimetres unless the positive scales convert its coordinates.
3011
- * @param options - Physical resolution and output budget; defaults to 4096 vertices.
3024
+ * @param options - Physical resolution and output budget; defaults to min(4096, maxProfilePoints).
3012
3025
  * @returns Frozen open polyline in millimetres, ordered from lowest to highest anchor.
3013
3026
  * @throws {@link GeometryError} for invalid coordinates, order, scale, or exceeded subdivision budget.
3014
3027
  *
@@ -3034,7 +3047,7 @@ export declare interface SampleSideProfileOptions {
3034
3047
  /** Shared physical policy, evaluated after scaling; exact circular counts do not affect curves. */
3035
3048
  readonly resolution?: GeometryResolution;
3036
3049
  /** Maximum output vertex count within maxProfilePoints. Defaults to the smaller of 4096 and that ceiling. */
3037
- readonly maximumVertices?: number;
3050
+ readonly maxVertices?: number;
3038
3051
  /** Explicit profile and circular allocation ceilings. */
3039
3052
  readonly limits?: Partial<GeometrySamplingLimits>;
3040
3053
  }
@@ -3148,7 +3161,7 @@ export declare interface SmoothEdgeTreatment {
3148
3161
  /** Bounded floating-point intersection and shell-orientation validation settings. */
3149
3162
  export declare interface SolidMeshValidationOptions {
3150
3163
  /** Work ceiling for spatial comparisons and containment tests; defaults to 2,000,000 and may only lower it. */
3151
- readonly maximumTests?: number;
3164
+ readonly maxTests?: number;
3152
3165
  /** Distance comparison policy in millimetres; near contacts reject conservatively. */
3153
3166
  readonly tolerance?: GeometryToleranceOptions;
3154
3167
  }
@@ -3157,7 +3170,7 @@ export declare interface SolidMeshValidationOptions {
3157
3170
  * Exactly one radius or diameter, placement, and tessellation for an origin-centered sphere.
3158
3171
  */
3159
3172
  export declare type SphereOptions = CircularPrimitiveOptions &
3160
- PrimitivePlacement &
3173
+ PrimitiveAttachment &
3161
3174
  (
3162
3175
  | {
3163
3176
  /** Positive radius in millimetres; mutually exclusive with diameter. */
@@ -3200,40 +3213,40 @@ export declare const starContour: (
3200
3213
  ) => readonly Vector2Tuple[];
3201
3214
 
3202
3215
  /** End-cap treatment for an open stroked path. */
3203
- export declare type StrokePathCap = "butt" | "round" | "square";
3216
+ export declare type StrokeCap = "butt" | "round" | "square";
3204
3217
 
3205
3218
  /** Join treatment where adjacent stroked path segments meet. */
3206
- export declare type StrokePathJoin = "bevel" | "miter" | "round";
3207
-
3208
- /**
3209
- * Converts a sampled millimetre path into the filled region covered by a centered stroke.
3210
- *
3211
- * Closed paths omit a duplicated seam point. Zero-length sampled segments are ignored, while the
3212
- * effective path must still contain visible length. Round caps and joins use deterministic physical
3213
- * resolution. Bevels fill the outer corner triangle; miters extend the outer edges to their
3214
- * intersection, falling back to bevels above SVG's default miter limit of 4.
3215
- */
3216
- export declare function strokePathRegion(
3217
- path: Path2,
3218
- options: StrokePathRegionOptions,
3219
- ): RegionData;
3219
+ export declare type StrokeJoin = "bevel" | "miter" | "round";
3220
3220
 
3221
3221
  /** Physical stroke and topology controls shared by pure regions and native Sections. */
3222
- export declare interface StrokePathRegionOptions {
3222
+ export declare interface StrokeOptions {
3223
3223
  /** Explicit path, circular and expanded-profile allocation ceilings. */
3224
3224
  readonly limits?: Partial<GeometrySamplingLimits>;
3225
- /** Treat the path as a closed non-duplicated loop. Default: `false`. */
3225
+ /** Raw point closure defaults to false; a Path2 supplies its closure and rejects conflicts. */
3226
3226
  readonly closed?: boolean;
3227
3227
  /** End-cap treatment for an open path. Ignored for closed paths. Default: `butt`. */
3228
- readonly cap?: StrokePathCap;
3228
+ readonly cap?: StrokeCap;
3229
3229
  /** Corner treatment; miters exceeding SVG's default limit of 4 become bevels. Default: `miter`. */
3230
- readonly join?: StrokePathJoin;
3230
+ readonly join?: StrokeJoin;
3231
3231
  /** Physical tessellation policy for round caps and joins. */
3232
3232
  readonly resolution?: GeometryResolution;
3233
3233
  /** Positive total stroke width in millimetres, centered on the sampled path. */
3234
3234
  readonly width: number;
3235
3235
  }
3236
3236
 
3237
+ /**
3238
+ * Converts a sampled millimetre path into the filled region covered by a centered stroke.
3239
+ *
3240
+ * Closed paths omit a duplicated seam point. Zero-length sampled segments are ignored, while the
3241
+ * effective path must still contain visible length. Round caps and joins use deterministic physical
3242
+ * resolution. Bevels fill the outer corner triangle; miters extend the outer edges to their
3243
+ * intersection, falling back to bevels above SVG's default miter limit of 4.
3244
+ */
3245
+ export declare function strokeRegionData(
3246
+ path: Path2Input,
3247
+ options: StrokeOptions,
3248
+ ): RegionData;
3249
+
3237
3250
  /** Subtracts `b` from `a` component-wise. */
3238
3251
  export declare const subtract2: (
3239
3252
  a: Vector2Tuple,
@@ -3286,45 +3299,45 @@ export declare interface SvgRegionPreflightGeometryMetrics {
3286
3299
  /** Millimetre bounds, or `null` when no painted region remains. */
3287
3300
  readonly bounds: Bounds2 | null;
3288
3301
  /** Disconnected filled polygons in the final region. */
3289
- readonly components: number;
3302
+ readonly componentCount: number;
3290
3303
  /** Exterior and hole boundary count in the final region. */
3291
- readonly contours: number;
3304
+ readonly contourCount: number;
3292
3305
  /** Interior boundary count in the final region. */
3293
- readonly holes: number;
3306
+ readonly holeCount: number;
3294
3307
  /** Shortest final boundary edge in millimetres, or `null` for an empty region. */
3295
3308
  readonly minEdgeLength: number | null;
3296
3309
  /** Final boundary edges shorter than the conservative 0.01 mm indicator. */
3297
- readonly shortEdges: number;
3310
+ readonly shortEdgeCount: number;
3298
3311
  /** Components with less than 0.01 square millimetres of filled area. */
3299
- readonly tinyIslands: number;
3312
+ readonly tinyIslandCount: number;
3300
3313
  /** Non-duplicated boundary vertices in the final normalized region. */
3301
- readonly vertices: number;
3314
+ readonly vertexCount: number;
3302
3315
  }
3303
3316
 
3304
3317
  /** Visible, appearance-preserving cleanup counters from bounded SVG import. */
3305
3318
  export declare interface SvgRegionPreflightRepairs {
3306
3319
  /** Graphics elements with neither a visible fill nor a positive-width visible stroke. */
3307
- readonly invisibleElements: number;
3320
+ readonly invisibleElementCount: number;
3308
3321
  /** Open filled subpaths closed by SVG fill semantics without closing their strokes. */
3309
- readonly implicitFilledClosures: number;
3322
+ readonly implicitFilledClosureCount: number;
3310
3323
  /** Visibly painted elements whose fill and stroke both resolved to empty geometry. */
3311
- readonly emptyElements: number;
3324
+ readonly emptyElementCount: number;
3312
3325
  /** Consecutive repeated flattened vertices discarded before topology resolution. */
3313
- readonly removedDuplicateVertices: number;
3326
+ readonly removedDuplicateVertexCount: number;
3314
3327
  /** Explicit repeated seam vertices removed from otherwise closed contours. */
3315
- readonly removedSeamVertices: number;
3328
+ readonly removedSeamVertexCount: number;
3316
3329
  }
3317
3330
 
3318
3331
  /** Bounded source-complexity facts collected while parsing one SVG document. */
3319
3332
  export declare interface SvgRegionPreflightSourceMetrics {
3320
3333
  /** UTF-8 source size, capped at 256 KiB before parsing. */
3321
- readonly bytes: number;
3334
+ readonly byteCount: number;
3322
3335
  /** Renderable shape elements, capped at 500; containers and metadata are excluded. */
3323
- readonly elements: number;
3336
+ readonly elementCount: number;
3324
3337
  /** Flattened vertices emitted before fill, stroke, and clipping operations. */
3325
- readonly emittedVertices: number;
3338
+ readonly emittedVertexCount: number;
3326
3339
  /** Path endpoints and control vertices parsed before adaptive flattening. */
3327
- readonly parsedVertices: number;
3340
+ readonly parsedVertexCount: number;
3328
3341
  }
3329
3342
 
3330
3343
  /**
@@ -3339,8 +3352,8 @@ export declare interface SvgRegionPreflightSourceMetrics {
3339
3352
  * ```
3340
3353
  */
3341
3354
  export declare function sweepMesh(
3342
- profile: Contour,
3343
- path: readonly Vector3Tuple[],
3355
+ profile: Path2Input,
3356
+ path: Path3Input,
3344
3357
  options?: SweepOptions,
3345
3358
  ): TriangleMesh;
3346
3359
 
@@ -3348,7 +3361,7 @@ export declare function sweepMesh(
3348
3361
  * Controls shared by pure mesh construction and filled modeling sweeps.
3349
3362
  */
3350
3363
  export declare interface SweepOptions {
3351
- /** Join the path's last station to its first. Open paths retain watertight end caps. */
3364
+ /** Raw point closure defaults to false; a Path3 supplies its closure and rejects conflicts. */
3352
3365
  readonly closed?: boolean;
3353
3366
  /** Explicit output and sampling allocation ceilings. */
3354
3367
  readonly limits?: Partial<ModelingLimits>;
@@ -3357,11 +3370,11 @@ export declare interface SweepOptions {
3357
3370
  /** Physical sampling of nonzero twist; inserted stations retain authored station controls. */
3358
3371
  readonly resolution?: GeometryResolution;
3359
3372
  /** Total additional profile rotation in degrees, with progression selected by twistBy. */
3360
- readonly twistDegrees?: number;
3373
+ readonly twist?: number;
3361
3374
  /** Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap. */
3362
3375
  readonly twistBy?: "length" | "stations";
3363
3376
  /** Positive uniform/XY scale, or one XY pair per path station. Defaults to one. */
3364
- readonly scale?: number | Vector2Tuple | readonly Vector2Tuple[];
3377
+ readonly scale?: number | Vector2Input | readonly Vector2Input[];
3365
3378
  /** Corresponding point-index advance at a rotationally equivalent closed seam. */
3366
3379
  readonly seamProfileOffset?: number;
3367
3380
  }
@@ -3374,13 +3387,13 @@ export declare type SweepOrientation =
3374
3387
  /** Minimizes frame rotation by parallel transport. */
3375
3388
  readonly kind: "transport";
3376
3389
  /** Initial profile +X guide, projected perpendicular to the first tangent. */
3377
- readonly initialNormal?: Vector3Tuple;
3390
+ readonly initialNormal?: Vector3Input;
3378
3391
  }
3379
3392
  | {
3380
3393
  /** Projects one fixed world-space normal at every path station. */
3381
3394
  readonly kind: "fixed-normal";
3382
3395
  /** Directed profile +X guide; must not be parallel to any local tangent. */
3383
- readonly normal: Vector3Tuple;
3396
+ readonly normal: Vector3Input;
3384
3397
  }
3385
3398
  | {
3386
3399
  /** Uses an explicitly directed normal callback at each original normalized station. */
@@ -3419,7 +3432,7 @@ export declare interface ThreadCircularSegmentsOptions {
3419
3432
  * This keeps a compensated male/female pair on one role-independent grid when an internal
3420
3433
  * cutter has an enlarged entrance bevel. Default: `0`.
3421
3434
  */
3422
- readonly maximumRadialOutset?: number;
3435
+ readonly maxRadialOutset?: number;
3423
3436
  /** Validated mating profile whose pitch and flank capacities govern tessellation. */
3424
3437
  readonly profile: ThreadProfile;
3425
3438
  /** Physical or exact circular resolution policy. */
@@ -3559,7 +3572,7 @@ export declare interface ThreadHelixOptions {
3559
3572
  /** Total sampled axial length in millimetres. */
3560
3573
  readonly length: number;
3561
3574
  /** Angular offset of the first start in degrees. Default: `0`. */
3562
- readonly phaseDegrees?: number;
3575
+ readonly phase?: number;
3563
3576
  /** Adjacent axial thread spacing in millimetres. */
3564
3577
  readonly pitch: number;
3565
3578
  /** Radial distance from the +Z axis in millimetres. */
@@ -3596,6 +3609,20 @@ export declare interface ThreadProfile {
3596
3609
  readonly rootFlatWidth: number;
3597
3610
  }
3598
3611
 
3612
+ /**
3613
+ * Creates a periodic thread profile for the shaft-locked helical mesher.
3614
+ *
3615
+ * The open path spans one pitch. Radial zero is the major envelope; negative
3616
+ * values point toward the shaft. Custom paths must be finite, axially
3617
+ * non-decreasing, periodic at their endpoints, and reach radial zero.
3618
+ *
3619
+ * @example Printable triangular thread profile
3620
+ * ```ts
3621
+ * threadProfile({ kind: "triangular", pitch: 1.75 });
3622
+ * ```
3623
+ */
3624
+ export declare function threadProfile(spec: ThreadProfileSpec): ThreadProfile;
3625
+
3599
3626
  /** Fields shared by all thread profile specifications. */
3600
3627
  export declare interface ThreadProfileBaseSpec {
3601
3628
  /** Adjacent axial thread spacing in millimetres. */
@@ -3621,7 +3648,7 @@ export declare type ThreadRole = "male" | "female";
3621
3648
  /**
3622
3649
  * Dimensions and independent ring/profile tessellation for a torus around the Z axis.
3623
3650
  */
3624
- export declare interface TorusOptions extends PrimitivePlacement {
3651
+ export declare interface TorusOptions extends PrimitiveAttachment {
3625
3652
  /** Explicit sampling ceilings, bounded by the host policy. */
3626
3653
  readonly limits?: Partial<GeometrySamplingLimits>;
3627
3654
  /** Radius from the Z axis to the profile center, in millimetres; greater than `minorRadius`. */
@@ -3764,17 +3791,6 @@ export declare type Transform3Matrix = readonly [
3764
3791
  m33: number,
3765
3792
  ];
3766
3793
 
3767
- /**
3768
- * Applies a canonical affine XY transform to a closed loop and preserves its original winding.
3769
- *
3770
- * Reflections reverse the point order automatically through normalization.
3771
- */
3772
- export declare function transformContour(
3773
- loop: Contour,
3774
- transform: Transform2Input,
3775
- tolerance?: GeometryToleranceOptions,
3776
- ): Contour;
3777
-
3778
3794
  /**
3779
3795
  * Returns the determinant of a transform's linear 3x3 component.
3780
3796
  *
@@ -3787,19 +3803,6 @@ export declare function transformDeterminant3(
3787
3803
  transform: Transform3Matrix,
3788
3804
  ): number;
3789
3805
 
3790
- /** Applies a canonical affine XY transform to a 2D path without changing point order. */
3791
- export declare function transformPath2(
3792
- path: Path2,
3793
- transform: Transform2Input,
3794
- tolerance?: GeometryToleranceOptions,
3795
- ): Path2;
3796
-
3797
- /** Applies an affine transform to a 3D path without mutating its points. */
3798
- export declare function transformPath3(
3799
- path: Path3,
3800
- placement: Transform3Input,
3801
- ): Path3;
3802
-
3803
3806
  /**
3804
3807
  * Transforms serialized polygon data with reflection-safe winding, without an engine.
3805
3808
  * Use Section.transform(placement) when authoring filled geometry; this utility serves pure data preparation.
@@ -3817,12 +3820,12 @@ export declare function transformRegionData(
3817
3820
  * automatically reverses every triangle. Singular transforms are rejected.
3818
3821
  *
3819
3822
  * @param mesh - Mesh to transform without mutation.
3820
- * @param transform - Row-major affine transform.
3823
+ * @param placement - Immutable spatial placement or canonical row-major affine matrix.
3821
3824
  * @returns A mesh with fresh transformed positions and copied or reversed indices.
3822
3825
  */
3823
3826
  export declare function transformTriangleMesh(
3824
3827
  mesh: TriangleMesh,
3825
- transform: Transform3Matrix,
3828
+ placement: Transform3Input,
3826
3829
  ): TriangleMesh;
3827
3830
 
3828
3831
  /**
@@ -3845,10 +3848,11 @@ export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseS
3845
3848
  */
3846
3849
  readonly depth?: number;
3847
3850
  /**
3848
- * Included flank angle in degrees. Use `90` for printable 45-degree slopes.
3851
+ * Full angle between the flanks in degrees, from `0` inclusive to `180` exclusive.
3852
+ * Each flank uses half this angle from the radial direction; `90` gives 45-degree slopes.
3849
3853
  * @defaultValue `30`
3850
3854
  */
3851
- readonly threadAngle?: number;
3855
+ readonly includedAngle?: number;
3852
3856
  }
3853
3857
 
3854
3858
  /**
@@ -3865,7 +3869,7 @@ export declare interface TriangleMesh {
3865
3869
  * Measurements and optional edge-connected topology from one validated mesh traversal.
3866
3870
  */
3867
3871
  export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
3868
- /** Number of referenced edge-connected components when `includeTopology` is requested. */
3872
+ /** Number of referenced edge-connected boundary shells when `includeTopology` is requested; cavities count separately. */
3869
3873
  readonly connectedComponentCount?: number;
3870
3874
  /** Number of distinct indexed undirected edges when `includeTopology` is requested. */
3871
3875
  readonly edgeCount?: number;
@@ -3898,7 +3902,7 @@ export declare interface TriangleMeshMeasurements {
3898
3902
  /** Options controlling bounded triangle-mesh quality analysis. */
3899
3903
  export declare interface TriangleMeshQualityOptions {
3900
3904
  /** Maximum number of triangles inspected. Defaults to `200000`. */
3901
- readonly maximumTriangleCount?: number;
3905
+ readonly maxTriangles?: number;
3902
3906
  /** Numeric comparison overrides; model coordinates are interpreted in their existing units. */
3903
3907
  readonly tolerance?: GeometryToleranceOptions;
3904
3908
  }
@@ -3941,7 +3945,7 @@ export declare interface TriangleMeshQualityReport {
3941
3945
  export declare interface TriangleMeshSignature {
3942
3946
  /** Axis-aligned bounds quantized by `tolerances.position`. */
3943
3947
  readonly bounds: Bounds3;
3944
- /** Number of edge-connected closed components. */
3948
+ /** Number of edge-connected closed boundary shells; cavities count separately. */
3945
3949
  readonly connectedComponentCount: number;
3946
3950
  /** Total orientable genus across all connected components. */
3947
3951
  readonly genus: number;
@@ -3960,7 +3964,7 @@ export declare interface TriangleMeshSignature {
3960
3964
  /** Options controlling deterministic triangle-mesh regression signatures. */
3961
3965
  export declare interface TriangleMeshSignatureOptions {
3962
3966
  /** Maximum accepted triangle count. Defaults to 200,000. */
3963
- readonly maximumTriangleCount?: number;
3967
+ readonly maxTriangles?: number;
3964
3968
  /** Position and bounds quantization in model units. Defaults to `1e-5`. */
3965
3969
  readonly positionTolerance?: number;
3966
3970
  /** Signed-volume quantization in cubic model units. Defaults to `1e-4`. */
@@ -4010,7 +4014,7 @@ export declare function triangulateContour(loop: Contour): Uint32Array;
4010
4014
  * Dimensions, placement, and tessellation for a hollow Z-axis tube.
4011
4015
  */
4012
4016
  export declare interface TubeOptions
4013
- extends CircularPrimitiveOptions, PrimitivePlacement {
4017
+ extends CircularPrimitiveOptions, PrimitiveAttachment {
4014
4018
  /**
4015
4019
  * Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
4016
4020
  * @defaultValue `true`
@@ -4172,7 +4176,7 @@ export declare interface VectorTextArcBaseline {
4172
4176
  /** Baseline radius in millimetres, greater than zero and at most 10000. */
4173
4177
  readonly radius: number;
4174
4178
  /** Alignment datum in degrees counterclockwise from +X; defaults to 90. */
4175
- readonly centerAngleDegrees?: number;
4179
+ readonly centerAngle?: number;
4176
4180
  /** Reading direction around the circle; defaults to clockwise. */
4177
4181
  readonly direction?: "clockwise" | "counterclockwise";
4178
4182
  }