@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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Creates a centered-width native Section along a sampled XY path.
4
4
 
5
- **stroke**(`path`: [`Path2`](Path2.md), `options`: [`StrokeOptions`](StrokeOptions.md)): [`Section`](Section.md)
5
+ **stroke**(`path`: [`Path2Input`](Path2Input.md), `options`: [`StrokeOptions`](StrokeOptions.md)): [`Section`](Section.md)
6
6
 
7
7
 
8
8
 
@@ -12,7 +12,7 @@ Creates a centered-width native Section along a sampled XY path.
12
12
  stroke([[0, 0], [20, 0], [20, 10]], { width: 3, join: "round", cap: "round" }).extrude({ height: 2 });
13
13
  ```
14
14
 
15
- Shares caps, joins and physical sampling with Geometry's strokePathRegion. Native union
15
+ Shares caps, joins and physical sampling with Geometry's strokeRegionData. Native union
16
16
  resolves overlapping stroke primitives. Session resolution and resource ceilings apply;
17
17
  closed paths omit the duplicated seam. Returns an immutable deferred recipe.
18
18
 
@@ -20,7 +20,7 @@ closed paths omit the duplicated seam. Returns an immutable deferred recipe.
20
20
 
21
21
  <a id="path"></a>
22
22
 
23
- **`path`** · [`Path2`](Path2.md) · Required
23
+ **`path`** · [`Path2Input`](Path2Input.md) · Required
24
24
 
25
25
 
26
26
 
@@ -38,13 +38,13 @@ closed paths omit the duplicated seam. Returns an immutable deferred recipe.
38
38
 
39
39
  - [`closed`](StrokeOptions.md#closed) · `boolean` · Optional
40
40
 
41
- Treat the path as a closed non-duplicated loop. Default: `false`.
41
+ Raw point closure defaults to false; a Path2 supplies its closure and rejects conflicts.
42
42
 
43
- - [`cap`](StrokeOptions.md#cap) · [`StrokePathCap`](StrokePathCap.md) · Optional
43
+ - [`cap`](StrokeOptions.md#cap) · [`StrokeCap`](StrokeCap.md) · Optional
44
44
 
45
45
  End-cap treatment for an open path. Ignored for closed paths. Default: `butt`.
46
46
 
47
- - [`join`](StrokeOptions.md#join) · [`StrokePathJoin`](StrokePathJoin.md) · Optional
47
+ - [`join`](StrokeOptions.md#join) · [`StrokeJoin`](StrokeJoin.md) · Optional
48
48
 
49
49
  Corner treatment; miters exceeding SVG's default limit of 4 become bevels. Default: `miter`.
50
50
 
@@ -61,7 +61,7 @@ closed paths omit the duplicated seam. Returns an immutable deferred recipe.
61
61
 
62
62
  ## Related APIs
63
63
 
64
- - [Path2](Path2.md)
64
+ - [Path2Input](Path2Input.md)
65
65
  - [Section](Section.md)
66
66
  - [StrokeOptions](StrokeOptions.md)
67
67
 
@@ -71,4 +71,4 @@ closed paths omit the duplicated seam. Returns an immutable deferred recipe.
71
71
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
72
72
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
73
73
 
74
- Package: `@metamesh/modeling@0.14.0`.
74
+ Package: `@metamesh/modeling@0.15.0`.
@@ -62,4 +62,4 @@ svgPathSection("M0 0H20V12H0Z", { origin: "center", scale: 1 });
62
62
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
63
63
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
64
64
 
65
- Package: `@metamesh/modeling@0.14.0`.
65
+ Package: `@metamesh/modeling@0.15.0`.
@@ -61,4 +61,4 @@ svgSection(
61
61
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
62
62
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
63
63
 
64
- Package: `@metamesh/modeling@0.14.0`.
64
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Sweeps explicit corresponding contours using the selected frame policy. Filled Sections use `section.sweep(path, options)`.
4
4
 
5
- **sweep**(`shape`: [`CorrespondingProfile`](CorrespondingProfile.md), `path`: readonly [`Vector3Tuple`](Vector3Tuple.md)[], `options?`: [`SweepOptions`](SweepOptions.md)): [`Solid`](Solid.md)
5
+ **sweep**(`shape`: [`CorrespondingProfile`](CorrespondingProfile.md), `path`: [`Path3Input`](Path3Input.md), `options?`: [`SweepOptions`](SweepOptions.md)): [`Solid`](Solid.md)
6
6
 
7
7
 
8
8
 
@@ -28,7 +28,7 @@ sweep(profile!, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
28
28
 
29
29
  <a id="path"></a>
30
30
 
31
- **`path`** · readonly [`Vector3Tuple`](Vector3Tuple.md)[] · Required
31
+ **`path`** · [`Path3Input`](Path3Input.md) · Required
32
32
 
33
33
 
34
34
 
@@ -38,7 +38,7 @@ sweep(profile!, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
38
38
 
39
39
  - [`closed`](SweepOptions.md#closed) · `boolean` · Optional
40
40
 
41
- Join the path's last station to its first. Open paths retain watertight end caps.
41
+ Raw point closure defaults to false; a Path3 supplies its closure and rejects conflicts.
42
42
 
43
43
  - [`limits`](SweepOptions.md#limits) · `Partial`\<[`ModelingLimits`](ModelingLimits.md)\> · Optional
44
44
 
@@ -52,7 +52,7 @@ sweep(profile!, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
52
52
 
53
53
  Physical sampling of nonzero twist; inserted stations retain authored station controls.
54
54
 
55
- - [`twistDegrees`](SweepOptions.md#twistdegrees) · `number` · Optional
55
+ - [`twist`](SweepOptions.md#twist) · `number` · Optional
56
56
 
57
57
  Total additional profile rotation in degrees, with progression selected by twistBy.
58
58
 
@@ -60,7 +60,7 @@ sweep(profile!, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
60
60
 
61
61
  Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap.
62
62
 
63
- - [`scale`](SweepOptions.md#scale) · `number` \| [`Vector2Tuple`](Vector2Tuple.md) \| readonly [`Vector2Tuple`](Vector2Tuple.md)[] · Optional
63
+ - [`scale`](SweepOptions.md#scale) · `number` \| [`Vector2Input`](Vector2Input.md) \| readonly [`Vector2Input`](Vector2Input.md)[] · Optional
64
64
 
65
65
  Positive uniform/XY scale, or one XY pair per path station. Defaults to one.
66
66
 
@@ -78,9 +78,9 @@ sweep(profile!, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
78
78
  ## Related APIs
79
79
 
80
80
  - [CorrespondingProfile](CorrespondingProfile.md)
81
+ - [Path3Input](Path3Input.md)
81
82
  - [Solid](Solid.md)
82
83
  - [SweepOptions](SweepOptions.md)
83
- - [Vector3Tuple](Vector3Tuple.md)
84
84
 
85
85
  ## Guides
86
86
 
@@ -89,4 +89,4 @@ sweep(profile!, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
89
89
  - [Matched-section loft](../../guides/recipes.md#matched-section-loft)
90
90
  - [Choose a modeling path](../../guides/concepts.md#choose-a-modeling-path)
91
91
 
92
- Package: `@metamesh/modeling@0.14.0`.
92
+ Package: `@metamesh/modeling@0.15.0`.
@@ -54,4 +54,4 @@ function labelSection(layout: VectorTextLayout) {
54
54
  - [SVG sections: fills and strokes are different inputs](../../guides/concepts.md#svg-sections-fills-and-strokes-are-different-inputs)
55
55
  - [Text and font variability](../../guides/concepts.md#text-and-font-variability)
56
56
 
57
- Package: `@metamesh/modeling@0.14.0`.
57
+ Package: `@metamesh/modeling@0.15.0`.
@@ -37,7 +37,7 @@ Helical ridge mesh construction.
37
37
 
38
38
  Explicit output and circular allocation ceilings.
39
39
 
40
- - [`phaseDegrees`](HelicalThreadRidgeMeshOptions.md#phasedegrees) · `number` · Optional
40
+ - [`phase`](HelicalThreadRidgeMeshOptions.md#phase) · `number` · Optional
41
41
 
42
42
  Angular offset of the first start in degrees. Default: `0`.
43
43
 
@@ -69,4 +69,4 @@ Helical ridge mesh construction.
69
69
 
70
70
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
71
71
 
72
- Package: `@metamesh/modeling@0.14.0`.
72
+ Package: `@metamesh/modeling@0.15.0`.
@@ -10,9 +10,9 @@ Compensated threaded nut.
10
10
 
11
11
  ```ts
