@metamesh/modeling 0.11.0 → 0.13.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 (630) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +60 -58
  3. package/dist/api/engine.d.ts +123 -97
  4. package/dist/api/geometry.d.ts +3896 -3307
  5. package/dist/api/index.d.ts +2489 -2267
  6. package/dist/api/text.d.ts +119 -107
  7. package/dist/docs/guides/concepts.md +197 -0
  8. package/dist/docs/guides/fonts.md +51 -0
  9. package/dist/docs/guides/fundamentals.md +135 -0
  10. package/dist/docs/guides/generation.md +221 -0
  11. package/dist/docs/guides/hosting.md +88 -0
  12. package/dist/docs/guides/recipes.md +668 -0
  13. package/dist/docs/manifest.json +9851 -0
  14. package/dist/docs/reference/engine/Export3mfOptions.md +29 -0
  15. package/dist/docs/reference/engine/ExportMeshPart.md +65 -0
  16. package/dist/docs/reference/engine/GenerationOptions.md +62 -0
  17. package/dist/docs/reference/engine/GeometryResource.md +77 -0
  18. package/dist/docs/reference/engine/ModelDependencies.md +41 -0
  19. package/dist/docs/reference/engine/ModelEngine.md +103 -0
  20. package/dist/docs/reference/engine/ModelEngineOptions.md +33 -0
  21. package/dist/docs/reference/engine/ModelSession.md +96 -0
  22. package/dist/docs/reference/engine/ModelSnapshot.md +173 -0
  23. package/dist/docs/reference/engine/SessionOptions.md +123 -0
  24. package/dist/docs/reference/engine/SnapshotPart.md +130 -0
  25. package/dist/docs/reference/engine/categories/host-lifecycle.md +37 -0
  26. package/dist/docs/reference/engine/createModelEngine.md +56 -0
  27. package/dist/docs/reference/engine/defaultModelingLimits.md +7 -0
  28. package/dist/docs/reference/engine/modelingWasmUrl.md +7 -0
  29. package/dist/docs/reference/engine/validateModel.md +48 -0
  30. package/dist/docs/reference/engine.md +25 -0
  31. package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +75 -0
  32. package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +79 -0
  33. package/dist/docs/reference/geometry/Anchor3.md +49 -0
  34. package/dist/docs/reference/geometry/ArcCurve2.md +70 -0
  35. package/dist/docs/reference/geometry/ArcCurve3.md +94 -0
  36. package/dist/docs/reference/geometry/AttachTransformOptions.md +58 -0
  37. package/dist/docs/reference/geometry/AxisAngleRotation3.md +61 -0
  38. package/dist/docs/reference/geometry/Bounds2.md +39 -0
  39. package/dist/docs/reference/geometry/Bounds3.md +39 -0
  40. package/dist/docs/reference/geometry/BoundsFit2.md +52 -0
  41. package/dist/docs/reference/geometry/BoundsFit3.md +52 -0
  42. package/dist/docs/reference/geometry/BoundsFitOptions.md +23 -0
  43. package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +23 -0
  44. package/dist/docs/reference/geometry/BoxAnchorFace.md +7 -0
  45. package/dist/docs/reference/geometry/BoxAnchorOptions.md +59 -0
  46. package/dist/docs/reference/geometry/BoxEdge.md +7 -0
  47. package/dist/docs/reference/geometry/BoxEdgeSelection.md +14 -0
  48. package/dist/docs/reference/geometry/BoxEdgeTreatments.md +15 -0
  49. package/dist/docs/reference/geometry/BoxOptions.md +87 -0
  50. package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +7 -0
  51. package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +93 -0
  52. package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +29 -0
  53. package/dist/docs/reference/geometry/CircleContourOptions.md +15 -0
  54. package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +59 -0
  55. package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +41 -0
  56. package/dist/docs/reference/geometry/ClearanceHoleFit.md +7 -0
  57. package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +53 -0
  58. package/dist/docs/reference/geometry/Contour.md +17 -0
  59. package/dist/docs/reference/geometry/ContourCurve.md +35 -0
  60. package/dist/docs/reference/geometry/ContourPoint.md +29 -0
  61. package/dist/docs/reference/geometry/ContourSegment.md +86 -0
  62. package/dist/docs/reference/geometry/CorrespondingComponent.md +46 -0
  63. package/dist/docs/reference/geometry/CorrespondingContour.md +46 -0
  64. package/dist/docs/reference/geometry/CorrespondingProfile.md +22 -0
  65. package/dist/docs/reference/geometry/CorrespondingProfileStation.md +27 -0
  66. package/dist/docs/reference/geometry/CubicBezierCurve2.md +70 -0
  67. package/dist/docs/reference/geometry/CubicBezierCurve3.md +70 -0
  68. package/dist/docs/reference/geometry/Curve2.md +16 -0
  69. package/dist/docs/reference/geometry/Curve3.md +16 -0
  70. package/dist/docs/reference/geometry/CurveSamplingOptions.md +64 -0
  71. package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +73 -0
  72. package/dist/docs/reference/geometry/CylinderAnchorFace.md +7 -0
  73. package/dist/docs/reference/geometry/CylinderAnchorOptions.md +83 -0
  74. package/dist/docs/reference/geometry/CylinderOptions.md +53 -0
  75. package/dist/docs/reference/geometry/CylindricalGearDimensions.md +209 -0
  76. package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +7 -0
  77. package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +71 -0
  78. package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +82 -0
  79. package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +34 -0
  80. package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +41 -0
  81. package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +47 -0
  82. package/dist/docs/reference/geometry/CylindricalGearSpec.md +82 -0
  83. package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -0
  84. package/dist/docs/reference/geometry/EdgeTreatment.md +17 -0
  85. package/dist/docs/reference/geometry/EllipseContourOptions.md +15 -0
  86. package/dist/docs/reference/geometry/EndTreatments.md +34 -0
  87. package/dist/docs/reference/geometry/ExtrudeOptions.md +134 -0
  88. package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +77 -0
  89. package/dist/docs/reference/geometry/FittedTextLayout.md +60 -0
  90. package/dist/docs/reference/geometry/Frame3.md +58 -0
  91. package/dist/docs/reference/geometry/GeometryError.md +97 -0
  92. package/dist/docs/reference/geometry/GeometryErrorCode.md +7 -0
  93. package/dist/docs/reference/geometry/GeometryErrorContext.md +29 -0
  94. package/dist/docs/reference/geometry/GeometryResolution.md +65 -0
  95. package/dist/docs/reference/geometry/GeometrySamplingLimits.md +62 -0
  96. package/dist/docs/reference/geometry/GeometryToleranceOptions.md +41 -0
  97. package/dist/docs/reference/geometry/GridPatternOptions.md +42 -0
  98. package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +14 -0
  99. package/dist/docs/reference/geometry/HeightfieldOptions.md +67 -0
  100. package/dist/docs/reference/geometry/HeightfieldPreflight.md +53 -0
  101. package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +141 -0
  102. package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +265 -0
  103. package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +53 -0
  104. package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +14 -0
  105. package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +242 -0
  106. package/dist/docs/reference/geometry/LineCurve2.md +46 -0
  107. package/dist/docs/reference/geometry/LineCurve3.md +46 -0
  108. package/dist/docs/reference/geometry/LinearPatternOptions.md +30 -0
  109. package/dist/docs/reference/geometry/LoftCorrespondence.md +19 -0
  110. package/dist/docs/reference/geometry/LoftMeshStation.md +27 -0
  111. package/dist/docs/reference/geometry/LoftOptions.md +84 -0
  112. package/dist/docs/reference/geometry/LoftPlacement.md +66 -0
  113. package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +18 -0
  114. package/dist/docs/reference/geometry/MatchProfilesOptions.md +35 -0
  115. package/dist/docs/reference/geometry/MetricFastenerSize.md +7 -0
  116. package/dist/docs/reference/geometry/MetricFastenerStandard.md +72 -0
  117. package/dist/docs/reference/geometry/MetricHexNutDimensions.md +29 -0
  118. package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +41 -0
  119. package/dist/docs/reference/geometry/ModelingLimits.md +126 -0
  120. package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +17 -0
  121. package/dist/docs/reference/geometry/Path2.md +14 -0
  122. package/dist/docs/reference/geometry/Path3.md +14 -0
  123. package/dist/docs/reference/geometry/PathFrame.md +46 -0
  124. package/dist/docs/reference/geometry/PathNormalGuide.md +38 -0
  125. package/dist/docs/reference/geometry/PathPatternOptions.md +46 -0
  126. package/dist/docs/reference/geometry/PathPlacement.md +34 -0
  127. package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +7 -0
  128. package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +156 -0
  129. package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +120 -0
  130. package/dist/docs/reference/geometry/PlanarPatchQuality.md +190 -0
  131. package/dist/docs/reference/geometry/Polygon.md +38 -0
  132. package/dist/docs/reference/geometry/PolylineResamplingOptions.md +92 -0
  133. package/dist/docs/reference/geometry/PrimitivePlacement.md +31 -0
  134. package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +83 -0
  135. package/dist/docs/reference/geometry/PrintableThreadFit.md +7 -0
  136. package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +45 -0
  137. package/dist/docs/reference/geometry/Profile.md +22 -0
  138. package/dist/docs/reference/geometry/ProfileComponent2.md +46 -0
  139. package/dist/docs/reference/geometry/ProfileContour2.md +34 -0
  140. package/dist/docs/reference/geometry/ProfileSpan2.md +47 -0
  141. package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +36 -0
  142. package/dist/docs/reference/geometry/RackPitchDimensions.md +113 -0
  143. package/dist/docs/reference/geometry/RackPitchSpec.md +77 -0
  144. package/dist/docs/reference/geometry/RadialPatternOptions.md +62 -0
  145. package/dist/docs/reference/geometry/RadialSizing.md +7 -0
  146. package/dist/docs/reference/geometry/RadialSizingOptions.md +40 -0
  147. package/dist/docs/reference/geometry/RectangleContourOptions.md +66 -0
  148. package/dist/docs/reference/geometry/RectangleCornerTreatment.md +34 -0
  149. package/dist/docs/reference/geometry/RectangleCornerTreatments.md +14 -0
  150. package/dist/docs/reference/geometry/RectangleProfileOptions.md +94 -0
  151. package/dist/docs/reference/geometry/Region.md +14 -0
  152. package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +84 -0
  153. package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +65 -0
  154. package/dist/docs/reference/geometry/RevolveOptions.md +82 -0
  155. package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +91 -0
  156. package/dist/docs/reference/geometry/RowLayoutOptions.md +23 -0
  157. package/dist/docs/reference/geometry/SampleContourOptions.md +71 -0
  158. package/dist/docs/reference/geometry/SampleHelixOptions.md +95 -0
  159. package/dist/docs/reference/geometry/SampleSideProfileOptions.md +71 -0
  160. package/dist/docs/reference/geometry/SampledCurve2.md +34 -0
  161. package/dist/docs/reference/geometry/SampledCurve3.md +34 -0
  162. package/dist/docs/reference/geometry/SampledThreadHelices.md +58 -0
  163. package/dist/docs/reference/geometry/SideProfileCurve.md +35 -0
  164. package/dist/docs/reference/geometry/SideProfilePoint.md +29 -0
  165. package/dist/docs/reference/geometry/SideProfileSegment.md +86 -0
  166. package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +71 -0
  167. package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +34 -0
  168. package/dist/docs/reference/geometry/SphereOptions.md +15 -0
  169. package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +75 -0
  170. package/dist/docs/reference/geometry/StrokePathCap.md +7 -0
  171. package/dist/docs/reference/geometry/StrokePathJoin.md +7 -0
  172. package/dist/docs/reference/geometry/StrokePathRegionOptions.md +85 -0
  173. package/dist/docs/reference/geometry/SvgImportOptions.md +60 -0
  174. package/dist/docs/reference/geometry/SvgRegionPreflight.md +61 -0
  175. package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +118 -0
  176. package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +65 -0
  177. package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +53 -0
  178. package/dist/docs/reference/geometry/SweepOptions.md +109 -0
  179. package/dist/docs/reference/geometry/SweepOrientation.md +109 -0
  180. package/dist/docs/reference/geometry/ThreadBevelOptions.md +53 -0
  181. package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +100 -0
  182. package/dist/docs/reference/geometry/ThreadCompensationOptions.md +73 -0
  183. package/dist/docs/reference/geometry/ThreadEndStyle.md +7 -0
  184. package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +113 -0
  185. package/dist/docs/reference/geometry/ThreadHandedness.md +7 -0
  186. package/dist/docs/reference/geometry/ThreadHelixOptions.md +120 -0
  187. package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +7 -0
  188. package/dist/docs/reference/geometry/ThreadLeadInShape.md +7 -0
  189. package/dist/docs/reference/geometry/ThreadProfile.md +82 -0
  190. package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +49 -0
  191. package/dist/docs/reference/geometry/ThreadProfileSpec.md +19 -0
  192. package/dist/docs/reference/geometry/ThreadRole.md +7 -0
  193. package/dist/docs/reference/geometry/ThreadedNutBevel.md +7 -0
  194. package/dist/docs/reference/geometry/ThreadedNutOptions.md +269 -0
  195. package/dist/docs/reference/geometry/ThreadedNutPreflight.md +94 -0
  196. package/dist/docs/reference/geometry/ThreadedNutShape.md +7 -0
  197. package/dist/docs/reference/geometry/ThreadedRodOptions.md +242 -0
  198. package/dist/docs/reference/geometry/TorusOptions.md +105 -0
  199. package/dist/docs/reference/geometry/Transform3.md +12 -0
  200. package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +91 -0
  201. package/dist/docs/reference/geometry/TriangleMesh.md +34 -0
  202. package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +119 -0
  203. package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +75 -0
  204. package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +75 -0
  205. package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +39 -0
  206. package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +190 -0
  207. package/dist/docs/reference/geometry/TriangleMeshSignature.md +107 -0
  208. package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +41 -0
  209. package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +29 -0
  210. package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +51 -0
  211. package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +91 -0
  212. package/dist/docs/reference/geometry/TubeOptions.md +138 -0
  213. package/dist/docs/reference/geometry/Vector2.md +7 -0
  214. package/dist/docs/reference/geometry/Vector3.md +7 -0
  215. package/dist/docs/reference/geometry/VectorTextArcBaseline.md +53 -0
  216. package/dist/docs/reference/geometry/VectorTextLayout.md +39 -0
  217. package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +111 -0
  218. package/dist/docs/reference/geometry/VectorTextMetrics.md +94 -0
  219. package/dist/docs/reference/geometry/VectorTextOptions.md +50 -0
  220. package/dist/docs/reference/geometry/add3.md +38 -0
  221. package/dist/docs/reference/geometry/analyzeTriangleMesh.md +57 -0
  222. package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +52 -0
  223. package/dist/docs/reference/geometry/anchorFrame3.md +40 -0
  224. package/dist/docs/reference/geometry/applyTransformDirection3.md +41 -0
  225. package/dist/docs/reference/geometry/applyTransformPoint3.md +39 -0
  226. package/dist/docs/reference/geometry/attachTransform.md +73 -0
  227. package/dist/docs/reference/geometry/boundsCenter.md +62 -0
  228. package/dist/docs/reference/geometry/boundsFromSize.md +83 -0
  229. package/dist/docs/reference/geometry/boundsSize.md +62 -0
  230. package/dist/docs/reference/geometry/boxAnchor3.md +48 -0
  231. package/dist/docs/reference/geometry/buildHelicalThreadRidgeMesh.md +68 -0
  232. package/dist/docs/reference/geometry/buildHelicalThreadSolidMesh.md +102 -0
  233. package/dist/docs/reference/geometry/categories/bounds-layout.md +35 -0
  234. package/dist/docs/reference/geometry/categories/curves-paths.md +63 -0
  235. package/dist/docs/reference/geometry/categories/mechanical.md +101 -0
  236. package/dist/docs/reference/geometry/categories/meshes.md +73 -0
  237. package/dist/docs/reference/geometry/categories/pattern-placement.md +34 -0
  238. package/dist/docs/reference/geometry/categories/primitive-options.md +36 -0
  239. package/dist/docs/reference/geometry/categories/profiles-regions.md +74 -0
  240. package/dist/docs/reference/geometry/categories/resolution-errors.md +46 -0
  241. package/dist/docs/reference/geometry/categories/transforms-math.md +63 -0
  242. package/dist/docs/reference/geometry/categories/vector-import.md +40 -0
  243. package/dist/docs/reference/geometry/circleContour.md +33 -0
  244. package/dist/docs/reference/geometry/closeToAxis.md +34 -0
  245. package/dist/docs/reference/geometry/compensateThreadDiameters.md +51 -0
  246. package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +42 -0
  247. package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +56 -0
  248. package/dist/docs/reference/geometry/composeTransform3.md +40 -0
  249. package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +45 -0
  250. package/dist/docs/reference/geometry/computeParallelTransportFrames.md +47 -0
  251. package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +31 -0
  252. package/dist/docs/reference/geometry/containsBounds.md +72 -0
  253. package/dist/docs/reference/geometry/contourContainsPoint.md +33 -0
  254. package/dist/docs/reference/geometry/createAnchor3.md +63 -0
  255. package/dist/docs/reference/geometry/createThreadProfile.md +37 -0
  256. package/dist/docs/reference/geometry/createTriangleMeshSignature.md +60 -0
  257. package/dist/docs/reference/geometry/cross3.md +38 -0
  258. package/dist/docs/reference/geometry/cumulativePathLengths.md +33 -0
  259. package/dist/docs/reference/geometry/cylinderAnchor3.md +56 -0
  260. package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +14 -0
  261. package/dist/docs/reference/geometry/distributeAlongPath.md +51 -0
  262. package/dist/docs/reference/geometry/dot3.md +38 -0
  263. package/dist/docs/reference/geometry/ellipseContour.md +33 -0
  264. package/dist/docs/reference/geometry/eulerTransform3.md +38 -0
  265. package/dist/docs/reference/geometry/extrudeMesh.md +73 -0
  266. package/dist/docs/reference/geometry/fitBounds.md +95 -0
  267. package/dist/docs/reference/geometry/fitTextLayout.md +57 -0
  268. package/dist/docs/reference/geometry/frameTransform3.md +44 -0
  269. package/dist/docs/reference/geometry/getMetricClearanceHole.md +33 -0
  270. package/dist/docs/reference/geometry/getMetricFastenerStandard.md +27 -0
  271. package/dist/docs/reference/geometry/gridPatternTransforms.md +31 -0
  272. package/dist/docs/reference/geometry/heightfieldMesh.md +43 -0
  273. package/dist/docs/reference/geometry/inverseTransform3.md +30 -0
  274. package/dist/docs/reference/geometry/isGeometryError.md +26 -0
  275. package/dist/docs/reference/geometry/joinTriangleMeshes.md +36 -0
  276. package/dist/docs/reference/geometry/layoutRow.md +43 -0
  277. package/dist/docs/reference/geometry/length3.md +26 -0
  278. package/dist/docs/reference/geometry/lerp3.md +38 -0
  279. package/dist/docs/reference/geometry/linearPatternTransforms.md +31 -0
  280. package/dist/docs/reference/geometry/loftMesh.md +72 -0
  281. package/dist/docs/reference/geometry/matchProfiles.md +51 -0
  282. package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +47 -0
  283. package/dist/docs/reference/geometry/measureTriangleMesh.md +55 -0
  284. package/dist/docs/reference/geometry/meshBounds.md +35 -0
  285. package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +29 -0
  286. package/dist/docs/reference/geometry/normalize3.md +32 -0
  287. package/dist/docs/reference/geometry/normalizeContour.md +45 -0
  288. package/dist/docs/reference/geometry/normalizePolygon.md +37 -0
  289. package/dist/docs/reference/geometry/normalizeRegion.md +33 -0
  290. package/dist/docs/reference/geometry/optimizePlanarPatches.md +91 -0
  291. package/dist/docs/reference/geometry/pathLength.md +33 -0
  292. package/dist/docs/reference/geometry/pathPatternTransforms.md +57 -0
  293. package/dist/docs/reference/geometry/preflightHeightfield.md +34 -0
  294. package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +96 -0
  295. package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +85 -0
  296. package/dist/docs/reference/geometry/preflightSvgRegion.md +56 -0
  297. package/dist/docs/reference/geometry/preflightThreadedNut.md +96 -0
  298. package/dist/docs/reference/geometry/preflightThreadedRod.md +85 -0
  299. package/dist/docs/reference/geometry/projectOntoPlane3.md +32 -0
  300. package/dist/docs/reference/geometry/radialPatternTransforms.md +47 -0
  301. package/dist/docs/reference/geometry/rectangleContour.md +49 -0
  302. package/dist/docs/reference/geometry/rectangleProfile.md +53 -0
  303. package/dist/docs/reference/geometry/regionArea.md +34 -0
  304. package/dist/docs/reference/geometry/regionBounds.md +27 -0
  305. package/dist/docs/reference/geometry/regularPolygonContour.md +53 -0
  306. package/dist/docs/reference/geometry/resamplePolyline2.md +64 -0
  307. package/dist/docs/reference/geometry/resamplePolyline3.md +67 -0
  308. package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +79 -0
  309. package/dist/docs/reference/geometry/resolveArcSegments.md +67 -0
  310. package/dist/docs/reference/geometry/resolveCircularSegments.md +61 -0
  311. package/dist/docs/reference/geometry/resolveCylindricalGear.md +31 -0
  312. package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +31 -0
  313. package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +74 -0
  314. package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +26 -0
  315. package/dist/docs/reference/geometry/resolveGeometryTolerance.md +59 -0
  316. package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +27 -0
  317. package/dist/docs/reference/geometry/resolveRackPitch.md +27 -0
  318. package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +59 -0
  319. package/dist/docs/reference/geometry/reverseTriangleMesh.md +30 -0
  320. package/dist/docs/reference/geometry/revolveMesh.md +76 -0
  321. package/dist/docs/reference/geometry/rotateAroundAxis3.md +38 -0
  322. package/dist/docs/reference/geometry/rotationTransform3.md +49 -0
  323. package/dist/docs/reference/geometry/roundClosedPolylinePath.md +50 -0
  324. package/dist/docs/reference/geometry/sampleContour.md +77 -0
  325. package/dist/docs/reference/geometry/sampleCurve2.md +61 -0
  326. package/dist/docs/reference/geometry/sampleCurve3.md +61 -0
  327. package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +58 -0
  328. package/dist/docs/reference/geometry/sampleHelix.md +41 -0
  329. package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +59 -0
  330. package/dist/docs/reference/geometry/sampleRackToothPath.md +39 -0
  331. package/dist/docs/reference/geometry/sampleSideProfile.md +73 -0
  332. package/dist/docs/reference/geometry/sampleTextContours.md +53 -0
  333. package/dist/docs/reference/geometry/sampleThreadHelices.md +63 -0
  334. package/dist/docs/reference/geometry/scale3.md +38 -0
  335. package/dist/docs/reference/geometry/scaleTransform3.md +34 -0
  336. package/dist/docs/reference/geometry/signedContourArea.md +26 -0
  337. package/dist/docs/reference/geometry/starContour.md +51 -0
  338. package/dist/docs/reference/geometry/strokePathRegion.md +63 -0
  339. package/dist/docs/reference/geometry/subtract3.md +38 -0
  340. package/dist/docs/reference/geometry/sweepMesh.md +82 -0
  341. package/dist/docs/reference/geometry/transformContour.md +42 -0
  342. package/dist/docs/reference/geometry/transformDeterminant3.md +32 -0
  343. package/dist/docs/reference/geometry/transformPath2.md +40 -0
  344. package/dist/docs/reference/geometry/transformPath3.md +33 -0
  345. package/dist/docs/reference/geometry/transformRegion.md +40 -0
  346. package/dist/docs/reference/geometry/transformTriangleMesh.md +42 -0
  347. package/dist/docs/reference/geometry/translationTransform3.md +31 -0
  348. package/dist/docs/reference/geometry/triangulateContour.md +26 -0
  349. package/dist/docs/reference/geometry/validateSolidMesh.md +52 -0
  350. package/dist/docs/reference/geometry/validateTransform3.md +43 -0
  351. package/dist/docs/reference/geometry/validateTriangleMesh.md +59 -0
  352. package/dist/docs/reference/geometry.md +30 -0
  353. package/dist/docs/reference/model/Anchor3.md +54 -0
  354. package/dist/docs/reference/model/AttachOptions.md +63 -0
  355. package/dist/docs/reference/model/Bounds2.md +39 -0
  356. package/dist/docs/reference/model/Bounds3.md +39 -0
  357. package/dist/docs/reference/model/BoxEdge.md +15 -0
  358. package/dist/docs/reference/model/BoxEdgeSelection.md +19 -0
  359. package/dist/docs/reference/model/BoxEdgeTreatments.md +20 -0
  360. package/dist/docs/reference/model/BoxOptions.md +92 -0
  361. package/dist/docs/reference/model/ChamferedEdgeTreatment.md +35 -0
  362. package/dist/docs/reference/model/CircleContourOptions.md +21 -0
  363. package/dist/docs/reference/model/CircleOptions.md +21 -0
  364. package/dist/docs/reference/model/CircularPrimitiveOptions.md +64 -0
  365. package/dist/docs/reference/model/Computed.md +35 -0
  366. package/dist/docs/reference/model/ComputedValue.md +20 -0
  367. package/dist/docs/reference/model/Contour.md +22 -0
  368. package/dist/docs/reference/model/CorrespondingComponent.md +46 -0
  369. package/dist/docs/reference/model/CorrespondingContour.md +46 -0
  370. package/dist/docs/reference/model/CorrespondingProfile.md +22 -0
  371. package/dist/docs/reference/model/CorrespondingProfileStation.md +27 -0
  372. package/dist/docs/reference/model/CylinderOptions.md +58 -0
  373. package/dist/docs/reference/model/DiagnosticOptions.md +23 -0
  374. package/dist/docs/reference/model/EdgeTreatment.md +22 -0
  375. package/dist/docs/reference/model/EllipseContourOptions.md +21 -0
  376. package/dist/docs/reference/model/EllipseOptions.md +21 -0
  377. package/dist/docs/reference/model/EndTreatments.md +39 -0
  378. package/dist/docs/reference/model/ExtrudeOptions.md +140 -0
  379. package/dist/docs/reference/model/FinalizedModel.md +121 -0
  380. package/dist/docs/reference/model/FinalizedPart.md +87 -0
  381. package/dist/docs/reference/model/Frame3.md +63 -0
  382. package/dist/docs/reference/model/GenerateCallback.md +37 -0
  383. package/dist/docs/reference/model/GenerateContext.md +277 -0
  384. package/dist/docs/reference/model/GeneratedPart.md +93 -0
  385. package/dist/docs/reference/model/GenerationDiagnostic.md +41 -0
  386. package/dist/docs/reference/model/GenerationError.md +54 -0
  387. package/dist/docs/reference/model/GeometryResolution.md +70 -0
  388. package/dist/docs/reference/model/GeometrySamplingLimits.md +62 -0
  389. package/dist/docs/reference/model/GeometryToleranceOptions.md +46 -0
  390. package/dist/docs/reference/model/GridPatternOptions.md +43 -0
  391. package/dist/docs/reference/model/HeightfieldOptions.md +67 -0
  392. package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +140 -0
  393. package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +58 -0
  394. package/dist/docs/reference/model/HullOptions.md +72 -0
  395. package/dist/docs/reference/model/ImmutableBuffer-type.md +80 -0
  396. package/dist/docs/reference/model/ImmutableTriangleMesh.md +34 -0
  397. package/dist/docs/reference/model/ImplicitOptions.md +83 -0
  398. package/dist/docs/reference/model/InternalThreadCutterOptions.md +245 -0
  399. package/dist/docs/reference/model/LinearPatternOptions.md +31 -0
  400. package/dist/docs/reference/model/LoftCorrespondence.md +27 -0
  401. package/dist/docs/reference/model/LoftOptions.md +91 -0
  402. package/dist/docs/reference/model/LoftPlacement.md +73 -0
  403. package/dist/docs/reference/model/LoftStation.md +35 -0
  404. package/dist/docs/reference/model/MatchProfilesOptions.md +35 -0
  405. package/dist/docs/reference/model/ModelProgram.md +44 -0
  406. package/dist/docs/reference/model/ModelingLimits.md +126 -0
  407. package/dist/docs/reference/model/NumericArray.md +7 -0
  408. package/dist/docs/reference/model/PartGeometry.md +16 -0
  409. package/dist/docs/reference/model/PartOptions.md +65 -0
  410. package/dist/docs/reference/model/PathNormalGuide.md +45 -0
  411. package/dist/docs/reference/model/PathPatternOptions.md +47 -0
  412. package/dist/docs/reference/model/PatternSource.md +26 -0
  413. package/dist/docs/reference/model/PlaneOptions.md +39 -0
  414. package/dist/docs/reference/model/Polygon-type.md +43 -0
  415. package/dist/docs/reference/model/PolygonOptions.md +112 -0
  416. package/dist/docs/reference/model/PrimitivePlacement.md +40 -0
  417. package/dist/docs/reference/model/PrimitivePlacementOptions.md +88 -0
  418. package/dist/docs/reference/model/PrintableThreadFit.md +14 -0
  419. package/dist/docs/reference/model/PrintableThreadFitPolicy.md +50 -0
  420. package/dist/docs/reference/model/Profile.md +22 -0
  421. package/dist/docs/reference/model/ProfileComponent2.md +46 -0
  422. package/dist/docs/reference/model/ProfileContour2.md +34 -0
  423. package/dist/docs/reference/model/ProfileSpan2.md +47 -0
  424. package/dist/docs/reference/model/ProfiledEdgeTreatment.md +41 -0
  425. package/dist/docs/reference/model/RadialPatternOptions.md +63 -0
  426. package/dist/docs/reference/model/RadialSizing.md +15 -0
  427. package/dist/docs/reference/model/RadialSizingOptions.md +40 -0
  428. package/dist/docs/reference/model/RectangleContourOptions.md +72 -0
  429. package/dist/docs/reference/model/RectangleCornerTreatment.md +40 -0
  430. package/dist/docs/reference/model/RectangleCornerTreatments.md +20 -0
  431. package/dist/docs/reference/model/RectangleOptions.md +107 -0
  432. package/dist/docs/reference/model/Region.md +19 -0
  433. package/dist/docs/reference/model/RegionOffsetJoin.md +16 -0
  434. package/dist/docs/reference/model/RegionOffsetOptions.md +65 -0
  435. package/dist/docs/reference/model/RegularPolygonOptions.md +53 -0
  436. package/dist/docs/reference/model/RevolveOptions.md +89 -0
  437. package/dist/docs/reference/model/RoundedEdgeTreatment.md +96 -0
  438. package/dist/docs/reference/model/Section.md +450 -0
  439. package/dist/docs/reference/model/SectionHullOptions.md +72 -0
  440. package/dist/docs/reference/model/SectionInspection.md +98 -0
  441. package/dist/docs/reference/model/SmoothEdgeTreatment.md +76 -0
  442. package/dist/docs/reference/model/Solid.md +350 -0
  443. package/dist/docs/reference/model/SolidInspection.md +98 -0
  444. package/dist/docs/reference/model/SolidRayHit.md +58 -0
  445. package/dist/docs/reference/model/SphereOptions.md +20 -0
  446. package/dist/docs/reference/model/StarOptions.md +98 -0
  447. package/dist/docs/reference/model/SvgOrigin.md +16 -0
  448. package/dist/docs/reference/model/SvgPathSectionOptions.md +78 -0
  449. package/dist/docs/reference/model/SvgSectionOptions.md +66 -0
  450. package/dist/docs/reference/model/SweepOptions.md +116 -0
  451. package/dist/docs/reference/model/SweepOrientation.md +116 -0
  452. package/dist/docs/reference/model/TextSectionOptions.md +41 -0
  453. package/dist/docs/reference/model/ThreadEndStyle.md +14 -0
  454. package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +117 -0
  455. package/dist/docs/reference/model/ThreadHandedness.md +14 -0
  456. package/dist/docs/reference/model/ThreadLeadInEnvelope.md +14 -0
  457. package/dist/docs/reference/model/ThreadLeadInShape.md +14 -0
  458. package/dist/docs/reference/model/ThreadProfile.md +86 -0
  459. package/dist/docs/reference/model/ThreadRidgeOptions.md +18 -0
  460. package/dist/docs/reference/model/ThreadedNutBevel.md +14 -0
  461. package/dist/docs/reference/model/ThreadedNutOptions.md +273 -0
  462. package/dist/docs/reference/model/ThreadedNutPreflight.md +98 -0
  463. package/dist/docs/reference/model/ThreadedNutShape.md +14 -0
  464. package/dist/docs/reference/model/ThreadedRodOptions.md +245 -0
  465. package/dist/docs/reference/model/TorusOptions.md +110 -0
  466. package/dist/docs/reference/model/Transform2.md +15 -0
  467. package/dist/docs/reference/model/Transform3.md +18 -0
  468. package/dist/docs/reference/model/TriangleMesh.md +42 -0
  469. package/dist/docs/reference/model/TriangleMeshAnalysis.md +123 -0
  470. package/dist/docs/reference/model/TriangleMeshMeasurements.md +79 -0
  471. package/dist/docs/reference/model/TubeOptions.md +143 -0
  472. package/dist/docs/reference/model/Vector2.md +15 -0
  473. package/dist/docs/reference/model/Vector3.md +15 -0
  474. package/dist/docs/reference/model/VectorTextLayout.md +40 -0
  475. package/dist/docs/reference/model/VectorTextMetrics.md +100 -0
  476. package/dist/docs/reference/model/anchor.md +46 -0
  477. package/dist/docs/reference/model/box.md +62 -0
  478. package/dist/docs/reference/model/categories/boolean-operations.md +37 -0
  479. package/dist/docs/reference/model/categories/bounded-surfaces.md +26 -0
  480. package/dist/docs/reference/model/categories/contracts.md +16 -0
  481. package/dist/docs/reference/model/categories/core-values-errors.md +30 -0
  482. package/dist/docs/reference/model/categories/explicit-profiles.md +32 -0
  483. package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +42 -0
  484. package/dist/docs/reference/model/categories/generation.md +44 -0
  485. package/dist/docs/reference/model/categories/inspection.md +23 -0
  486. package/dist/docs/reference/model/categories/mesh-inspection.md +29 -0
  487. package/dist/docs/reference/model/categories/primitives.md +61 -0
  488. package/dist/docs/reference/model/categories/resolution.md +18 -0
  489. package/dist/docs/reference/model/categories/sections.md +59 -0
  490. package/dist/docs/reference/model/categories/threads.md +50 -0
  491. package/dist/docs/reference/model/categories/transforms-placement.md +43 -0
  492. package/dist/docs/reference/model/circle.md +39 -0
  493. package/dist/docs/reference/model/components.md +68 -0
  494. package/dist/docs/reference/model/compose.md +31 -0
  495. package/dist/docs/reference/model/cylinder.md +52 -0
  496. package/dist/docs/reference/model/distance.md +45 -0
  497. package/dist/docs/reference/model/ellipse.md +39 -0
  498. package/dist/docs/reference/model/extrude.md +83 -0
  499. package/dist/docs/reference/model/fromRegion.md +33 -0
  500. package/dist/docs/reference/model/generate.md +46 -0
  501. package/dist/docs/reference/model/gridPattern.md +80 -0
  502. package/dist/docs/reference/model/heightfield.md +40 -0
  503. package/dist/docs/reference/model/hull.md +74 -0
  504. package/dist/docs/reference/model/immutableBuffer.md +44 -0
  505. package/dist/docs/reference/model/immutableMesh.md +40 -0
  506. package/dist/docs/reference/model/implicit.md +47 -0
  507. package/dist/docs/reference/model/inspectSection.md +38 -0
  508. package/dist/docs/reference/model/inspectSolid.md +38 -0
  509. package/dist/docs/reference/model/internalThreadCutter.md +100 -0
  510. package/dist/docs/reference/model/intersect.md +70 -0
  511. package/dist/docs/reference/model/isEmpty.md +39 -0
  512. package/dist/docs/reference/model/linearPattern.md +80 -0
  513. package/dist/docs/reference/model/loft.md +137 -0
  514. package/dist/docs/reference/model/matchProfiles.md +42 -0
  515. package/dist/docs/reference/model/minkowskiSum.md +37 -0
  516. package/dist/docs/reference/model/pathPattern.md +118 -0
  517. package/dist/docs/reference/model/polygon.md +40 -0
  518. package/dist/docs/reference/model/preflightInternalThreadCutter.md +89 -0
  519. package/dist/docs/reference/model/preflightThreadedNut.md +100 -0
  520. package/dist/docs/reference/model/preflightThreadedRod.md +89 -0
  521. package/dist/docs/reference/model/radialPattern.md +113 -0
  522. package/dist/docs/reference/model/rayCast.md +40 -0
  523. package/dist/docs/reference/model/rectangle.md +59 -0
  524. package/dist/docs/reference/model/regularPolygon.md +39 -0
  525. package/dist/docs/reference/model/revolve.md +74 -0
  526. package/dist/docs/reference/model/solidFromMesh.md +42 -0
  527. package/dist/docs/reference/model/sphere.md +42 -0
  528. package/dist/docs/reference/model/split.md +54 -0
  529. package/dist/docs/reference/model/splitByPlane.md +66 -0
  530. package/dist/docs/reference/model/star.md +63 -0
  531. package/dist/docs/reference/model/svgPathSection.md +65 -0
  532. package/dist/docs/reference/model/svgSection.md +64 -0
  533. package/dist/docs/reference/model/sweep.md +92 -0
  534. package/dist/docs/reference/model/textSection.md +57 -0
  535. package/dist/docs/reference/model/threadRidge.md +72 -0
  536. package/dist/docs/reference/model/threadedNut.md +110 -0
  537. package/dist/docs/reference/model/threadedRod.md +99 -0
  538. package/dist/docs/reference/model/toRegion.md +33 -0
  539. package/dist/docs/reference/model/toTriangleMesh.md +27 -0
  540. package/dist/docs/reference/model/torus.md +70 -0
  541. package/dist/docs/reference/model/tube.md +77 -0
  542. package/dist/docs/reference/model/union.md +72 -0
  543. package/dist/docs/reference/model.md +39 -0
  544. package/dist/docs/reference/text/Bounds2.md +34 -0
  545. package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +7 -0
  546. package/dist/docs/reference/text/Vector2.md +7 -0
  547. package/dist/docs/reference/text/VectorFont.md +186 -0
  548. package/dist/docs/reference/text/VectorFontOptions.md +17 -0
  549. package/dist/docs/reference/text/VectorTextArcBaseline.md +53 -0
  550. package/dist/docs/reference/text/VectorTextLayout.md +34 -0
  551. package/dist/docs/reference/text/VectorTextLayoutOptions.md +111 -0
  552. package/dist/docs/reference/text/VectorTextMetrics.md +94 -0
  553. package/dist/docs/reference/text/VectorTextOptions.md +50 -0
  554. package/dist/docs/reference/text/categories/font-preparation.md +38 -0
  555. package/dist/docs/reference/text/prepareVectorFont.md +46 -0
  556. package/dist/docs/reference/text.md +21 -0
  557. package/dist/engine/construction-operations.js +10 -3
  558. package/dist/engine/deferred-context.js +12 -3
  559. package/dist/engine/execution.js +1 -1
  560. package/dist/engine/export-3mf.js +2 -2
  561. package/dist/engine/finalization.js +3 -3
  562. package/dist/engine/immutable-generation-data.js +36 -6
  563. package/dist/engine/loft-operations.js +4 -4
  564. package/dist/engine/native/adapter.js +1 -1
  565. package/dist/engine/native/regions.js +9 -9
  566. package/dist/engine/pattern-operations.js +24 -13
  567. package/dist/engine/pattern-transform.js +9 -0
  568. package/dist/engine/placement.js +2 -2
  569. package/dist/engine/primitive-operations.js +10 -10
  570. package/dist/engine/profile-mesh.js +7 -7
  571. package/dist/engine/section-operations.js +25 -14
  572. package/dist/engine/session-graph.js +40 -33
  573. package/dist/engine/session.js +1 -2
  574. package/dist/geometry/bounds.js +117 -0
  575. package/dist/geometry/cylinder.js +5 -1
  576. package/dist/geometry/edge-finishing.js +2 -2
  577. package/dist/geometry/heightfield.js +1 -1
  578. package/dist/geometry/index.js +15 -12
  579. package/dist/geometry/{loft-correspondence.js → loft/loft-correspondence.js} +3 -3
  580. package/dist/geometry/{loft-geometry.js → loft/loft-geometry.js} +8 -8
  581. package/dist/geometry/{loft-options.js → loft/loft-options.js} +2 -2
  582. package/dist/geometry/{loft-simple-mesh.js → loft/loft-simple-mesh.js} +6 -6
  583. package/dist/geometry/{loft-triangulation.js → loft/loft-triangulation.js} +6 -6
  584. package/dist/geometry/{loft.js → loft/loft.js} +8 -8
  585. package/dist/geometry/math/vector3.js +5 -1
  586. package/dist/geometry/mechanical/gears.js +2 -2
  587. package/dist/geometry/mechanical/thread-mesh.js +3 -3
  588. package/dist/geometry/mechanical/thread-profiles.js +2 -2
  589. package/dist/geometry/mechanical/thread-surface.js +14 -5
  590. package/dist/geometry/{mesh-centroid.js → mesh/mesh-centroid.js} +1 -1
  591. package/dist/geometry/{mesh-planar.js → mesh/mesh-planar.js} +1 -1
  592. package/dist/geometry/{mesh-quality.js → mesh/mesh-quality.js} +2 -2
  593. package/dist/geometry/{mesh-signature.js → mesh/mesh-signature.js} +2 -2
  594. package/dist/geometry/{mesh-solid.js → mesh/mesh-solid.js} +2 -2
  595. package/dist/geometry/{mesh.js → mesh/mesh.js} +7 -8
  596. package/dist/geometry/paths/frames.js +4 -5
  597. package/dist/geometry/patterns/options.js +1 -0
  598. package/dist/{engine/pattern-placements.js → geometry/patterns/placements.js} +22 -8
  599. package/dist/geometry/patterns.js +25 -0
  600. package/dist/geometry/primitive-resolvers.js +9 -9
  601. package/dist/geometry/profiles/contour.js +3 -3
  602. package/dist/geometry/profiles/matched.js +3 -3
  603. package/dist/geometry/profiles/profiles.js +10 -10
  604. package/dist/geometry/profiles/rectangle.js +7 -7
  605. package/dist/geometry/profiles/shapes.js +9 -9
  606. package/dist/geometry/profiles/side-profile.js +37 -0
  607. package/dist/geometry/regions.js +15 -15
  608. package/dist/geometry/revolve/revolve-mesh.js +5 -5
  609. package/dist/geometry/stroke-path.js +2 -2
  610. package/dist/geometry/svg/errors.js +0 -3
  611. package/dist/geometry/svg/fill.js +7 -7
  612. package/dist/geometry/svg/index.js +1 -1
  613. package/dist/geometry/svg/matrix.js +0 -114
  614. package/dist/geometry/svg/parser.js +1 -439
  615. package/dist/geometry/svg-import.js +3 -3
  616. package/dist/geometry/sweeps/sweep-closed.js +1 -1
  617. package/dist/geometry/sweeps/sweep-mesh.js +1 -1
  618. package/dist/geometry/sweeps/sweep-open.js +3 -3
  619. package/dist/geometry/sweeps/validation.js +2 -2
  620. package/dist/geometry/text-fitting.js +85 -0
  621. package/dist/geometry/tolerance.js +2 -2
  622. package/dist/geometry/transform-geometry.js +9 -9
  623. package/dist/model/execution-binding.js +3 -3
  624. package/dist/model/generation.js +1 -1
  625. package/dist/model/operation-contracts.js +1 -0
  626. package/dist/model/operation-dispatch.js +6 -0
  627. package/dist/model/operations.js +19 -49
  628. package/package.json +10 -8
  629. /package/dist/geometry/{mesh-edge-table.js → mesh/mesh-edge-table.js} +0 -0
  630. /package/dist/geometry/{mesh-solid-intersections.js → mesh/mesh-solid-intersections.js} +0 -0