12
12
  import { threadedNut } from "@metamesh/modeling";
13
- import { createThreadProfile } from "@metamesh/modeling/geometry";
13
+ import { threadProfile } from "@metamesh/modeling/geometry";
14
14
 
15
- const profile = createThreadProfile({ kind: "triangular", pitch: 1.75 });
15
+ const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
16
16
  threadedNut({ nominalMajorDiameter: 12, thickness: 8, width: 20, shape: "hex", profile, fit: "normal" });
17
17
  ```
18
18
 
@@ -55,7 +55,7 @@ threadedNut({ nominalMajorDiameter: 12, thickness: 8, width: 20, shape: "hex", p
55
55
 
56
56
  Explicit output and circular allocation ceilings.
57
57
 
58
- - [`phaseDegrees`](ThreadedNutOptions.md#phasedegrees) · `number` · Optional
58
+ - [`phase`](ThreadedNutOptions.md#phase) · `number` · Optional
59
59
 
60
60
  Angular offset of the first start in degrees. Default: `0`.
61
61
 
@@ -107,4 +107,4 @@ threadedNut({ nominalMajorDiameter: 12, thickness: 8, width: 20, shape: "hex", p
107
107
 
108
108
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
109
109
 
110
- Package: `@metamesh/modeling@0.14.0`.
110
+ Package: `@metamesh/modeling@0.15.0`.
@@ -10,9 +10,9 @@ Compensated external threaded rod.
10
10
 
11
11
  ```ts
12
12
  import { threadedRod } from "@metamesh/modeling";
13
- import { createThreadProfile } from "@metamesh/modeling/geometry";
13
+ import { threadProfile } from "@metamesh/modeling/geometry";
14
14
 
15
- const profile = createThreadProfile({ kind: "triangular", pitch: 1.75 });
15
+ const profile = threadProfile({ kind: "triangular", pitch: 1.75 });
16
16
  threadedRod({ nominalMajorDiameter: 12, length: 24, profile, fit: "normal" });
17
17
  ```
18
18
 
@@ -47,7 +47,7 @@ threadedRod({ nominalMajorDiameter: 12, length: 24, profile, fit: "normal" });
47
47
 
48
48
  Explicit output and circular allocation ceilings.
49
49
 
50
- - [`phaseDegrees`](ThreadedRodOptions.md#phasedegrees) · `number` · Optional
50
+ - [`phase`](ThreadedRodOptions.md#phase) · `number` · Optional
51
51
 
52
52
  Angular offset of the first start in degrees. Default: `0`.
53
53
 
@@ -96,4 +96,4 @@ threadedRod({ nominalMajorDiameter: 12, length: 24, profile, fit: "normal" });
96
96
 
97
97
  - [Build printable threads](https://metamesh.studio/docs/develop/printable-threads#build-the-first-mating-pair)
98
98
 
99
- Package: `@metamesh/modeling@0.14.0`.
99
+ Package: `@metamesh/modeling@0.15.0`.
@@ -30,9 +30,9 @@ torus({ majorRadius: 12, minorRadius: 3 });
30
30
 
31
31
  Radius of the swept circular profile in millimetres.
32
32
 
33
- - [`placement`](TorusOptions.md#placement) · [`PrimitivePlacementOptions`](PrimitivePlacementOptions.md) · Optional
33
+ - [`attachment`](TorusOptions.md#attachment) · [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md) · Optional
34
34
 
35
- Applied after local construction; Section placement must preserve the XY plane.
35
+ Applied after local construction; Section attachment must preserve the XY plane.
36
36
 
37
37
  - [`limits`](TorusOptions.md#limits) · `Partial`\<[`GeometrySamplingLimits`](GeometrySamplingLimits.md)\> · Optional
38
38
 
@@ -67,4 +67,4 @@ torus({ majorRadius: 12, minorRadius: 3 });
67
67
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
68
68
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
69
69
 
70
- Package: `@metamesh/modeling@0.14.0`.
70
+ Package: `@metamesh/modeling@0.15.0`.
@@ -36,4 +36,4 @@ placement.applyPoint([1, 0]).toArray(); // approximately [10, 1]
36
36
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
37
37
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
38
38
 
39
- Package: `@metamesh/modeling@0.14.0`.
39
+ Package: `@metamesh/modeling@0.15.0`.
@@ -36,4 +36,4 @@ placement.applyPoint([1, 0, 0]).toArray(); // approximately [10, 1, 0]
36
36
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
37
37
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
38
38
 
39
- Package: `@metamesh/modeling@0.14.0`.
39
+ Package: `@metamesh/modeling@0.15.0`.
@@ -49,9 +49,9 @@ tube({ height: 20, outerRadius: 10, innerRadius: 6 });
49
49
 
50
50
  Operation-level physical tessellation policy over the active model-wide policy.
51
51
 
52
- - [`placement`](TubeOptions.md#placement) · [`PrimitivePlacementOptions`](PrimitivePlacementOptions.md) · Optional
52
+ - [`attachment`](TubeOptions.md#attachment) · [`PrimitiveAttachmentOptions`](PrimitiveAttachmentOptions.md) · Optional
53
53
 
54
- Applied after local construction; Section placement must preserve the XY plane.
54
+ Applied after local construction; Section attachment must preserve the XY plane.
55
55
 
56
56
  - [`center`](TubeOptions.md#center) · `boolean` · Optional · Default: `true`
57
57
 
@@ -74,4 +74,4 @@ tube({ height: 20, outerRadius: 10, innerRadius: 6 });
74
74
  - [Choose a primitive](../../guides/recipes.md#choose-a-primitive)
75
75
  - [Treated boxes, frustums, and mirrored arrays](../../guides/recipes.md#treated-boxes-frustums-and-mirrored-arrays)
76
76
 
77
- Package: `@metamesh/modeling@0.14.0`.
77
+ Package: `@metamesh/modeling@0.15.0`.
@@ -69,4 +69,4 @@ Native filled section union; dimensions cannot be mixed.
69
69
  - [Choose the Boolean by the material you want](../../guides/fundamentals.md#choose-the-boolean-by-the-material-you-want)
70
70
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
71
71
 
72
- Package: `@metamesh/modeling@0.14.0`.
72
+ Package: `@metamesh/modeling@0.15.0`.
@@ -29,4 +29,4 @@ Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the
29
29
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
30
30
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
31
31
 
32
- Package: `@metamesh/modeling@0.14.0`.
32
+ Package: `@metamesh/modeling@0.15.0`.
@@ -36,4 +36,4 @@ const alignment = direction.dot([0, 0, 1]);
36
36
  - [Named anchors and custom frames](../../guides/recipes.md#named-anchors-and-custom-frames)
37
37
  - [Primitive booleans and repeated placement](../../guides/recipes.md#primitive-booleans-and-repeated-placement)
38
38
 
39
- Package: `@metamesh/modeling@0.14.0`.
39
+ Package: `@metamesh/modeling@0.15.0`.
@@ -24,10 +24,11 @@ See [host lifecycle](engine.md) and [pure foundations](geometry.md).
24
24
  - [Primitives](model/categories/primitives.md) — Create foundational solid geometry and configure its dimensions and tessellation.
25
25
  - [Local resolution](model/categories/resolution.md) — Choose physical curve sampling and explicit native tolerance.
26
26
  - [2D Sections](model/categories/sections.md) — Create immutable filled XY shapes, including prepared text and bounded painted SVG.
27
+ - [Sampled paths](model/categories/paths.md) — Reusable immutable planar and spatial trajectories.
27
28
  - [Boolean Operations](model/categories/boolean-operations.md) — Combine, intersect and subtract same-dimensional shapes; construct solid envelopes and sums.
28
29
  - [Transforms, Vectors & Placement](model/categories/transforms-placement.md) — Calculate with immutable vectors, reuse transforms, and arrange geometry with explicit placement contracts.
29
30
  - [Extrude, Revolve & Sweep](model/categories/extrude-revolve-sweep.md) — Turn sections and paths into extruded, lofted, revolved, or swept solids.
30
- - [Printable threads](model/categories/threads.md) — Construct compensated thread forms and inspect allocation-free preflight facts.
31
+ - [Printable threads](model/categories/threads.md) — Construct compensated thread forms and inspect bounded preflight facts.
31
32
  - [Mesh & Inspection](model/categories/mesh-inspection.md) — Convert validated meshes and inspect stable section or solid measurements.
32
33
  - [Core Values & Errors](model/categories/core-values-errors.md) — Use the small shared vocabulary for authored geometry, coordinates, paths, and stable failures.
33
34
  - [Explicit matching profiles](model/categories/explicit-profiles.md) — Build hollow or multicomponent lofts and sweeps using stable landmarks.
@@ -36,4 +37,4 @@ See [host lifecycle](engine.md) and [pure foundations](geometry.md).
36
37
  - [Model generation](model/categories/generation.md) — Declare typed programs, optional computations, semantic parts and structured diagnostics.
37
38
  - [Model contracts](model/categories/contracts.md) — Describe opaque handles, dimensions, manufacturing parts, and completed snapshots.
38
39
 
39
- Package: `@metamesh/modeling@0.14.0`.
40
+ Package: `@metamesh/modeling@0.15.0`.
@@ -31,4 +31,4 @@ Inclusive minimum X/Y coordinates.
31
31
 
32
32
  - [Vector2Tuple](Vector2Tuple.md)
33
33
 
34
- Package: `@metamesh/modeling@0.14.0`.
34
+ Package: `@metamesh/modeling@0.15.0`.
@@ -4,4 +4,4 @@ Limits apply before parsing or shaping untrusted font data.
4
4
 
5
5
  `const` **MAX\_VECTOR\_FONT\_BYTES**: `number`
6
6
 
7
- Package: `@metamesh/modeling@0.14.0`.
7
+ Package: `@metamesh/modeling@0.15.0`.
@@ -4,4 +4,4 @@ A two-dimensional Cartesian vector or point.
4
4
 
5
5
  **Vector2Tuple** = readonly \[`x`: `number`, `y`: `number`\]
6
6
 
7
- Package: `@metamesh/modeling@0.14.0`.
7
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # VectorFont
2
2
 
3
- A prepared font owns its parsed bytes; keep handles local to their Worker or invocation.
3
+ A prepared font owns its parsed bytes; keep handles local to their Worker or invocation. Invalid arguments and bounded-work failures use GeometryError; unexpected dependency errors propagate.
4
4
 
5
5
  ## Properties
6
6
 
@@ -183,4 +183,4 @@ Serialize visible horizontal or circular outlines as bounded path-only SVG in ph
183
183
  - [VectorTextLayoutOptions](VectorTextLayoutOptions.md)
184
184
  - [VectorTextMetrics](VectorTextMetrics.md)
185
185
 
186
- Package: `@metamesh/modeling@0.14.0`.
186
+ Package: `@metamesh/modeling@0.15.0`.
@@ -14,4 +14,4 @@ Identifies the actual weight of a static face, without synthesizing a different
14
14
 
15
15
  Actual weight of a static face, 1–1000; defaults to 400.
16
16
 
17
- Package: `@metamesh/modeling@0.14.0`.
17
+ Package: `@metamesh/modeling@0.15.0`.
@@ -28,11 +28,11 @@ Baseline radius in millimetres, greater than zero and at most 10000.
28
28
 
29
29
  ***
30
30
 
31
- ### centerAngleDegrees?
31
+ ### centerAngle?
32
32
 
33
33
 
34
34
 
35
- `readonly` `optional` **centerAngleDegrees?**: `number`
35
+ `readonly` `optional` **centerAngle?**: `number`
36
36
 
37
37
 
38
38
 
@@ -50,4 +50,4 @@ Alignment datum in degrees counterclockwise from +X; defaults to 90.
50
50
 
51
51
  Reading direction around the circle; defaults to clockwise.
52
52
 
53
- Package: `@metamesh/modeling@0.14.0`.
53
+ Package: `@metamesh/modeling@0.15.0`.
@@ -31,4 +31,4 @@ Exact measurements of these paths and their logical text layout.
31
31
 
32
32
  - [VectorTextMetrics](VectorTextMetrics.md)
33
33
 
34
- Package: `@metamesh/modeling@0.14.0`.
34
+ Package: `@metamesh/modeling@0.15.0`.
@@ -108,4 +108,4 @@ Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
108
108
  - [VectorTextArcBaseline](VectorTextArcBaseline.md)
109
109
  - [VectorTextOptions](VectorTextOptions.md)
110
110
 
111
- Package: `@metamesh/modeling@0.14.0`.
111
+ Package: `@metamesh/modeling@0.15.0`.
@@ -91,4 +91,4 @@ Number of lines, including empty and trailing lines; empty text occupies one lin
91
91
 
92
92
  - [Bounds2](Bounds2.md)
93
93
 
94
- Package: `@metamesh/modeling@0.14.0`.
94
+ Package: `@metamesh/modeling@0.15.0`.
@@ -47,4 +47,4 @@ Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
47
47
 
48
48
  - [VectorTextLayoutOptions](VectorTextLayoutOptions.md)
49
49
 
50
- Package: `@metamesh/modeling@0.14.0`.
50
+ Package: `@metamesh/modeling@0.15.0`.
@@ -8,13 +8,13 @@ Prepare fonts before modeling. TTF, OTF, and WOFF are parsed directly; WOFF2 dec
8
8
 
9
9
  | API | Summary |
10
10
  | --- | --- |
11
- | [prepareVectorFont](../prepareVectorFont.md) | Parses bounded font bytes using optional fontkit and WOFF2 peers; no font fetching occurs here. |
11
+ | [prepareVectorFont](../prepareVectorFont.md) | Parses bounded font bytes using optional fontkit and WOFF2 peers; no font fetching occurs here. Argument and resource failures use GeometryError; parser and decoder exceptions propagate unchanged. |
12
12
 
13
13
  ## Interfaces
14
14
 
15
15
  | API | Summary |
16
16
  | --- | --- |
17
- | [VectorFont](../VectorFont.md) | A prepared font owns its parsed bytes; keep handles local to their Worker or invocation. |
17
+ | [VectorFont](../VectorFont.md) | A prepared font owns its parsed bytes; keep handles local to their Worker or invocation. Invalid arguments and bounded-work failures use GeometryError; unexpected dependency errors propagate. |
18
18
  | [VectorFontOptions](../VectorFontOptions.md) | Identifies the actual weight of a static face, without synthesizing a different weight. |
19
19
  | [VectorTextArcBaseline](../VectorTextArcBaseline.md) | A circular baseline centered at the XY origin, with rigid shaped glyph groups. |
20
20
  | [VectorTextLayout](../VectorTextLayout.md) | Immutable vector layout with no browser, font parser, or kernel ownership. |
@@ -35,4 +35,4 @@ Prepare fonts before modeling. TTF, OTF, and WOFF are parsed directly; WOFF2 dec
35
35
  | --- | --- |
36
36
  | [MAX_VECTOR_FONT_BYTES](../MAX_VECTOR_FONT_BYTES.md) | Limits apply before parsing or shaping untrusted font data. |
37
37
 
38
- Package: `@metamesh/modeling@0.14.0`.
38
+ Package: `@metamesh/modeling@0.15.0`.
@@ -1,6 +1,6 @@
1
1
  # prepareVectorFont
2
2
 
3
- Parses bounded font bytes using optional fontkit and WOFF2 peers; no font fetching occurs here.
3
+ Parses bounded font bytes using optional fontkit and WOFF2 peers; no font fetching occurs here. Argument and resource failures use GeometryError; parser and decoder exceptions propagate unchanged.
4
4
 
5
5
  **prepareVectorFont**(`bytes`: `Uint8Array`, `options?`: [`VectorFontOptions`](VectorFontOptions.md)): `Promise`\<[`VectorFont`](VectorFont.md)\>
6
6
 
@@ -43,4 +43,4 @@ async function prepareLabel(fontBytes: Uint8Array) {
43
43
  - [VectorFont](VectorFont.md)
44
44
  - [VectorFontOptions](VectorFontOptions.md)
45
45
 
46
- Package: `@metamesh/modeling@0.14.0`.
46
+ Package: `@metamesh/modeling@0.15.0`.
@@ -18,4 +18,4 @@ Paths and metrics use Y-up millimetres and a baseline origin. Empty layouts can
18
18
 
19
19
  - [Font preparation](text/categories/font-preparation.md) — Prepare bounded exact font bytes and reusable vector layouts.
20
20
 
21
- Package: `@metamesh/modeling@0.14.0`.
21
+ Package: `@metamesh/modeling@0.15.0`.
@@ -2,7 +2,9 @@ import { edgeTreatmentSetbacks } from "../geometry/edge-finishing.js";
2
2
  import { GeometryError } from "../geometry/errors.js";
3
3
  import { resolveExtrusionContourDivisions, resolveExtrusionControls, } from "../geometry/extrusion.js";
4
4
  import { heightfieldMesh } from "../geometry/heightfield.js";
5
+ import { vector2Data, vector3Data } from "../geometry/math/vector-value.js";
5
6
  import { assertMeshAllocationWithinLimits } from "../geometry/model-limits.js";
7
+ import { path3InputData } from "../geometry/paths/path-value.js";
6
8
  import { assertPrimitiveOptions } from "../geometry/primitive-resolvers.js";
7
9
  import { matchProfiles } from "../geometry/profiles/matched.js";
8
10
  import { resolveGeometryResolution } from "../geometry/resolution.js";
@@ -20,11 +22,12 @@ export function createConstructionOperations(environment, sections) {
20
22
  const { module, scope, limits, assertActive, throwGeometryError, resolveHandle, nativeSolid, nativeSection, wrapSolid, wrapSection, ownSolid, ownSection, validateFiniteNumber, requirePositiveNumber, validateCoordinates, assertOperandCount, assertMeshAllocation, withResolutionDefaults, resolveCircularSegments, } = environment;
21
23
  const cuttingPlane = (value, operation) => {
22
24
  assertPrimitiveOptions(value, operation);
23
- validateCoordinates(value.normal, 3, operation);
24
- const magnitude = Math.max(...value.normal.map(Math.abs));
25
+ const inputNormal = vector3Data(value.normal);
26
+ validateCoordinates(inputNormal, 3, operation);
27
+ const magnitude = Math.max(...inputNormal.map(Math.abs));
25
28
  if (magnitude === 0)
26
29
  throwGeometryError("DEGENERATE_GEOMETRY", operation, "Plane normals must be nonzero.");
27
- const scaled = value.normal.map((coordinate) => coordinate / magnitude);
30
+ const scaled = inputNormal.map((coordinate) => coordinate / magnitude);
28
31
  const length = Math.hypot(...scaled);
29
32
  const normal = [scaled[0] / length, scaled[1] / length, scaled[2] / length];
30
33
  return { normal, offset: validateFiniteNumber(value.offset ?? 0, operation) };
@@ -55,7 +58,7 @@ export function createConstructionOperations(environment, sections) {
55
58
  const policy = resolveGeometryResolution(resolved.resolution, resolved.limits);
56
59
  // Untwisted uniform taper has planar sides. Its default two-cap topology
57
60
  // needs no native contour extraction or longitudinal interpolation.
58
- if (controls.twistDegrees === 0 &&
61
+ if (controls.twist === 0 &&
59
62
  controls.scales[0] === controls.scales[1] &&
60
63
  policy.maxSegmentLength === undefined)
61
64
  divisions = 0;
@@ -69,7 +72,7 @@ export function createConstructionOperations(environment, sections) {
69
72
  // a hole also bounds disconnected Sections, without extracting native point data.
70
73
  triangles = Math.max(0, vertices * 2 + 4 * native.numContour() - 8);
71
74
  assertMeshAllocationWithinLimits(vertices, triangles, vertices * 12 + triangles * 12, "extrude", resolved.limits);
72
- return ownSolid(native.extrude(value.height, divisions, controls.twistDegrees, controls.scales, controls.center));
75
+ return ownSolid(native.extrude(value.height, divisions, controls.twist, controls.scales, controls.center));
73
76
  };
74
77
  const boolean = (values, operation) => {
75
78
  assertOperandCount(values, operation);
@@ -131,13 +134,21 @@ export function createConstructionOperations(environment, sections) {
131
134
  assertOperandCount(value.sections, "hull");
132
135
  return ownSection(module.CrossSection.hull(value.sections.map(nativeSection)));
133
136
  }
134
- if (value.points !== undefined && value.points[0]?.length === 2) {
137
+ if (value.points !== undefined) {
138
+ const pointArray = Array.isArray(value.points);
139
+ if (!pointArray)
140
+ throwGeometryError("INVALID_ARGUMENT", "hull", "Hull points must be an array.");
141
+ assertSamplingCount(value.points.length, "hull", 100_000);
142
+ }
143
+ const first = value.points?.[0];
144
+ const coordinates = typeof first === "object" && first !== null && "toArray" in first ? first.toArray() : first;
145
+ if (value.points !== undefined && coordinates?.length === 2) {
135
146
  const points = value.points;
136
- const pointInputs = points;
137
147
  if (!Array.isArray(points) || points.length < 3)
138
148
  throwGeometryError("INVALID_ARGUMENT", "hull", "A planar hull needs at least three points.");
139
149
  assertSamplingCount(points.length, "hull", Math.min(100_000, limits.maxProfilePoints));
140
- const copied = pointInputs.map((point) => {
150
+ const copied = points.map((input) => {
151
+ const point = vector2Data(input);
141
152
  validateCoordinates(point, 2, "hull");
142
153
  return [point[0], point[1]];
143
154
  });
@@ -146,8 +157,12 @@ export function createConstructionOperations(environment, sections) {
146
157
  throwGeometryError("DEGENERATE_GEOMETRY", "hull", "Hull points must span positive area.");
147
158
  return wrapSection(native);
148
159
  }
160
+ if (value.points !== undefined && value.points.length < 4)
161
+ throwGeometryError("INVALID_ARGUMENT", "hull", "A point hull needs at least four XYZ points.");
149
162
  return wrapSolid(kernel.hull(scope, !hasSolids
150
- ? { points: value.points }
163
+ ? {
164
+ points: value.points.map((point) => vector3Data(point)),
165
+ }
151
166
  : { solids: value.solids.map(nativeSolid) }));
152
167
  }),
153
168
  minkowskiSum: (a, b) => wrapSolid(kernel.minkowskiSum(scope, nativeSolid(a), nativeSolid(b))),
@@ -156,7 +171,7 @@ export function createConstructionOperations(environment, sections) {
156
171
  revolve: (handle, value = {}) => {
157
172
  assertPrimitiveOptions(value, "revolve");
158
173
  const native = shapeSection(handle), bounds = native.bounds();
159
- const degrees = value.revolveDegrees ?? 360;
174
+ const degrees = value.degrees ?? 360;
160
175
  if (requirePositiveNumber(degrees, "revolve") > 360)
161
176
  throwGeometryError("INVALID_ARGUMENT", "revolve", "Sweep must not exceed 360 degrees.");
162
177
  const selected = withResolutionDefaults(value);
@@ -193,15 +208,17 @@ export function createConstructionOperations(environment, sections) {
193
208
  },
194
209
  sweep: (shape, path, value = {}) => {
195
210
  assertActive();
196
- const selected = withResolutionDefaults(value);
211
+ const defaults = withResolutionDefaults(value);
212
+ const data = path3InputData(path, value.closed, defaults.limits);
213
+ const selected = { ...defaults, closed: data.closed };
197
214
  if (corresponding(shape))
198
- return solidFromMesh(buildProfileSweepMesh(module, shape, path, selected, selected.limits));
215
+ return solidFromMesh(buildProfileSweepMesh(module, shape, data.points, selected, selected.limits));
199
216
  const profile = sectionProfile(shape);
200
217
  const singleComponent = profile.components.length === 1 ? profile.components[0] : undefined;
201
218
  const contours = singleComponent?.holes.length === 0 ? [singleComponent.outer.points] : [];
202
219
  if (contours.length === 1)
203
- return solidFromMesh(sweepMesh(contours[0], path, selected));
204
- return solidFromMesh(buildProfileSweepMesh(module, profile, path, selected, selected.limits));
220
+ return solidFromMesh(sweepMesh(contours[0], data.points, selected));
221
+ return solidFromMesh(buildProfileSweepMesh(module, profile, data.points, selected, selected.limits));
205
222
  },
206
223
  heightfield: (value) => {
207
224
  assertActive();