@@ -0,0 +1,186 @@
1
+ # VectorFont
2
+
3
+ A prepared font owns its parsed bytes; keep handles local to their Worker or invocation.
4
+
5
+ ## Properties
6
+
7
+ ### layout
8
+
9
+
10
+
11
+ `readonly` **layout**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md)) => [`VectorTextLayout`](VectorTextLayout.md)
12
+
13
+
14
+
15
+ Shape horizontal lines or one circular line; bounded to 512 UTF-16 units and supports blank text.
16
+
17
+ #### Parameters
18
+
19
+ <a id="text"></a>
20
+
21
+ **`text`** · `string` · Required
22
+
23
+
24
+
25
+ <a id="options"></a>
26
+
27
+ **`options`** · [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md) · Required
28
+
29
+ - [`fontSize`](VectorTextLayoutOptions.md#fontsize) · `number` · Required
30
+
31
+ Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
32
+
33
+ - [`align`](VectorTextLayoutOptions.md#align) · `"left"` \| `"right"` \| `"center"` · Optional
34
+
35
+ Place the advance's start, midpoint or end at the datum; defaults to center on arcs, otherwise left.
36
+
37
+ - [`baseline`](VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](VectorTextArcBaseline.md) · Optional
38
+
39
+ Omitted uses horizontal lines. Arcs require one line and baseline vertical alignment.
40
+
41
+ - [`lineHeight`](VectorTextLayoutOptions.md#lineheight) · `number` · Optional
42
+
43
+ Baseline spacing in ems, 0.5–5; omitted uses the selected face's natural vertical metrics.
44
+
45
+ - [`verticalAlign`](VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
46
+
47
+ Place the first baseline or complete ink bounds at Y=0; arcs only accept baseline.
48
+
49
+ - [`fontWeight`](VectorTextLayoutOptions.md#fontweight) · `number` · Optional
50
+
51
+ Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
52
+
53
+ - [`letterSpacing`](VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
54
+
55
+ Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
56
+
57
+
58
+
59
+ #### Returns
60
+
61
+ [`VectorTextLayout`](VectorTextLayout.md)
62
+
63
+ ***
64
+
65
+ ### measure
66
+
67
+
68
+
69
+ `readonly` **measure**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md)) => [`VectorTextMetrics`](VectorTextMetrics.md)
70
+
71
+
72
+
73
+ Measure the same cached vector layout; all returned lengths are in millimetres.
74
+
75
+ #### Parameters
76
+
77
+ <a id="text-1"></a>
78
+
79
+ **`text`** · `string` · Required
80
+
81
+
82
+
83
+ <a id="options-1"></a>
84
+
85
+ **`options`** · [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md) · Required
86
+
87
+ - [`fontSize`](VectorTextLayoutOptions.md#fontsize) · `number` · Required
88
+
89
+ Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
90
+
91
+ - [`align`](VectorTextLayoutOptions.md#align) · `"left"` \| `"right"` \| `"center"` · Optional
92
+
93
+ Place the advance's start, midpoint or end at the datum; defaults to center on arcs, otherwise left.
94
+
95
+ - [`baseline`](VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](VectorTextArcBaseline.md) · Optional
96
+
97
+ Omitted uses horizontal lines. Arcs require one line and baseline vertical alignment.
98
+
99
+ - [`lineHeight`](VectorTextLayoutOptions.md#lineheight) · `number` · Optional
100
+
101
+ Baseline spacing in ems, 0.5–5; omitted uses the selected face's natural vertical metrics.
102
+
103
+ - [`verticalAlign`](VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
104
+
105
+ Place the first baseline or complete ink bounds at Y=0; arcs only accept baseline.
106
+
107
+ - [`fontWeight`](VectorTextLayoutOptions.md#fontweight) · `number` · Optional
108
+
109
+ Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
110
+
111
+ - [`letterSpacing`](VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
112
+
113
+ Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
114
+
115
+
116
+
117
+ #### Returns
118
+
119
+ [`VectorTextMetrics`](VectorTextMetrics.md)
120
+
121
+ ***
122
+
123
+ ### toSvg
124
+
125
+
126
+
127
+ `readonly` **toSvg**: (`text`: `string`, `options`: [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md)) => `string`
128
+
129
+
130
+
131
+ Serialize visible horizontal or circular outlines as bounded path-only SVG in physical millimetres.
132
+
133
+ #### Parameters
134
+
135
+ <a id="text-2"></a>
136
+
137
+ **`text`** · `string` · Required
138
+
139
+
140
+
141
+ <a id="options-2"></a>
142
+
143
+ **`options`** · [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md) · Required
144
+
145
+ - [`fontSize`](VectorTextLayoutOptions.md#fontsize) · `number` · Required
146
+
147
+ Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
148
+
149
+ - [`align`](VectorTextLayoutOptions.md#align) · `"left"` \| `"right"` \| `"center"` · Optional
150
+
151
+ Place the advance's start, midpoint or end at the datum; defaults to center on arcs, otherwise left.
152
+
153
+ - [`baseline`](VectorTextLayoutOptions.md#baseline) · [`VectorTextArcBaseline`](VectorTextArcBaseline.md) · Optional
154
+
155
+ Omitted uses horizontal lines. Arcs require one line and baseline vertical alignment.
156
+
157
+ - [`lineHeight`](VectorTextLayoutOptions.md#lineheight) · `number` · Optional
158
+
159
+ Baseline spacing in ems, 0.5–5; omitted uses the selected face's natural vertical metrics.
160
+
161
+ - [`verticalAlign`](VectorTextLayoutOptions.md#verticalalign) · `"top"` \| `"bottom"` \| `"center"` \| `"baseline"` · Optional
162
+
163
+ Place the first baseline or complete ink bounds at Y=0; arcs only accept baseline.
164
+
165
+ - [`fontWeight`](VectorTextLayoutOptions.md#fontweight) · `number` · Optional
166
+
167
+ Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
168
+
169
+ - [`letterSpacing`](VectorTextLayoutOptions.md#letterspacing) · `number` · Optional
170
+
171
+ Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
172
+
173
+
174
+
175
+ #### Returns
176
+
177
+ `string`
178
+
179
+
180
+ ## Related APIs
181
+
182
+ - [VectorTextLayout](VectorTextLayout.md)
183
+ - [VectorTextLayoutOptions](VectorTextLayoutOptions.md)
184
+ - [VectorTextMetrics](VectorTextMetrics.md)
185
+
186
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,17 @@
1
+ # VectorFontOptions
2
+
3
+ Identifies the actual weight of a static face, without synthesizing a different weight.
4
+
5
+ ## Properties
6
+
7
+ ### staticWeight?
8
+
9
+
10
+
11
+ `readonly` `optional` **staticWeight?**: `number`
12
+
13
+
14
+
15
+ Actual weight of a static face, 1–1000; defaults to 400.
16
+
17
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,53 @@
1
+ # VectorTextArcBaseline
2
+
3
+ A circular baseline centered at the XY origin, with rigid shaped glyph groups.
4
+
5
+ ## Properties
6
+
7
+ ### kind
8
+
9
+
10
+
11
+ `readonly` **kind**: `"arc"`
12
+
13
+
14
+
15
+ Selects a circular baseline; glyph outlines rotate without bending or stretching.
16
+
17
+ ***
18
+
19
+ ### radius
20
+
21
+
22
+
23
+ `readonly` **radius**: `number`
24
+
25
+
26
+
27
+ Baseline radius in millimetres, greater than zero and at most 10000.
28
+
29
+ ***
30
+
31
+ ### centerAngleDegrees?
32
+
33
+
34
+
35
+ `readonly` `optional` **centerAngleDegrees?**: `number`
36
+
37
+
38
+
39
+ Alignment datum in degrees counterclockwise from +X; defaults to 90.
40
+
41
+ ***
42
+
43
+ ### direction?
44
+
45
+
46
+
47
+ `readonly` `optional` **direction?**: `"clockwise"` \| `"counterclockwise"`
48
+
49
+
50
+
51
+ Reading direction around the circle; defaults to clockwise.
52
+
53
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,34 @@
1
+ # VectorTextLayout
2
+
3
+ Immutable vector layout with no browser, font parser, or kernel ownership.
4
+
5
+ ## Properties
6
+
7
+ ### paths
8
+
9
+
10
+
11
+ `readonly` **paths**: readonly `string`[]
12
+
13
+
14
+
15
+ Nonzero-filled path data in millimetres, positive Y upward; empty for text with no ink.
16
+
17
+ ***
18
+
19
+ ### metrics
20
+
21
+
22
+
23
+ `readonly` **metrics**: [`VectorTextMetrics`](VectorTextMetrics.md)
24
+
25
+
26
+
27
+ Exact measurements of these paths and their logical text layout.
28
+
29
+
30
+ ## Related APIs
31
+
32
+ - [VectorTextMetrics](VectorTextMetrics.md)
33
+
34
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,111 @@
1
+ # VectorTextLayoutOptions
2
+
3
+ Text bounded to 512 UTF-16 units: horizontal lines or one circular line without wrapping.
4
+
5
+ ## Extends
6
+
7
+ - [`VectorTextOptions`](VectorTextOptions.md)
8
+
9
+ ## Properties
10
+
11
+ ### align?
12
+
13
+
14
+
15
+ `readonly` `optional` **align?**: `"left"` \| `"right"` \| `"center"`
16
+
17
+
18
+
19
+ Place the advance's start, midpoint or end at the datum; defaults to center on arcs, otherwise left.
20
+
21
+ ***
22
+
23
+ ### baseline?
24
+
25
+
26
+
27
+ `readonly` `optional` **baseline?**: [`VectorTextArcBaseline`](VectorTextArcBaseline.md)
28
+
29
+
30
+
31
+ Omitted uses horizontal lines. Arcs require one line and baseline vertical alignment.
32
+
33
+ ***
34
+
35
+ ### lineHeight?
36
+
37
+
38
+
39
+ `readonly` `optional` **lineHeight?**: `number`
40
+
41
+
42
+
43
+ Baseline spacing in ems, 0.5–5; omitted uses the selected face's natural vertical metrics.
44
+
45
+ ***
46
+
47
+ ### verticalAlign?
48
+
49
+
50
+
51
+ `readonly` `optional` **verticalAlign?**: `"top"` \| `"bottom"` \| `"center"` \| `"baseline"`
52
+
53
+
54
+
55
+ Place the first baseline or complete ink bounds at Y=0; arcs only accept baseline.
56
+
57
+ ***
58
+
59
+ ### fontSize
60
+
61
+
62
+
63
+ `readonly` **fontSize**: `number`
64
+
65
+
66
+
67
+ Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
68
+
69
+ #### Inherited from
70
+
71
+ [`VectorTextOptions`](VectorTextOptions.md).[`fontSize`](VectorTextOptions.md#fontsize)
72
+
73
+ ***
74
+
75
+ ### fontWeight?
76
+
77
+
78
+
79
+ `readonly` `optional` **fontWeight?**: `number`
80
+
81
+
82
+
83
+ Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
84
+
85
+ #### Inherited from
86
+
87
+ [`VectorTextOptions`](VectorTextOptions.md).[`fontWeight`](VectorTextOptions.md#fontweight)
88
+
89
+ ***
90
+
91
+ ### letterSpacing?
92
+
93
+
94
+
95
+ `readonly` `optional` **letterSpacing?**: `number`
96
+
97
+
98
+
99
+ Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
100
+
101
+ #### Inherited from
102
+
103
+ [`VectorTextOptions`](VectorTextOptions.md).[`letterSpacing`](VectorTextOptions.md#letterspacing)
104
+
105
+
106
+ ## Related APIs
107
+
108
+ - [VectorTextArcBaseline](VectorTextArcBaseline.md)
109
+ - [VectorTextOptions](VectorTextOptions.md)
110
+
111
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,94 @@
1
+ # VectorTextMetrics
2
+
3
+ Text measurements from the same immutable layout that supplies geometry and SVG outlines.
4
+
5
+ ## Properties
6
+
7
+ ### bounds
8
+
9
+
10
+
11
+ `readonly` **bounds**: [`Bounds2`](Bounds2.md) \| `null`
12
+
13
+
14
+
15
+ Visible curve bounds after alignment, or null when the text has no ink.
16
+
17
+ ***
18
+
19
+ ### advance
20
+
21
+
22
+
23
+ `readonly` **advance**: readonly \[`number`, `number`\]
24
+
25
+
26
+
27
+ Unaligned logical advance and negative baseline displacement in mm; arcs retain [arc length, 0].
28
+
29
+ ***
30
+
31
+ ### logicalWidth
32
+
33
+
34
+
35
+ `readonly` **logicalWidth**: `number`
36
+
37
+
38
+
39
+ Maximum logical line advance in millimetres, including spaces; arc length on circular baselines.
40
+
41
+ ***
42
+
43
+ ### ascent
44
+
45
+
46
+
47
+ `readonly` **ascent**: `number`
48
+
49
+
50
+
51
+ Selected font's ascender distance above a baseline in millimetres, independent of the text.
52
+
53
+ ***
54
+
55
+ ### descent
56
+
57
+
58
+
59
+ `readonly` **descent**: `number`
60
+
61
+
62
+
63
+ Selected font's descender distance below a baseline in millimetres, a non-negative value.
64
+
65
+ ***
66
+
67
+ ### lineHeight
68
+
69
+
70
+
71
+ `readonly` **lineHeight**: `number`
72
+
73
+
74
+
75
+ Actual distance between baselines in millimetres.
76
+
77
+ ***
78
+
79
+ ### lineCount
80
+
81
+
82
+
83
+ `readonly` **lineCount**: `number`
84
+
85
+
86
+
87
+ Number of lines, including empty and trailing lines; empty text occupies one line.
88
+
89
+
90
+ ## Related APIs
91
+
92
+ - [Bounds2](Bounds2.md)
93
+
94
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,50 @@
1
+ # VectorTextOptions
2
+
3
+ Shaping controls for a prepared exact font face; all lengths are in millimetres.
4
+
5
+ ## Extended by
6
+
7
+ - [`VectorTextLayoutOptions`](VectorTextLayoutOptions.md)
8
+
9
+ ## Properties
10
+
11
+ ### fontSize
12
+
13
+
14
+
15
+ `readonly` **fontSize**: `number`
16
+
17
+
18
+
19
+ Em size in millimetres, greater than zero and at most 10000; not the visible glyph height.
20
+
21
+ ***
22
+
23
+ ### fontWeight?
24
+
25
+
26
+
27
+ `readonly` `optional` **fontWeight?**: `number`
28
+
29
+
30
+
31
+ Actual static or variable weight, 1–1000; defaults to the prepared face's static weight.
32
+
33
+ ***
34
+
35
+ ### letterSpacing?
36
+
37
+
38
+
39
+ `readonly` `optional` **letterSpacing?**: `number`
40
+
41
+
42
+
43
+ Tracking between glyph clusters in millimetres, -100–100; defaults to zero.
44
+
45
+
46
+ ## Related APIs
47
+
48
+ - [VectorTextLayoutOptions](VectorTextLayoutOptions.md)
49
+
50
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,38 @@
1
+ # Font preparation
2
+
3
+ Prepare bounded exact font bytes and reusable vector layouts.
4
+
5
+ Prepare fonts before modeling. TTF, OTF, and WOFF are parsed directly; WOFF2 decoding loads lazily. No fetching occurs in this library. Font layout returns immutable paths and metrics in Y-up millimetres. Pass that prepared layout to textSection inside a build; do not shape it again.
6
+
7
+ ## Functions
8
+
9
+ | API | Summary |
10
+ | --- | --- |
11
+ | [prepareVectorFont](../prepareVectorFont.md) | Parses bounded font bytes using optional fontkit and WOFF2 peers; no font fetching occurs here. |
12
+
13
+ ## Interfaces
14
+
15
+ | API | Summary |
16
+ | --- | --- |
17
+ | [VectorFont](../VectorFont.md) | A prepared font owns its parsed bytes; keep handles local to their Worker or invocation. |
18
+ | [VectorFontOptions](../VectorFontOptions.md) | Identifies the actual weight of a static face, without synthesizing a different weight. |
19
+ | [VectorTextArcBaseline](../VectorTextArcBaseline.md) | A circular baseline centered at the XY origin, with rigid shaped glyph groups. |
20
+ | [VectorTextLayout](../VectorTextLayout.md) | Immutable vector layout with no browser, font parser, or kernel ownership. |
21
+ | [VectorTextLayoutOptions](../VectorTextLayoutOptions.md) | Text bounded to 512 UTF-16 units: horizontal lines or one circular line without wrapping. |
22
+ | [VectorTextMetrics](../VectorTextMetrics.md) | Text measurements from the same immutable layout that supplies geometry and SVG outlines. |
23
+ | [VectorTextOptions](../VectorTextOptions.md) | Shaping controls for a prepared exact font face; all lengths are in millimetres. |
24
+ | [Bounds2](../Bounds2.md) | Axis-aligned bounds in two-dimensional model space. |
25
+
26
+ ## Type aliases
27
+
28
+ | API | Summary |
29
+ | --- | --- |
30
+ | [Vector2](../Vector2.md) | A two-dimensional Cartesian vector or point. |
31
+
32
+ ## Values
33
+
34
+ | API | Summary |
35
+ | --- | --- |
36
+ | [MAX_VECTOR_FONT_BYTES](../MAX_VECTOR_FONT_BYTES.md) | Limits apply before parsing or shaping untrusted font data. |
37
+
38
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,46 @@
1
+ # prepareVectorFont
2
+
3
+ Parses bounded font bytes using optional fontkit and WOFF2 peers; no font fetching occurs here.
4
+
5
+ **prepareVectorFont**(`bytes`: `Uint8Array`, `options?`: [`VectorFontOptions`](VectorFontOptions.md)): `Promise`\<[`VectorFont`](VectorFont.md)\>
6
+
7
+
8
+
9
+ ## Example: Prepare a label before building geometry
10
+
11
+ ```ts
12
+ async function prepareLabel(fontBytes: Uint8Array) {
13
+ const font = await prepareVectorFont(fontBytes);
14
+ return font.layout("MetaMesh", { fontSize: 8 });
15
+ }
16
+ ```
17
+
18
+ ## Parameters
19
+
20
+ <a id="bytes"></a>
21
+
22
+ **`bytes`** · `Uint8Array` · Required
23
+
24
+
25
+
26
+ <a id="options"></a>
27
+
28
+ **`options`** · [`VectorFontOptions`](VectorFontOptions.md) · Optional
29
+
30
+ - [`staticWeight`](VectorFontOptions.md#staticweight) · `number` · Optional
31
+
32
+ Actual weight of a static face, 1–1000; defaults to 400.
33
+
34
+
35
+
36
+ ## Returns
37
+
38
+ `Promise`\<[`VectorFont`](VectorFont.md)\>
39
+
40
+
41
+ ## Related APIs
42
+
43
+ - [VectorFont](VectorFont.md)
44
+ - [VectorFontOptions](VectorFontOptions.md)
45
+
46
+ Package: `@metamesh/modeling@0.13.0`.
@@ -0,0 +1,21 @@
1
+ # Text preparation
2
+
3
+ Prepare exact font bytes and shape reusable vector layouts before entering synchronous modeling.
4
+
5
+ Install `fontkit` for font preparation and `woff2-encoder` for WOFF2 decoding. Import optional exact-font preparation from `@metamesh/modeling/text`. Supply already acquired font bytes; this entrypoint never fetches a font. Shape once during preparation and pass the immutable layout to modeling.
6
+
7
+ ```ts
8
+ import { prepareVectorFont } from "@metamesh/modeling/text";
9
+ export async function prepareLabel(bytes: Uint8Array) {
10
+ const font = await prepareVectorFont(bytes);
11
+ return font.layout("MetaMesh", { fontSize: 8 });
12
+ }
13
+ ```
14
+
15
+ Paths and metrics use Y-up millimetres and a baseline origin. Empty layouts can be measured but cannot create a manufacturing section. Font parsing and WOFF2 decoding stay outside synchronous native builds.
16
+
17
+ ## Categories
18
+
19
+ - [Font preparation](text/categories/font-preparation.md) — Prepare bounded exact font bytes and reusable vector layouts.
20
+
21
+ Package: `@metamesh/modeling@0.13.0`.
@@ -1,3 +1,4 @@
1
+ import { edgeTreatmentSetbacks } from "../geometry/edge-finishing.js";
1
2
  import { GeometryError } from "../geometry/errors.js";
2
3
  import { resolveExtrusionContourDivisions, resolveExtrusionControls, } from "../geometry/extrusion.js";
3
4
  import { heightfieldMesh } from "../geometry/heightfield.js";
@@ -28,7 +29,7 @@ export function createConstructionOperations(environment, sections) {
28
29
  const normal = [scaled[0] / length, scaled[1] / length, scaled[2] / length];
29
30
  return { normal, offset: validateFiniteNumber(value.offset ?? 0, operation) };
30
31
  };
31
- const fromContours = sections.sectionFromContours;
32
+ const fromContours = (contours) => sections.polygon({ contours });
32
33
  const corresponding = (value) => typeof value === "object" && value !== null && "components" in value;
33
34
  const shapeSection = (shape) => corresponding(shape)
34
35
  ? nativeSection(fromContours(shape.components.flatMap((component) => [component.outer, ...component.holes].map((contour) => contour.points))))
@@ -38,8 +39,14 @@ export function createConstructionOperations(environment, sections) {
38
39
  assertPrimitiveOptions(value, "extrude");
39
40
  const native = shapeSection(handle), resolved = withResolutionDefaults(value);
40
41
  if (value.ends !== undefined) {
41
- const profile = corresponding(handle) ? handle : environment.sectionProfileFor(handle);
42
- return solidFromMesh(buildFinishedExtrusion(module, profile, resolved));
42
+ assertPrimitiveOptions(value.ends, "extrude");
43
+ const setbacks = [value.ends.bottom, value.ends.top].map((treatment) => treatment === undefined
44
+ ? [0, 0]
45
+ : edgeTreatmentSetbacks(treatment, "extrude", Math.PI / 2, resolved.limits));
46
+ if (setbacks.some((pair) => pair.some((distance) => distance > 0))) {
47
+ const profile = corresponding(handle) ? handle : environment.sectionProfileFor(handle);
48
+ return solidFromMesh(buildFinishedExtrusion(module, profile, resolved));
49
+ }
43
50
  }
44
51
  assertSamplingCount(native.numVert(), "extrude", resolved.limits.maxProfilePoints);
45
52
  const controls = resolveExtrusionControls(value.height, resolved, "extrude");