@metamesh/modeling 0.19.0 → 0.20.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.
- package/CHANGELOG.md +49 -0
- package/README.md +34 -18
- package/dist/api/engine.d.ts +217 -121
- package/dist/api/export.d.ts +123 -79
- package/dist/api/geometry.d.ts +406 -2102
- package/dist/api/index.d.ts +472 -1798
- package/dist/api/math.d.ts +315 -0
- package/dist/api/mechanical.d.ts +1041 -0
- package/dist/api/mesh.d.ts +360 -88
- package/dist/api/text.d.ts +24 -44
- package/dist/docs/guides/concepts.md +67 -33
- package/dist/docs/guides/exporting.md +88 -0
- package/dist/docs/guides/fonts.md +5 -3
- package/dist/docs/guides/fundamentals.md +12 -24
- package/dist/docs/guides/generation.md +24 -16
- package/dist/docs/guides/geometry-values.md +192 -134
- package/dist/docs/guides/hosting.md +51 -96
- package/dist/docs/guides/profiles-and-extrusion.md +159 -11
- package/dist/docs/guides/recipes.md +121 -28
- package/dist/docs/guides/resolution-and-inspection.md +43 -23
- package/dist/docs/guides/solid-joins.md +12 -2
- package/dist/docs/guides/standalone-model.md +4 -2
- package/dist/docs/guides/svg-and-text.md +76 -39
- package/dist/docs/guides/sweeps-and-lofts.md +88 -44
- package/dist/docs/guides/transforms-and-placement.md +113 -103
- package/dist/docs/guides/workers.md +166 -0
- package/dist/docs/manifest.json +4133 -4153
- package/dist/docs/reference/engine/GenerationOptions.md +2 -3
- package/dist/docs/reference/engine/GeometryResource.md +6 -6
- package/dist/docs/reference/engine/ModelDependencies.md +2 -2
- package/dist/docs/reference/engine/ModelEngine.md +2 -3
- package/dist/docs/reference/engine/ModelEngineOptions.md +2 -7
- package/dist/docs/reference/engine/ModelPart.md +6 -6
- package/dist/docs/reference/engine/ModelResult.md +2 -2
- package/dist/docs/reference/engine/ModelRunArguments.md +2 -2
- package/dist/docs/reference/engine/ModelRunOptions.md +2 -3
- package/dist/docs/reference/engine/ModelSession.md +2 -2
- package/dist/docs/reference/engine/SessionOptions.md +2 -3
- package/dist/docs/reference/engine/categories/host-lifecycle.md +9 -3
- package/dist/docs/reference/engine/checkModel.md +6 -2
- package/dist/docs/reference/engine/createModelEngine.md +5 -3
- package/dist/docs/reference/engine/defaultModelingLimits.md +4 -11
- package/dist/docs/reference/engine/modelingWasmUrl.md +2 -2
- package/dist/docs/reference/engine.md +7 -1
- package/dist/docs/reference/export/Export3mfOptions.md +2 -6
- package/dist/docs/reference/export/ExportDiagnostic.md +2 -14
- package/dist/docs/reference/export/ExportFormat.md +2 -14
- package/dist/docs/reference/export/ExportGeometry.md +3 -15
- package/dist/docs/reference/export/ExportGlbOptions.md +14 -18
- package/dist/docs/reference/export/ExportLimits.md +2 -14
- package/dist/docs/reference/export/ExportMaterial.md +2 -14
- package/dist/docs/reference/export/ExportOptions.md +2 -14
- package/dist/docs/reference/export/ExportPart.md +2 -14
- package/dist/docs/reference/export/ExportReport.md +2 -14
- package/dist/docs/reference/export/ExportSink.md +5 -15
- package/dist/docs/reference/export/ExportStlOptions.md +2 -6
- package/dist/docs/reference/export/ExportedFile.md +14 -26
- package/dist/docs/reference/export/categories/mesh-serialization.md +9 -3
- package/dist/docs/reference/export/defaultExportLimits.md +2 -2
- package/dist/docs/reference/export/export3mf.md +4 -6
- package/dist/docs/reference/export/exportGlb.md +8 -10
- package/dist/docs/reference/export/exportStl.md +4 -6
- package/dist/docs/reference/export/write3mf.md +6 -6
- package/dist/docs/reference/export/writeGlb.md +10 -10
- package/dist/docs/reference/export/writeStl.md +6 -6
- package/dist/docs/reference/export.md +9 -3
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +4 -4
- package/dist/docs/reference/geometry/Anchor3-type.md +3 -7
- package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
- package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
- package/dist/docs/reference/geometry/ArcCurve3.md +3 -3
- package/dist/docs/reference/geometry/AttachOptions.md +4 -9
- package/dist/docs/reference/geometry/Bounds2-type.md +9 -30
- package/dist/docs/reference/geometry/Bounds2Data.md +2 -19
- package/dist/docs/reference/geometry/Bounds2Input.md +2 -10
- package/dist/docs/reference/geometry/Bounds2Options.md +2 -6
- package/dist/docs/reference/geometry/Bounds3-type.md +9 -30
- package/dist/docs/reference/geometry/Bounds3Data.md +2 -15
- package/dist/docs/reference/geometry/Bounds3Input.md +2 -10
- package/dist/docs/reference/geometry/Bounds3Options.md +2 -6
- package/dist/docs/reference/geometry/BoundsFit2.md +2 -2
- package/dist/docs/reference/geometry/BoundsFit3.md +2 -2
- package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -2
- package/dist/docs/reference/geometry/BoxAnchorFace.md +3 -3
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +3 -3
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +3 -7
- package/dist/docs/reference/geometry/CircleContourOptions.md +3 -7
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +3 -12
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +2 -2
- package/dist/docs/reference/geometry/CircularSampling.md +2 -2
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +2 -2
- package/dist/docs/reference/geometry/Contour.md +4 -9
- package/dist/docs/reference/geometry/ContourCurve.md +3 -3
- package/dist/docs/reference/geometry/ContourPoint.md +3 -3
- package/dist/docs/reference/geometry/ContourSegment.md +3 -3
- package/dist/docs/reference/geometry/CorrespondingComponent.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingContour.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingProfile.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +4 -8
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +3 -3
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +3 -3
- package/dist/docs/reference/geometry/Curve2.md +3 -3
- package/dist/docs/reference/geometry/Curve3.md +3 -3
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +3 -11
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +3 -3
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -4
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +2 -2
- package/dist/docs/reference/geometry/EdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -7
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +9 -18
- package/dist/docs/reference/geometry/FittedTextLayout.md +2 -2
- package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +4 -11
- package/dist/docs/reference/geometry/Frame3Options.md +69 -0
- package/dist/docs/reference/geometry/GeometryError.md +2 -6
- package/dist/docs/reference/geometry/GeometryErrorCode.md +2 -6
- package/dist/docs/reference/geometry/GeometryErrorContext.md +2 -6
- package/dist/docs/reference/geometry/GeometryResolution.md +2 -10
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +3 -11
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +3 -11
- package/dist/docs/reference/geometry/GridPatternOptions.md +7 -9
- package/dist/docs/reference/geometry/ImmutableBuffer-type.md +2 -10
- package/dist/docs/reference/geometry/LineCurve2.md +3 -3
- package/dist/docs/reference/geometry/LineCurve3.md +3 -3
- package/dist/docs/reference/geometry/LinearPatternOptions.md +2 -6
- package/dist/docs/reference/geometry/LoftPlacement.md +13 -21
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +3 -7
- package/dist/docs/reference/geometry/ModelingLimits.md +2 -14
- package/dist/docs/reference/geometry/NumericArray.md +2 -10
- package/dist/docs/reference/geometry/Path2-type.md +153 -12
- package/dist/docs/reference/geometry/Path2Data.md +3 -11
- package/dist/docs/reference/geometry/Path2Input.md +3 -11
- package/dist/docs/reference/geometry/Path3-type.md +153 -12
- package/dist/docs/reference/geometry/Path3Data.md +3 -11
- package/dist/docs/reference/geometry/Path3Input.md +3 -11
- package/dist/docs/reference/geometry/PathFrame.md +3 -3
- package/dist/docs/reference/geometry/PathLocation.md +3 -11
- package/dist/docs/reference/geometry/PathNormalGuide.md +4 -12
- package/dist/docs/reference/geometry/PathOptions.md +3 -7
- package/dist/docs/reference/geometry/PathPatternOptions.md +3 -7
- package/dist/docs/reference/geometry/PathPlacement.md +5 -5
- package/dist/docs/reference/geometry/PathResamplingOptions.md +3 -11
- package/dist/docs/reference/geometry/PathStation.md +87 -0
- package/dist/docs/reference/geometry/PathSubdivisionOptions.md +44 -0
- package/dist/docs/reference/geometry/Pivot2Options.md +3 -11
- package/dist/docs/reference/geometry/Pivot3Options.md +3 -11
- package/dist/docs/reference/geometry/PolygonData.md +4 -8
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +3 -3
- package/dist/docs/reference/geometry/Profile.md +3 -4
- package/dist/docs/reference/geometry/ProfileComponent2.md +3 -7
- package/dist/docs/reference/geometry/ProfileContour2.md +3 -7
- package/dist/docs/reference/geometry/ProfileSpan2.md +3 -7
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +5 -8
- package/dist/docs/reference/geometry/RadialPatternOptions.md +2 -6
- package/dist/docs/reference/geometry/RadialSizing.md +2 -6
- package/dist/docs/reference/geometry/RadialSizingOptions.md +2 -6
- package/dist/docs/reference/geometry/RectangleContourOptions.md +4 -7
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +3 -7
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +3 -7
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/RegionData.md +3 -7
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
- package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +2 -2
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -2
- package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleHelixOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve2.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve3.md +3 -3
- package/dist/docs/reference/geometry/SideProfileCurve.md +3 -3
- package/dist/docs/reference/geometry/SideProfilePoint.md +3 -3
- package/dist/docs/reference/geometry/SideProfileSegment.md +3 -3
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/SplineOptions.md +69 -0
- package/dist/docs/reference/geometry/StarContourOptions.md +7 -7
- package/dist/docs/reference/geometry/StrokeCap.md +2 -6
- package/dist/docs/reference/geometry/StrokeJoin.md +2 -6
- package/dist/docs/reference/geometry/StrokeOptions.md +3 -7
- package/dist/docs/reference/geometry/SvgImportOptions.md +4 -4
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +2 -2
- package/dist/docs/reference/geometry/Transform2-type.md +3 -11
- package/dist/docs/reference/geometry/Transform2Data.md +3 -11
- package/dist/docs/reference/geometry/Transform2Input.md +3 -11
- package/dist/docs/reference/geometry/Transform3-type.md +4 -12
- package/dist/docs/reference/geometry/Transform3Data.md +3 -11
- package/dist/docs/reference/geometry/Transform3Input.md +6 -13
- package/dist/docs/reference/geometry/Vector2-type.md +3 -11
- package/dist/docs/reference/geometry/Vector2Data.md +3 -15
- package/dist/docs/reference/geometry/Vector2Input.md +3 -11
- package/dist/docs/reference/geometry/Vector3-type.md +27 -11
- package/dist/docs/reference/geometry/Vector3Data.md +3 -11
- package/dist/docs/reference/geometry/Vector3Input.md +3 -11
- package/dist/docs/reference/geometry/VectorTextLayout.md +2 -10
- package/dist/docs/reference/geometry/VectorTextMetrics.md +3 -11
- package/dist/docs/reference/geometry/anchor3.md +17 -26
- package/dist/docs/reference/geometry/anchorFrame3.md +6 -6
- package/dist/docs/reference/geometry/attachmentTransform3.md +8 -8
- package/dist/docs/reference/geometry/bounds2.md +6 -8
- package/dist/docs/reference/geometry/bounds3.md +4 -6
- package/dist/docs/reference/geometry/boundsCenter.md +2 -2
- package/dist/docs/reference/geometry/boundsSize.md +2 -2
- package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
- package/dist/docs/reference/geometry/categories/bounds-layout.md +9 -3
- package/dist/docs/reference/geometry/categories/curves-paths.md +24 -13
- package/dist/docs/reference/geometry/categories/immutable-data.md +40 -0
- package/dist/docs/reference/geometry/categories/pattern-placement.md +10 -4
- package/dist/docs/reference/geometry/categories/primitive-options.md +8 -13
- package/dist/docs/reference/geometry/categories/profiles-regions.md +11 -5
- package/dist/docs/reference/geometry/categories/resolution-errors.md +8 -1
- package/dist/docs/reference/geometry/categories/transforms-math.md +20 -51
- package/dist/docs/reference/geometry/categories/vector-import.md +7 -4
- package/dist/docs/reference/geometry/circleContour.md +3 -3
- package/dist/docs/reference/geometry/closeToAxis.md +7 -3
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +9 -6
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +13 -6
- package/dist/docs/reference/geometry/contourContainsPoint.md +7 -3
- package/dist/docs/reference/geometry/cylinderAnchor3.md +5 -5
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +3 -3
- package/dist/docs/reference/geometry/distributeAlongPath.md +16 -11
- package/dist/docs/reference/geometry/ellipseContour.md +3 -3
- package/dist/docs/reference/geometry/fitBounds.md +10 -2
- package/dist/docs/reference/geometry/fitTextLayout.md +5 -5
- package/dist/docs/reference/geometry/frame3.md +66 -0
- package/dist/docs/reference/geometry/gridPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/immutableBuffer.md +5 -7
- package/dist/docs/reference/geometry/isGeometryError.md +2 -6
- package/dist/docs/reference/geometry/layoutRow.md +4 -2
- package/dist/docs/reference/geometry/linearPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/matchProfiles.md +5 -3
- package/dist/docs/reference/geometry/normalizeContour.md +8 -4
- package/dist/docs/reference/geometry/normalizePolygon.md +5 -3
- package/dist/docs/reference/geometry/normalizeRegion.md +5 -3
- package/dist/docs/reference/geometry/path2.md +7 -7
- package/dist/docs/reference/geometry/path3.md +7 -7
- package/dist/docs/reference/geometry/pathPatternTransforms.md +12 -8
- package/dist/docs/reference/geometry/preflightSvgRegion.md +5 -5
- package/dist/docs/reference/geometry/radialPatternTransforms.md +5 -5
- package/dist/docs/reference/geometry/rectangleContour.md +3 -3
- package/dist/docs/reference/geometry/rectangleProfile.md +3 -4
- package/dist/docs/reference/geometry/regionArea.md +3 -3
- package/dist/docs/reference/geometry/regionBounds.md +6 -4
- package/dist/docs/reference/geometry/regularPolygonContour.md +3 -3
- package/dist/docs/reference/geometry/resamplePolyline2.md +7 -3
- package/dist/docs/reference/geometry/resamplePolyline3.md +7 -3
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -5
- package/dist/docs/reference/geometry/resolveArcSegments.md +8 -6
- package/dist/docs/reference/geometry/resolveCircularSampling.md +2 -2
- package/dist/docs/reference/geometry/resolveCircularSegments.md +5 -3
- package/dist/docs/reference/geometry/{resolveExtrusionDivisions.md → resolveExtrusionSlices.md} +16 -15
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -3
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +3 -3
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +12 -5
- package/dist/docs/reference/geometry/sampleContour.md +5 -5
- package/dist/docs/reference/geometry/sampleCurve2.md +7 -3
- package/dist/docs/reference/geometry/sampleCurve3.md +7 -3
- package/dist/docs/reference/geometry/sampleHelix.md +3 -3
- package/dist/docs/reference/geometry/sampleSideProfile.md +5 -5
- package/dist/docs/reference/geometry/sampleTextContours.md +3 -3
- package/dist/docs/reference/geometry/signedContourArea.md +5 -3
- package/dist/docs/reference/geometry/spline2.md +68 -0
- package/dist/docs/reference/geometry/spline3.md +62 -0
- package/dist/docs/reference/geometry/starContour.md +3 -3
- package/dist/docs/reference/geometry/strokeRegionData.md +8 -5
- package/dist/docs/reference/geometry/transform2.md +5 -7
- package/dist/docs/reference/geometry/transform3.md +23 -10
- package/dist/docs/reference/geometry/transformRegionData.md +7 -3
- package/dist/docs/reference/geometry/triangulateContour.md +6 -4
- package/dist/docs/reference/geometry/vector2.md +6 -8
- package/dist/docs/reference/geometry/vector3.md +8 -8
- package/dist/docs/reference/geometry.md +13 -18
- package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +4 -5
- package/dist/docs/reference/math/IDENTITY_TRANSFORM3.md +20 -0
- package/dist/docs/reference/math/add2.md +38 -0
- package/dist/docs/reference/math/add3.md +46 -0
- package/dist/docs/reference/math/applyTransformDirection3.md +46 -0
- package/dist/docs/reference/math/applyTransformPoint3.md +44 -0
- package/dist/docs/reference/math/categories/tuple-matrix.md +67 -0
- package/dist/docs/reference/math/cross2.md +38 -0
- package/dist/docs/reference/math/cross3.md +44 -0
- package/dist/docs/reference/math/distance2.md +38 -0
- package/dist/docs/reference/math/distance3.md +38 -0
- package/dist/docs/reference/math/dot2.md +38 -0
- package/dist/docs/reference/math/dot3.md +44 -0
- package/dist/docs/reference/math/eulerTransform3.md +43 -0
- package/dist/docs/reference/math/inverseTransform3.md +36 -0
- package/dist/docs/reference/math/length2.md +32 -0
- package/dist/docs/reference/math/length3.md +32 -0
- package/dist/docs/reference/math/lerp2.md +46 -0
- package/dist/docs/reference/math/lerp3.md +46 -0
- package/dist/docs/reference/math/multiplyTransform3.md +46 -0
- package/dist/docs/reference/math/normalize2.md +45 -0
- package/dist/docs/reference/math/normalize3.md +45 -0
- package/dist/docs/reference/math/projectOntoPlane3.md +40 -0
- package/dist/docs/reference/math/rotate2.md +40 -0
- package/dist/docs/reference/math/rotationTransform3.md +56 -0
- package/dist/docs/reference/math/scale2.md +38 -0
- package/dist/docs/reference/math/scale3.md +44 -0
- package/dist/docs/reference/math/scaleTransform3.md +39 -0
- package/dist/docs/reference/math/subtract2.md +38 -0
- package/dist/docs/reference/math/subtract3.md +44 -0
- package/dist/docs/reference/math/transformDeterminant3.md +38 -0
- package/dist/docs/reference/math/translationTransform3.md +36 -0
- package/dist/docs/reference/math/validateRigidTransform3.md +38 -0
- package/dist/docs/reference/math/validateTransform3.md +48 -0
- package/dist/docs/reference/math.md +22 -0
- package/dist/docs/reference/{geometry → mechanical}/AcmeThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/Bevel.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +5 -15
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +5 -10
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +6 -13
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +4 -5
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +5 -14
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +4 -8
- package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +5 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +4 -5
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +5 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfile-type.md +5 -17
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +7 -18
- package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +8 -15
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +7 -14
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutShape.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +6 -13
- package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +4 -4
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +12 -6
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +13 -3
- package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +7 -5
- package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +10 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +7 -3
- package/dist/docs/reference/mechanical.md +19 -0
- package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +128 -0
- package/dist/docs/reference/{geometry → mesh}/HeightfieldMeshLimits.md +5 -13
- package/dist/docs/reference/{geometry → mesh}/HeightfieldPreflight.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/ImmutableTriangleMesh.md +5 -17
- package/dist/docs/reference/mesh/LoftMeshStation.md +32 -0
- package/dist/docs/reference/mesh/MeshRenderOptions.md +3 -3
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationFallbackReason.md +4 -8
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationResult.md +4 -8
- package/dist/docs/reference/{geometry → mesh}/PlanarPatchQuality.md +4 -12
- package/dist/docs/reference/mesh/RenderMesh.md +19 -19
- package/dist/docs/reference/{geometry → mesh}/SolidMeshValidationOptions.md +4 -12
- package/dist/docs/reference/{geometry → mesh}/TriangleMesh.md +8 -12
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysis.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysisOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshInput.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshMeasurements.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityReport.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignature.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureOptions.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureTolerances.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshTopologyAnalysis.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshValidationOptions.md +4 -9
- package/dist/docs/reference/mesh/analyze.md +26 -18
- package/dist/docs/reference/mesh/analyzeQuality.md +12 -12
- package/dist/docs/reference/mesh/bounds.md +5 -6
- package/dist/docs/reference/mesh/categories/operations.md +37 -4
- package/dist/docs/reference/mesh/centroid.md +5 -6
- package/dist/docs/reference/mesh/extrude.md +21 -20
- package/dist/docs/reference/mesh/heightfield.md +8 -8
- package/dist/docs/reference/mesh/immutable.md +7 -5
- package/dist/docs/reference/mesh/join.md +7 -7
- package/dist/docs/reference/mesh/loft.md +19 -18
- package/dist/docs/reference/mesh/optimizePlanarPatches.md +21 -21
- package/dist/docs/reference/mesh/preflightHeightfield.md +8 -8
- package/dist/docs/reference/mesh/preflightThreadSolid.md +22 -25
- package/dist/docs/reference/mesh/render.md +7 -5
- package/dist/docs/reference/mesh/reverse.md +7 -7
- package/dist/docs/reference/mesh/revolve.md +12 -14
- package/dist/docs/reference/mesh/signature.md +12 -12
- package/dist/docs/reference/mesh/sweep.md +96 -25
- package/dist/docs/reference/mesh/threadRidge.md +19 -18
- package/dist/docs/reference/mesh/threadSolid.md +23 -22
- package/dist/docs/reference/mesh/transform.md +8 -9
- package/dist/docs/reference/mesh/validate.md +11 -11
- package/dist/docs/reference/mesh/validateSolid.md +10 -10
- package/dist/docs/reference/mesh.md +8 -2
- package/dist/docs/reference/model/BoxEdge.md +23 -0
- package/dist/docs/reference/model/BoxEdgeSelection.md +27 -0
- package/dist/docs/reference/model/BoxEdgeTreatments.md +27 -0
- package/dist/docs/reference/{geometry → model}/BoxOptions.md +12 -12
- package/dist/docs/reference/model/CircleOptions.md +4 -5
- package/dist/docs/reference/model/CornerCutterOptions.md +93 -0
- package/dist/docs/reference/model/CornerCutterTreatment.md +53 -0
- package/dist/docs/reference/model/{HoleCutterOverrun.md → CutterOverrun.md} +8 -7
- package/dist/docs/reference/model/CylinderOptions.md +64 -0
- package/dist/docs/reference/model/DiagnosticOptions.md +2 -2
- package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
- package/dist/docs/reference/model/EllipseOptions.md +4 -5
- package/dist/docs/reference/model/EndTreatments.md +43 -0
- package/dist/docs/reference/model/ExtrudeOptions.md +153 -0
- package/dist/docs/reference/model/GenerateCallback.md +2 -2
- package/dist/docs/reference/model/GenerateContext.md +27 -3
- package/dist/docs/reference/model/GenerationDiagnostic.md +2 -2
- package/dist/docs/reference/model/GenerationError.md +2 -2
- package/dist/docs/reference/{geometry → model}/HeightfieldOptions.md +5 -23
- package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
- package/dist/docs/reference/model/HoleCutterOptions.md +9 -22
- package/dist/docs/reference/model/HoleCutterRecess.md +5 -4
- package/dist/docs/reference/model/HullOptions.md +2 -3
- package/dist/docs/reference/model/ImmutableValue.md +2 -2
- package/dist/docs/reference/model/ImplicitOptions.md +3 -9
- package/dist/docs/reference/model/JoinOptions.md +2 -5
- package/dist/docs/reference/model/JoinTransition.md +2 -2
- package/dist/docs/reference/model/KnuckleHinge-type.md +2 -3
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +2 -2
- package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -5
- package/dist/docs/reference/model/KnuckleHingeWeb.md +2 -2
- package/dist/docs/reference/{geometry → model}/LoftCorrespondence.md +8 -11
- package/dist/docs/reference/{geometry → model}/LoftOptions.md +11 -16
- package/dist/docs/reference/model/LoftStation.md +4 -5
- package/dist/docs/reference/model/Memo.md +2 -2
- package/dist/docs/reference/model/ModelProgram.md +2 -2
- package/dist/docs/reference/model/PartDeclaration.md +4 -5
- package/dist/docs/reference/model/PartGeometry.md +3 -5
- package/dist/docs/reference/model/PartOptions.md +4 -5
- package/dist/docs/reference/model/PatternSource.md +4 -4
- package/dist/docs/reference/model/PlaneOptions.md +3 -7
- package/dist/docs/reference/model/PolygonOptions.md +2 -7
- package/dist/docs/reference/model/PrimitiveAttachment.md +50 -0
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +111 -0
- package/dist/docs/reference/model/RectangleOptions.md +21 -26
- package/dist/docs/reference/model/RegularPolygonOptions.md +4 -37
- package/dist/docs/reference/{geometry → model}/RevolveOptions.md +15 -24
- package/dist/docs/reference/model/Section.md +115 -53
- package/dist/docs/reference/model/SectionHullOptions.md +2 -3
- package/dist/docs/reference/model/SectionInspection.md +2 -6
- package/dist/docs/reference/model/SectionOffsetJoin.md +2 -2
- package/dist/docs/reference/model/SectionOffsetOptions.md +2 -3
- package/dist/docs/reference/model/Solid.md +24 -12
- package/dist/docs/reference/model/SolidInspection.md +2 -6
- package/dist/docs/reference/model/SolidSegmentHit.md +2 -6
- package/dist/docs/reference/model/SphereOptions.md +27 -0
- package/dist/docs/reference/model/StarOptions.md +21 -23
- package/dist/docs/reference/model/SvgOrigin.md +2 -2
- package/dist/docs/reference/model/SvgPathSectionOptions.md +3 -5
- package/dist/docs/reference/model/SvgSectionOptions.md +3 -6
- package/dist/docs/reference/model/SweepOptions.md +109 -0
- package/dist/docs/reference/model/SweepOrientation.md +119 -0
- package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
- package/dist/docs/reference/model/TextSectionOptions.md +2 -7
- package/dist/docs/reference/{geometry → model}/TorusOptions.md +11 -10
- package/dist/docs/reference/model/TubeOptions.md +84 -0
- package/dist/docs/reference/model/box.md +11 -10
- package/dist/docs/reference/model/categories/boolean-operations.md +9 -3
- package/dist/docs/reference/model/categories/bounded-surfaces.md +13 -1
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +26 -7
- package/dist/docs/reference/model/categories/generation.md +11 -3
- package/dist/docs/reference/model/categories/hinges.md +7 -1
- package/dist/docs/reference/model/categories/mesh-inspection.md +7 -1
- package/dist/docs/reference/model/categories/primitives.md +34 -6
- package/dist/docs/reference/model/categories/sections.md +8 -2
- package/dist/docs/reference/model/categories/threads.md +8 -5
- package/dist/docs/reference/model/categories/transforms-placement.md +15 -10
- package/dist/docs/reference/model/circle.md +7 -3
- package/dist/docs/reference/model/cornerCutter.md +88 -0
- package/dist/docs/reference/model/cylinder.md +6 -5
- package/dist/docs/reference/model/edgeCutter.md +91 -0
- package/dist/docs/reference/model/ellipse.md +7 -3
- package/dist/docs/reference/model/extrude.md +29 -23
- package/dist/docs/reference/model/generate.md +4 -2
- package/dist/docs/reference/model/gridPattern.md +11 -4
- package/dist/docs/reference/model/heightfield.md +5 -5
- package/dist/docs/reference/model/holeCutter.md +26 -12
- package/dist/docs/reference/model/hull.md +2 -2
- package/dist/docs/reference/model/implicit.md +3 -3
- package/dist/docs/reference/model/internalThreadCutter.md +32 -21
- package/dist/docs/reference/model/intersect.md +7 -3
- package/dist/docs/reference/model/join.md +6 -2
- package/dist/docs/reference/model/knuckleHinge.md +2 -3
- package/dist/docs/reference/model/linearPattern.md +11 -4
- package/dist/docs/reference/model/loft.md +28 -24
- package/dist/docs/reference/model/minkowskiSum.md +3 -3
- package/dist/docs/reference/model/pathPattern.md +17 -8
- package/dist/docs/reference/model/polygon.md +8 -3
- package/dist/docs/reference/model/radialPattern.md +11 -4
- package/dist/docs/reference/model/rectangle.md +11 -7
- package/dist/docs/reference/model/regularPolygon.md +7 -3
- package/dist/docs/reference/model/revolve.md +18 -12
- package/dist/docs/reference/model/solidFromMesh.md +10 -6
- package/dist/docs/reference/model/sphere.md +7 -6
- package/dist/docs/reference/model/star.md +11 -7
- package/dist/docs/reference/model/stroke.md +12 -8
- package/dist/docs/reference/model/svgPathSection.md +10 -4
- package/dist/docs/reference/model/svgSection.md +10 -4
- package/dist/docs/reference/model/sweep.md +102 -25
- package/dist/docs/reference/model/textSection.md +7 -3
- package/dist/docs/reference/model/threadRidge.md +16 -17
- package/dist/docs/reference/model/threadedNut.md +25 -22
- package/dist/docs/reference/model/threadedRod.md +21 -18
- package/dist/docs/reference/model/torus.md +13 -12
- package/dist/docs/reference/model/tube.md +6 -5
- package/dist/docs/reference/model/union.md +7 -3
- package/dist/docs/reference/model.md +10 -5
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
- package/dist/docs/reference/text/VectorFont.md +38 -34
- package/dist/docs/reference/text/VectorFontOptions.md +2 -2
- package/dist/docs/reference/{geometry → text}/VectorTextArcBaseline.md +2 -11
- package/dist/docs/reference/{geometry → text}/VectorTextLayoutOptions.md +3 -11
- package/dist/docs/reference/{geometry → text}/VectorTextOptions.md +2 -10
- package/dist/docs/reference/text/categories/font-preparation.md +10 -1
- package/dist/docs/reference/text/prepareVectorFont.md +4 -2
- package/dist/docs/reference/text.md +7 -1
- package/dist/engine/execution.js +5 -3
- package/dist/engine/finalization.js +5 -5
- package/dist/engine/index.js +9 -4
- package/dist/engine/native/adapter.js +1 -1
- package/dist/engine/native/construction-mesh.js +15 -5
- package/dist/engine/native/context.js +10 -7
- package/dist/engine/native/index.js +1 -1
- package/dist/engine/native/material-components.js +2 -2
- package/dist/engine/native/mesh-observation.js +1 -1
- package/dist/engine/native/regions.js +44 -24
- package/dist/engine/native/scoped-primitives.js +3 -3
- package/dist/engine/native/scoped-threads.js +1 -13
- package/dist/engine/native/threads.js +2 -2
- package/dist/engine/native/transforms.js +2 -2
- package/dist/engine/operations/construction.js +77 -27
- package/dist/engine/operations/context.js +13 -6
- package/dist/engine/operations/cutters.js +112 -0
- package/dist/engine/operations/environment.js +2 -2
- package/dist/engine/operations/extrusion-finishing.js +42 -16
- package/dist/engine/operations/hole-cutter.js +125 -114
- package/dist/engine/operations/join-collar-profile.js +19 -19
- package/dist/engine/operations/join.js +86 -73
- package/dist/engine/operations/knuckle-hinge.js +25 -20
- package/dist/engine/operations/loft.js +9 -16
- package/dist/engine/operations/mechanical.js +4 -15
- package/dist/engine/operations/primitives/anchors.js +23 -19
- package/dist/engine/operations/primitives/construction.js +38 -12
- package/dist/engine/operations/primitives/correspondence.js +2 -2
- package/dist/engine/operations/primitives/profile-mesh.js +41 -80
- package/dist/engine/operations/primitives/profiles.js +5 -5
- package/dist/engine/operations/sections.js +8 -8
- package/dist/engine/operations/transforms.js +19 -39
- package/dist/engine/placement.js +3 -3
- package/dist/engine/recipe-realization.js +86 -30
- package/dist/engine/session/declarations.js +98 -0
- package/dist/engine/session/dependencies.js +81 -28
- package/dist/engine/session/graph.js +39 -137
- package/dist/engine/session/parameters.js +78 -0
- package/dist/engine/session/session.js +2 -2
- package/dist/engine/session/snapshot-cache.js +2 -2
- package/dist/engine/shape-anchors.js +13 -6
- package/dist/export/3mf.js +9 -2
- package/dist/export/capture.js +10 -6
- package/dist/export/glb.js +7 -2
- package/dist/export/stl.js +21 -6
- package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
- package/dist/geometry/{bounds-value.js → bounds/value.js} +20 -16
- package/dist/geometry/curves/evaluation.js +5 -6
- package/dist/geometry/curves/sampling.js +30 -6
- package/dist/geometry/{extrusion.js → extrusion/controls.js} +58 -35
- package/dist/geometry/extrusion/mesh.js +92 -0
- package/dist/geometry/extrusion/stations.js +35 -0
- package/dist/geometry/extrusion/twisted-chamfer.js +265 -0
- package/dist/geometry/immutable-buffer.js +7 -1
- package/dist/geometry/index.js +24 -32
- package/dist/geometry/{model-limits.js → limits.js} +1 -1
- package/dist/geometry/loft/{loft-correspondence.js → correspondence.js} +31 -20
- package/dist/geometry/loft/{loft-geometry.js → geometry.js} +15 -17
- package/dist/geometry/loft/mesh.js +53 -0
- package/dist/geometry/loft/{loft-options.js → options.js} +13 -11
- package/dist/geometry/loft/{loft-simple-mesh.js → simple-mesh.js} +26 -17
- package/dist/geometry/math/interpolation.js +9 -0
- package/dist/geometry/math/vector-value.js +12 -3
- package/dist/geometry/math/vector2.js +18 -5
- package/dist/geometry/math/vector3.js +28 -5
- package/dist/geometry/math-api.js +4 -0
- package/dist/geometry/mechanical/gear-motion.js +7 -5
- package/dist/geometry/mechanical/gears.js +21 -4
- package/dist/geometry/mechanical/knuckle-hinge.js +7 -5
- package/dist/geometry/mechanical/threads/fit.js +8 -2
- package/dist/geometry/mechanical/threads/helices.js +4 -2
- package/dist/geometry/mechanical/threads/mesh-plan.js +4 -2
- package/dist/geometry/mechanical/threads/mesh.js +12 -9
- package/dist/geometry/mechanical/threads/profiles.js +18 -4
- package/dist/geometry/mechanical/threads/solids.js +11 -2
- package/dist/geometry/mechanical-api.js +10 -0
- package/dist/geometry/mesh/{mesh-centroid.js → centroid.js} +2 -1
- package/dist/geometry/{heightfield.js → mesh/heightfield.js} +9 -5
- package/dist/geometry/{join-geometry.js → mesh/join-layers.js} +53 -59
- package/dist/geometry/mesh/{mesh.js → operations.js} +11 -18
- package/dist/geometry/mesh/{mesh-planar.js → planar.js} +8 -18
- package/dist/geometry/mesh/{mesh-quality.js → quality.js} +10 -42
- package/dist/geometry/mesh/{mesh-render.js → render-buffers.js} +22 -7
- package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
- package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +2 -0
- package/dist/geometry/mesh/{mesh-solid.js → solid.js} +4 -4
- package/dist/geometry/mesh/triangle-quality.js +42 -0
- package/dist/geometry/mesh/winding.js +11 -0
- package/dist/geometry/{numeric.js → mesh/write-vertex.js} +1 -1
- package/dist/geometry/mesh-api.js +12 -11
- package/dist/geometry/paths/distribution.js +43 -0
- package/dist/geometry/paths/editing.js +76 -0
- package/dist/geometry/paths/frames.js +16 -11
- package/dist/geometry/paths/helix.js +1 -1
- package/dist/geometry/paths/resampling.js +46 -61
- package/dist/geometry/paths/{planar.js → rounding.js} +8 -67
- package/dist/geometry/paths/spline.js +116 -0
- package/dist/geometry/paths/traversal.js +107 -0
- package/dist/geometry/paths/{path-value.js → value.js} +97 -18
- package/dist/geometry/patterns/placements.js +20 -29
- package/dist/geometry/{patterns.js → patterns/transforms.js} +11 -7
- package/dist/geometry/primitives/cutters.js +70 -0
- package/dist/geometry/{cylinder.js → primitives/cylinder.js} +4 -4
- package/dist/geometry/{edge-finishing.js → primitives/edges.js} +5 -5
- package/dist/geometry/{primitive-resolvers.js → primitives/resolvers.js} +9 -9
- package/dist/geometry/primitives/sampling.js +41 -0
- package/dist/geometry/profiles/contour.js +19 -7
- package/dist/geometry/profiles/{match-profiles.js → matching.js} +9 -6
- package/dist/geometry/profiles/primitives/circle.js +1 -1
- package/dist/geometry/profiles/primitives/ellipse.js +2 -2
- package/dist/geometry/profiles/primitives/rectangle.js +8 -8
- package/dist/geometry/profiles/primitives/star.js +1 -1
- package/dist/geometry/profiles/side-profile.js +8 -5
- package/dist/geometry/profiles/validation.js +1 -1
- package/dist/geometry/{polygon-clipping.js → regions/clipping.js} +1 -1
- package/dist/geometry/{convex-offset.js → regions/convex-offset.js} +1 -1
- package/dist/geometry/{region-offset.js → regions/offset.js} +7 -5
- package/dist/geometry/{regions.js → regions/operations.js} +59 -22
- package/dist/geometry/{stroke-path.js → regions/stroke.js} +46 -20
- package/dist/geometry/{loft/loft-triangulation.js → regions/triangulation.js} +35 -2
- package/dist/geometry/revolve/{revolve-mesh.js → mesh.js} +9 -10
- package/dist/geometry/{circular-sampling.js → sampling/circular.js} +3 -3
- package/dist/geometry/{sampling-limits.js → sampling/limits.js} +6 -2
- package/dist/geometry/{resolution.js → sampling/resolution.js} +15 -14
- package/dist/geometry/svg/fill.js +4 -3
- package/dist/geometry/svg/import.js +47 -64
- package/dist/geometry/svg/path.js +3 -3
- package/dist/geometry/sweep/closed.js +55 -0
- package/dist/geometry/sweep/mesh.js +30 -0
- package/dist/geometry/{sweeps/sweep-open.js → sweep/open.js} +9 -24
- package/dist/geometry/{sweeps → sweep}/orientation.js +14 -11
- package/dist/geometry/sweep/seam.js +30 -0
- package/dist/geometry/{sweeps → sweep}/stations.js +75 -10
- package/dist/geometry/sweep/transforms.js +30 -0
- package/dist/geometry/{sweeps → sweep}/validation.js +4 -4
- package/dist/geometry/{text-contours.js → text/contours.js} +3 -3
- package/dist/geometry/{text-fitting.js → text/fitting.js} +4 -3
- package/dist/geometry/text/layout.js +1 -0
- package/dist/geometry/{transform3.js → transforms/affine3.js} +31 -46
- package/dist/geometry/{anchors.js → transforms/anchors.js} +43 -24
- package/dist/geometry/{transform-geometry.js → transforms/apply.js} +8 -5
- package/dist/geometry/{transform2.js → transforms/dimensions.js} +23 -19
- package/dist/geometry/transforms/frame.js +64 -0
- package/dist/geometry/{transform-matrix.js → transforms/matrix-input.js} +8 -1
- package/dist/geometry/{transform-value.js → transforms/value.js} +29 -11
- package/dist/index.js +3 -9
- package/dist/model/cutters.js +1 -0
- package/dist/model/execution-binding.js +3 -3
- package/dist/model/generation.js +2 -0
- package/dist/model/immutable-generation-data.js +2 -0
- package/dist/model/operations.js +130 -94
- package/dist/model/recipe-declaration.js +5 -7
- package/dist/text/index.js +3 -0
- package/dist/text/vector-text-layout.js +1 -0
- package/package.json +15 -17
- package/dist/api/export-3mf.d.ts +0 -2
- package/dist/api/export-glb.d.ts +0 -2
- package/dist/api/export-stl.d.ts +0 -2
- package/dist/docs/reference/geometry/BoxEdge.md +0 -17
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -24
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -25
- package/dist/docs/reference/geometry/CylinderOptions.md +0 -63
- package/dist/docs/reference/geometry/EndTreatments.md +0 -44
- package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -144
- package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -156
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -25
- package/dist/docs/reference/geometry/LoftMeshStation.md +0 -41
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -39
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -114
- package/dist/docs/reference/geometry/SphereOptions.md +0 -25
- package/dist/docs/reference/geometry/SweepOptions.md +0 -127
- package/dist/docs/reference/geometry/SweepOrientation.md +0 -127
- package/dist/docs/reference/geometry/TubeOptions.md +0 -72
- package/dist/docs/reference/geometry/add2.md +0 -43
- package/dist/docs/reference/geometry/add3.md +0 -49
- package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -52
- package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -50
- package/dist/docs/reference/geometry/categories/meshes.md +0 -68
- package/dist/docs/reference/geometry/composeTransform3.md +0 -51
- package/dist/docs/reference/geometry/cross2.md +0 -43
- package/dist/docs/reference/geometry/cross3.md +0 -49
- package/dist/docs/reference/geometry/distance2.md +0 -43
- package/dist/docs/reference/geometry/distance3.md +0 -43
- package/dist/docs/reference/geometry/dot2.md +0 -43
- package/dist/docs/reference/geometry/dot3.md +0 -49
- package/dist/docs/reference/geometry/eulerTransform3.md +0 -49
- package/dist/docs/reference/geometry/frameTransform3.md +0 -55
- package/dist/docs/reference/geometry/inverseTransform3.md +0 -41
- package/dist/docs/reference/geometry/length2.md +0 -37
- package/dist/docs/reference/geometry/length3.md +0 -37
- package/dist/docs/reference/geometry/lerp2.md +0 -49
- package/dist/docs/reference/geometry/lerp3.md +0 -49
- package/dist/docs/reference/geometry/normalize2.md +0 -46
- package/dist/docs/reference/geometry/normalize3.md +0 -46
- package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -43
- package/dist/docs/reference/geometry/rotate2.md +0 -43
- package/dist/docs/reference/geometry/rotationTransform3.md +0 -60
- package/dist/docs/reference/geometry/scale2.md +0 -43
- package/dist/docs/reference/geometry/scale3.md +0 -49
- package/dist/docs/reference/geometry/scaleTransform3.md +0 -45
- package/dist/docs/reference/geometry/subtract2.md +0 -43
- package/dist/docs/reference/geometry/subtract3.md +0 -49
- package/dist/docs/reference/geometry/transformDeterminant3.md +0 -43
- package/dist/docs/reference/geometry/translationTransform3.md +0 -42
- package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -41
- package/dist/docs/reference/geometry/validateTransform3.md +0 -54
- package/dist/docs/reference/model/Profile.md +0 -30
- package/dist/docs/reference/model/categories/explicit-profiles.md +0 -21
- package/dist/docs/reference/model/matchProfiles.md +0 -48
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -93
- package/dist/docs/reference/model/preflightThreadedNut.md +0 -109
- package/dist/docs/reference/model/preflightThreadedRod.md +0 -93
- package/dist/engine/operations/patterns.js +0 -47
- package/dist/geometry/loft/loft.js +0 -105
- package/dist/geometry/mechanical/index.js +0 -14
- package/dist/geometry/primitive-resolution.js +0 -20
- package/dist/geometry/svg/index.js +0 -1
- package/dist/geometry/sweeps/options.js +0 -29
- package/dist/geometry/sweeps/sweep-closed.js +0 -96
- package/dist/geometry/sweeps/sweep-mesh.js +0 -32
- /package/dist/geometry/mechanical/{standards.js → fastener-standards.js} +0 -0
- /package/dist/geometry/mesh/{mesh-edge-table.js → edge-table.js} +0 -0
- /package/dist/geometry/mesh/{mesh-types.js → types.js} +0 -0
- /package/dist/geometry/mesh/{mesh-view-cache.js → view-cache.js} +0 -0
- /package/dist/geometry/{primitive-options.js → primitives/options.js} +0 -0
- /package/dist/geometry/{text-layout.js → sweep/options.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# @metamesh/modeling
|
|
2
2
|
|
|
3
|
+
## 0.20.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- fe33c89: Give modeling operations, pure geometry values, numerical kernels, and mechanical calculations distinct public entry points. Import fluent values from `/geometry`, tuple and matrix kernels from `/geometry/math`, and mechanical calculations from `/geometry/mechanical`. Remove root geometry factory re-exports and ambient `matchProfiles` and thread-preflight wrappers; pure preparation accepts explicit resolution and limits exposed by the generation context.
|
|
8
|
+
|
|
9
|
+
Bounds extrema and pattern/attachment placements return fluent values. Construct anchors with one options object, project fluent vectors onto planes, and multiply raw matrices with `multiplyTransform3(left, right)`. Remove retired exports and update the SDK, CLI, Studio authoring environment, and consumers without compatibility aliases.
|
|
10
|
+
|
|
11
|
+
- d5dd213: Evaluate deep Solid and Section recipe graphs with an explicit work stack, preserving native cache reuse and session ownership checks without exhausting the JavaScript call stack. Index memo output containment for dependency diagnostics instead of scanning unrelated computations. Separate parameter snapshots and part declarations from the session's memo cache state machine, remove repeated contour measurements and temporary native-coordinate copy views, and clarify allocation ownership. Align private geometry helper names with their Contour and Path representations. Restore the Engine benchmark with deep-recipe and dependency-scaling measurements.
|
|
12
|
+
|
|
13
|
+
Resolve region sampling limits once per import batch, including empty regions, and clarify memo transaction and matched-profile mesh flow.
|
|
14
|
+
|
|
15
|
+
- d5dd213: Add arc-length distance/fraction stations, directed splitting and trimming, corner-preserving subdivision, and physically bounded centripetal spline paths. Unify traversal so exact interior vertices use their outgoing edge, including tangent-oriented patterns; open final endpoints retain their incoming edge. Preserve interpolation endpoints, prevent guided frame flips at bends, and reject resampling that would repeat a closed seam. Separate path distribution and rounding owners without compatibility aliases.
|
|
16
|
+
|
|
17
|
+
Preserve authored terminal vertices during endpoint queries, splitting, and trimming when a short edge falls below cumulative arc-length precision.
|
|
18
|
+
|
|
19
|
+
- 52e4e07: Replace the single hole entry and screw-recess options with independent `holeCutter.openings`.
|
|
20
|
+
Share round, chamfer, smooth, and sampled profile treatments across supported construction and
|
|
21
|
+
opening geometry; add tube end finishing and reusable straight-edge/perpendicular-corner cutters.
|
|
22
|
+
Cutters preserve nominal dimensions, explicit placement, physical sampling, and host-owned limits.
|
|
23
|
+
Perpendicular round edge and corner cutters share native circular coordinates and refinement,
|
|
24
|
+
avoiding mismatched boundaries and thin Boolean stitching triangles.
|
|
25
|
+
Adaptive spheres and uniform spherical box roundovers now budget complete triangle error and edge
|
|
26
|
+
length instead of only their equatorial curves; explicit faceting overrides remain authoritative.
|
|
27
|
+
- 5654590: Give every public declaration exactly one import path. Shared types remain available from their owning module; consuming entries reference those types without re-exporting them. Import all export writers from `@metamesh/modeling/export`; remove the format subpaths. Import SDK font selections from `/fonts` and Generator presets from the SDK root. Remove alternate import metadata and enforce unique source and published declaration ownership without compatibility aliases.
|
|
28
|
+
- 382d312: Sweep accepts a positional path or transform array: `sweep(profile, route, options?)` or `profile.sweep(route, options?)`. Transform-driven sweeps accept only `closed` and `limits` to connect exactly the supplied affine placements without inferring rotation or refining stations. Loft stations accept exactly one `z` or `transform`; `transform` replaces `frame`.
|
|
29
|
+
|
|
30
|
+
Closed path sweeps now derive and verify cyclic seam alignment for every profile boundary. Remove `seamProfileOffset` from callers; incompatible closure still rejects.
|
|
31
|
+
|
|
32
|
+
Construct deeply immutable plain coordinate frames with `frame3({ origin, xAxis, yAxis, zAxis })`. `Transform3Input` accepts frames, affine values, and matrices through one conversion pipeline, including explicit sweep placements. Use `transform3(frame)` when affine methods are needed. Frames retain right-handed orthonormal validation, parts retain rigid-only placement, and malformed or non-finite coordinates reject before construction.
|
|
33
|
+
|
|
34
|
+
- 6455ccf: Support chamfered ends on twisted extrusions, measuring normal-section setbacks on the finished
|
|
35
|
+
helical walls and preserving corner and hole correspondence. Ordinary extrusions retain their
|
|
36
|
+
native fast path. Enabled twisted end treatments support chamfers; other treatments and taper
|
|
37
|
+
with ends remain unsupported.
|
|
38
|
+
|
|
39
|
+
Breaking: replace extrusion `scaleTop` with `scale` and `divisions` with positive `slices`, counting
|
|
40
|
+
longitudinal intervals. Loft `slices` also counts intervals per supplied gap. End treatments add
|
|
41
|
+
required rings to the extrusion's requested grid. Open sweep scalar and XY `scale` now taper from
|
|
42
|
+
one to the final scale by path length; station arrays retain explicit scale control. Scale in the
|
|
43
|
+
profile's local axes before twisting, and refine untwisted sweep deformation by physical resolution.
|
|
44
|
+
|
|
45
|
+
Compiled Generators require execution protocol and runtime major 13. Rebuild packages for the new
|
|
46
|
+
binding; package format 5 is unchanged.
|
|
47
|
+
|
|
48
|
+
### Patch Changes
|
|
49
|
+
|
|
50
|
+
- ae34a4f: Build round stroke caps directly into their end segments to prevent clipping seams on thin diagonal lines. Sample each semicircle with the shared arc policy and account for its actual construction vertices in pure, native, and SVG strokes.
|
|
51
|
+
|
|
3
52
|
## 0.19.0
|
|
4
53
|
|
|
5
54
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -53,19 +53,26 @@ asset and run the engine in a Worker; see the
|
|
|
53
53
|
|
|
54
54
|
## Modeling capabilities
|
|
55
55
|
|
|
56
|
-
| Area | Capabilities
|
|
57
|
-
| --------------------- |
|
|
58
|
-
| Shapes and sections | Solid primitives, filled 2D shapes with holes, Booleans, hulls, 2D offsets, splitting, edge treatments, and controlled solid joins. |
|
|
59
|
-
| Sweeps and surfaces | Extrusion, revolution, sweeps, lofts with explicit profile correspondence, heightfields, and implicit surfaces.
|
|
60
|
-
| Paths and placement | Immutable vectors, paths, transforms, and bounds; anchors, layout, and linear, radial, grid, and path patterns.
|
|
61
|
-
| SVG and text | Bounded SVG fills and strokes, prepared font outlines, and vector text layout.
|
|
62
|
-
| Mechanical geometry | Printable threads, knuckle joints, gear profiles, fastener standards, and fit calculations.
|
|
63
|
-
| Meshes and inspection | Indexed mesh construction and conversion, measurements, spatial queries, topology checks, and bounded preflight.
|
|
56
|
+
| Area | Capabilities |
|
|
57
|
+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
58
|
+
| Shapes and sections | Solid primitives, filled 2D shapes with holes, Booleans, hulls, 2D offsets, splitting, shared edge treatments, reusable cutters, and controlled solid joins. |
|
|
59
|
+
| Sweeps and surfaces | Extrusion, revolution, sweeps, lofts with explicit profile correspondence, heightfields, and implicit surfaces. |
|
|
60
|
+
| Paths and placement | Immutable vectors, paths, transforms, and bounds; anchors, layout, and linear, radial, grid, and path patterns. |
|
|
61
|
+
| SVG and text | Bounded SVG fills and strokes, prepared font outlines, and vector text layout. |
|
|
62
|
+
| Mechanical geometry | Printable threads, knuckle joints, gear profiles, fastener standards, and fit calculations. |
|
|
63
|
+
| Meshes and inspection | Indexed mesh construction and conversion, measurements, spatial queries, topology checks, and bounded preflight. |
|
|
64
64
|
|
|
65
65
|
The [geometry values guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-values.mdx)
|
|
66
66
|
helps you choose a representation. The [recipes](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/develop/geometry-recipes.mdx)
|
|
67
67
|
show how these capabilities fit together.
|
|
68
68
|
|
|
69
|
+
Finish bodies during construction with `treatment` or `ends`. Use `holeCutter` for a bore or
|
|
70
|
+
blind pocket with independent `openings.top` and `openings.bottom`: round, chamfer, smooth, or
|
|
71
|
+
sampled profile treatments; circular bores also support counterbores and countersinks.
|
|
72
|
+
`edgeCutter` and `cornerCutter` create explicitly placed local cuts. All cutters are ordinary
|
|
73
|
+
Solid recipes for reuse with transforms, patterns, and subtraction. Keep numerical overrun
|
|
74
|
+
separate from physical clearance.
|
|
75
|
+
|
|
69
76
|
## Pure triangle meshes
|
|
70
77
|
|
|
71
78
|
Use `@metamesh/modeling/geometry/mesh` when you want to construct and process triangle buffers
|
|
@@ -119,7 +126,7 @@ Results are immutable and remain usable after later runs. Call `session.dispose(
|
|
|
119
126
|
finished with a session; individual results need no disposal.
|
|
120
127
|
|
|
121
128
|
Use `part(id, { geometry, transform: transform3().rotate([0, 0, 90]).translate([20, 0, 0]) })`
|
|
122
|
-
for final placement. The transform accepts a fluent value or row-major 16-number matrix, including
|
|
129
|
+
for final placement. The transform accepts a plain `Frame3`, fluent value, or row-major 16-number matrix, including
|
|
123
130
|
pattern and attachment outputs; omission means identity. Only translation and proper rotation are
|
|
124
131
|
allowed. Completed parts expose the copied frozen matrix as `part.transform`.
|
|
125
132
|
|
|
@@ -164,19 +171,28 @@ Result statistics include `buildMs`, `finalizeMs`, and `generateMs`; `generateMs
|
|
|
164
171
|
buffers once. It doesn't measure local resources, transfer size, or total working memory.
|
|
165
172
|
|
|
166
173
|
Export `result.parts` as STL, 3MF, or GLB with `@metamesh/modeling/export`. Export needs no engine.
|
|
167
|
-
The [hosting guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/
|
|
174
|
+
The [hosting guide](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/docs/engine/exporting.mdx)
|
|
168
175
|
covers saving files and choosing a format.
|
|
169
176
|
|
|
170
177
|
## API discovery and ownership
|
|
171
178
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
|
179
|
+
Every public type and function has one import path. Import shared types from their owning entry;
|
|
180
|
+
other entries reference those types in signatures without re-exporting them.
|
|
181
|
+
|
|
182
|
+
Constructor-specific options such as `BoxOptions` live at the root. Shared pattern options such
|
|
183
|
+
as `GridPatternOptions` live in `/geometry`; thread options such as `ThreadedRodOptions` live in
|
|
184
|
+
`/geometry/mechanical`. Shape recipes and pure helpers consume the same shared contracts.
|
|
185
|
+
|
|
186
|
+
| Import | Responsibility |
|
|
187
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
188
|
+
| [`@metamesh/modeling`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/model/index.mdx) | Solid and Section recipes, modeling operations, and generation programs. |
|
|
189
|
+
| [`@metamesh/modeling/geometry`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/geometry/index.mdx) | Immutable values, plain descriptors, profiles, regions, placement, and sampling without an engine. |
|
|
190
|
+
| [`@metamesh/modeling/geometry/math`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/math/index.mdx) | Tuple arithmetic and affine matrix kernels. |
|
|
191
|
+
| [`@metamesh/modeling/geometry/mechanical`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/mechanical/index.mdx) | Pure mechanical dimensions, fit policies, standards, and preflight calculations. |
|
|
192
|
+
| [`@metamesh/modeling/geometry/mesh`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/mesh/index.mdx) | Triangle mesh construction, processing, and inspection through direct `mesh.*` imports. |
|
|
193
|
+
| [`@metamesh/modeling/engine`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/engine/index.mdx) | Host initialization, execution, and resource limits. |
|
|
194
|
+
| [`@metamesh/modeling/export`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/export/index.mdx) | STL, 3MF, and GLB export. |
|
|
195
|
+
| [`@metamesh/modeling/text`](https://github.com/JasonKoolman/metamesh/blob/main/apps/web/content/reference/generated/text/index.mdx) | Optional font preparation and reusable vector layouts from supplied bytes. |
|
|
180
196
|
|
|
181
197
|
Font preparation requires the optional `fontkit` peer; add `woff2-encoder` for WOFF2 input. Models
|
|
182
198
|
consume prepared layouts without fetching fonts during generation. Your host owns viewing,
|
package/dist/api/engine.d.ts
CHANGED
|
@@ -1,18 +1,129 @@
|
|
|
1
|
-
import type { ImmutableTriangleMesh } from "@metamesh/modeling/geometry";
|
|
2
1
|
import type {
|
|
2
|
+
Anchor3,
|
|
3
|
+
AttachOptions,
|
|
4
|
+
Bounds2Data,
|
|
5
|
+
Bounds3,
|
|
3
6
|
Bounds3Data,
|
|
4
|
-
|
|
7
|
+
Bounds3Input,
|
|
8
|
+
ChamferedEdgeTreatment,
|
|
9
|
+
CircularPrimitiveOptions,
|
|
10
|
+
Contour,
|
|
11
|
+
CurveSamplingOptions,
|
|
12
|
+
EdgeTreatment,
|
|
13
|
+
ExtrusionSamplingOptions,
|
|
14
|
+
Frame3,
|
|
5
15
|
GeometryResolution,
|
|
16
|
+
GeometrySamplingLimits,
|
|
17
|
+
GeometryToleranceOptions,
|
|
18
|
+
ImmutableBuffer,
|
|
6
19
|
ModelingLimits,
|
|
7
|
-
|
|
20
|
+
NumericArray,
|
|
21
|
+
Path3,
|
|
22
|
+
Path3Data,
|
|
23
|
+
Path3Input,
|
|
24
|
+
PathLocation,
|
|
25
|
+
PathNormalGuide,
|
|
26
|
+
PathResamplingOptions,
|
|
27
|
+
PathStation,
|
|
28
|
+
PathSubdivisionOptions,
|
|
29
|
+
Pivot2Options,
|
|
30
|
+
Pivot3Options,
|
|
31
|
+
PolygonData,
|
|
32
|
+
ProfiledEdgeTreatment,
|
|
33
|
+
RegionData,
|
|
34
|
+
ResolvedGeometryResolution,
|
|
35
|
+
RoundedEdgeTreatment,
|
|
36
|
+
SmoothEdgeTreatment,
|
|
37
|
+
Transform2,
|
|
38
|
+
Transform2Data,
|
|
39
|
+
Transform2Input,
|
|
40
|
+
Transform3,
|
|
8
41
|
Transform3Data,
|
|
9
|
-
|
|
42
|
+
Transform3Input,
|
|
43
|
+
Vector2,
|
|
44
|
+
Vector2Data,
|
|
45
|
+
Vector2Input,
|
|
46
|
+
Vector3,
|
|
47
|
+
Vector3Data,
|
|
48
|
+
Vector3Input,
|
|
49
|
+
} from "@metamesh/modeling/geometry";
|
|
50
|
+
import type {
|
|
51
|
+
DiagnosticOptions,
|
|
52
|
+
EndTreatments,
|
|
53
|
+
ExtrudeOptions,
|
|
54
|
+
GenerateCallback,
|
|
55
|
+
GenerateContext,
|
|
56
|
+
GenerationDiagnostic,
|
|
57
|
+
ImmutableValue,
|
|
58
|
+
JoinOptions,
|
|
59
|
+
JoinTransition,
|
|
60
|
+
Memo,
|
|
61
|
+
ModelProgram,
|
|
62
|
+
PartDeclaration,
|
|
63
|
+
PartGeometry,
|
|
64
|
+
PartOptions,
|
|
65
|
+
PlaneOptions,
|
|
66
|
+
RevolveOptions,
|
|
67
|
+
Section,
|
|
68
|
+
SectionInspection,
|
|
69
|
+
SectionOffsetJoin,
|
|
70
|
+
SectionOffsetOptions,
|
|
71
|
+
Solid,
|
|
72
|
+
SolidInspection,
|
|
73
|
+
SolidSegmentHit,
|
|
74
|
+
SweepOptions,
|
|
75
|
+
SweepOrientation,
|
|
76
|
+
SweepTransformOptions,
|
|
10
77
|
} from "@metamesh/modeling";
|
|
11
|
-
|
|
12
|
-
|
|
78
|
+
import type {
|
|
79
|
+
ExtrudeMeshOptions,
|
|
80
|
+
ImmutableTriangleMesh,
|
|
81
|
+
TriangleMesh,
|
|
82
|
+
TriangleMeshAnalysis,
|
|
83
|
+
TriangleMeshMeasurements,
|
|
84
|
+
TriangleMeshTopologyAnalysis,
|
|
85
|
+
} from "@metamesh/modeling/geometry/mesh";
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Runs declaration and immediate assertions without initializing a kernel or finalizing parts.
|
|
89
|
+
* Returns reached assertion errors and warnings; unexpected execution failures throw.
|
|
90
|
+
* Returned geometry is not realized or validated.
|
|
91
|
+
* Geometry observations require an initialized session's `check` method instead.
|
|
92
|
+
*
|
|
93
|
+
* @param program - Model declaration to check without evaluating geometry.
|
|
94
|
+
* @param args - Parameters, then session options; include any required services.
|
|
95
|
+
*/
|
|
96
|
+
export declare function checkModel<P extends object, S>(
|
|
97
|
+
program: ModelProgram<P, S>,
|
|
98
|
+
...args: ModelRunArguments<P, S, SessionOptions<S>>
|
|
99
|
+
): readonly GenerationDiagnostic[];
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Initializes one host kernel; runs and sessions own native cleanup.
|
|
103
|
+
*
|
|
104
|
+
* @param options - WASM URL and engine resource limits.
|
|
105
|
+
*
|
|
106
|
+
* @example Build a box in a host application
|
|
107
|
+
* ```ts
|
|
108
|
+
* import { box, generate } from "@metamesh/modeling";
|
|
109
|
+
* import { createModelEngine } from "@metamesh/modeling/engine";
|
|
110
|
+
* import { export3mf } from "@metamesh/modeling/export";
|
|
111
|
+
*
|
|
112
|
+
* const engine = await createModelEngine();
|
|
113
|
+
* const model = generate<Record<never, never>>(({ part }) => [part("body", box({ size: [30, 20, 8] }))]);
|
|
114
|
+
* const result = engine.run(model);
|
|
115
|
+
* await export3mf(result.parts);
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export declare function createModelEngine(
|
|
119
|
+
options?: ModelEngineOptions,
|
|
120
|
+
): Promise<ModelEngine>;
|
|
121
|
+
|
|
122
|
+
/** Default engine ceilings, shared with predictable pure mesh constructor preflights. */
|
|
123
|
+
export declare const defaultModelingLimits: ModelingLimits;
|
|
13
124
|
|
|
14
125
|
/** Execution settings supplied by the host, independently of generator metadata. */
|
|
15
|
-
export interface GenerationOptions {
|
|
126
|
+
export declare interface GenerationOptions {
|
|
16
127
|
/** Optional bounded intersection and nested-shell checks; defaults to indexed topology validation. */
|
|
17
128
|
readonly meshValidation?: "topology" | "solid";
|
|
18
129
|
/** Per-build limits, no larger than the configured engine ceilings. */
|
|
@@ -22,10 +133,45 @@ export interface GenerationOptions {
|
|
|
22
133
|
/** Optional bounded planar cleanup; unsupported candidates preserve the original part. */
|
|
23
134
|
readonly meshTopologyMode?: "original" | "optimized";
|
|
24
135
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
136
|
+
|
|
137
|
+
/** Validated local geometry resource with stable immutable numeric storage. */
|
|
138
|
+
export declare interface GeometryResource extends ImmutableTriangleMesh {
|
|
139
|
+
/** Session-scoped immutable resource identity, stable while geometry is reused. */
|
|
140
|
+
readonly id: string;
|
|
141
|
+
/** Immutable resource revision; a new resource receives a new identity. */
|
|
142
|
+
readonly revision: number;
|
|
143
|
+
/** Facts and indexed topology counts for the exact local manufacturing buffers. */
|
|
144
|
+
readonly measurements: TriangleMeshTopologyAnalysis;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
declare const immutableBufferBrand: unique symbol;
|
|
148
|
+
|
|
149
|
+
/** Known dependencies for inspection; plain JavaScript bindings do not reveal their parameter origin. */
|
|
150
|
+
export declare interface ModelDependencies {
|
|
151
|
+
/** Parameter keys read outside memo functions, affecting structure or ordinary code. */
|
|
152
|
+
readonly modelParameters: readonly string[];
|
|
153
|
+
/** Direct dependencies recorded by successfully evaluated computations. */
|
|
154
|
+
readonly computations: readonly {
|
|
155
|
+
/** Revision-local diagnostic memo identity; it is not a cache key. */
|
|
156
|
+
readonly id: string;
|
|
157
|
+
/** Direct top-level parameter reads. */
|
|
158
|
+
readonly parameters: readonly string[];
|
|
159
|
+
/** Known object-value dependencies between memo calls; scalar origins are not observable. */
|
|
160
|
+
readonly computations: readonly string[];
|
|
161
|
+
}[];
|
|
162
|
+
/** Known memo origins of part geometry and placement, and their parameter dependencies. */
|
|
163
|
+
readonly parts: readonly {
|
|
164
|
+
/** Stable semantic output part identity. */
|
|
165
|
+
readonly id: string;
|
|
166
|
+
/** Memo calls known to contribute object values to geometry or placement. */
|
|
167
|
+
readonly computations: readonly string[];
|
|
168
|
+
/** Known transitive parameter dependencies through these roots. */
|
|
169
|
+
readonly parameters: readonly string[];
|
|
170
|
+
}[];
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/** Host engine. No native values or manually disposable handles are exposed. */
|
|
174
|
+
export declare interface ModelEngine {
|
|
29
175
|
/** Immutable resource ceilings selected when this engine was initialized. */
|
|
30
176
|
readonly limits: ModelingLimits;
|
|
31
177
|
/** Runs once with isolated ownership and returns durable immutable data; no disposal is required. */
|
|
@@ -45,54 +191,18 @@ export interface ModelEngine {
|
|
|
45
191
|
]
|
|
46
192
|
): ModelSession<P>;
|
|
47
193
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*/
|
|
56
|
-
readonly services?: S;
|
|
57
|
-
}
|
|
58
|
-
/** Fixed argument positions; infer parameters from the program, allow empty maps to be omitted, and require declared services. */
|
|
59
|
-
export type ModelRunArguments<
|
|
60
|
-
P extends object,
|
|
61
|
-
S,
|
|
62
|
-
Options extends ModelRunOptions<S> = ModelRunOptions<S>,
|
|
63
|
-
> = keyof S extends never
|
|
64
|
-
? Record<never, never> extends P
|
|
65
|
-
? [parameters?: NoInfer<Readonly<P>>, options?: Options]
|
|
66
|
-
: [parameters: NoInfer<Readonly<P>>, options?: Options]
|
|
67
|
-
: [
|
|
68
|
-
parameters:
|
|
69
|
-
| NoInfer<Readonly<P>>
|
|
70
|
-
| (Record<never, never> extends P ? undefined : never),
|
|
71
|
-
options: Options & {
|
|
72
|
-
/** Prepared synchronous capabilities required by this program. */
|
|
73
|
-
readonly services: S;
|
|
74
|
-
},
|
|
75
|
-
];
|
|
76
|
-
/** Fixed generation policy and reusable computation caches for one model session. */
|
|
77
|
-
export interface SessionOptions<
|
|
78
|
-
S = Record<never, never>,
|
|
79
|
-
> extends ModelRunOptions<S> {
|
|
80
|
-
/** Enables reuse; defaults to true. Set false for uncached output equivalence checks. */
|
|
81
|
-
readonly cache?: boolean;
|
|
82
|
-
/** Development-only cache-hit probe: reruns pure callbacks and compares bounded data/recipes.
|
|
83
|
-
* Unsupported closures or large results fail explicitly; this cannot prove arbitrary JavaScript.
|
|
84
|
-
*/
|
|
85
|
-
readonly verifyCache?: boolean;
|
|
86
|
-
}
|
|
87
|
-
/** Validated local geometry resource with stable immutable numeric storage. */
|
|
88
|
-
export interface GeometryResource extends ImmutableTriangleMesh {
|
|
89
|
-
/** Session-scoped immutable resource identity, stable while geometry is reused. */
|
|
90
|
-
readonly id: string;
|
|
91
|
-
/** Immutable resource revision; a new resource receives a new identity. */
|
|
92
|
-
readonly revision: number;
|
|
93
|
-
/** Facts and indexed topology counts for the exact local manufacturing buffers. */
|
|
94
|
-
readonly measurements: TriangleMeshTopologyAnalysis;
|
|
194
|
+
|
|
195
|
+
/** Kernel asset initialization. Networking and Worker ownership remain with the host. */
|
|
196
|
+
export declare interface ModelEngineOptions {
|
|
197
|
+
/** Fixed kernel WASM asset URL; defaults to the package asset. Browser hosts supply their emitted URL. */
|
|
198
|
+
readonly wasmUrl?: string;
|
|
199
|
+
/** Trusted application ceilings. Builds may lower them; generators receive no engine. */
|
|
200
|
+
readonly limits?: Partial<ModelingLimits>;
|
|
95
201
|
}
|
|
202
|
+
|
|
203
|
+
/** URL of the package's pinned WASM asset; browser bundlers may replace it with their emitted URL. */
|
|
204
|
+
export declare const modelingWasmUrl: string;
|
|
205
|
+
|
|
96
206
|
/**
|
|
97
207
|
* A world-space manufacturing part plus its reusable local renderer resource.
|
|
98
208
|
* Top-level positions and indices already include transform; do not apply it again.
|
|
@@ -100,7 +210,7 @@ export interface GeometryResource extends ImmutableTriangleMesh {
|
|
|
100
210
|
*
|
|
101
211
|
* Buffer properties are stable immutable values. Use copy() explicitly for mutable storage.
|
|
102
212
|
*/
|
|
103
|
-
export interface ModelPart extends ImmutableTriangleMesh {
|
|
213
|
+
export declare interface ModelPart extends ImmutableTriangleMesh {
|
|
104
214
|
/** Stable semantic identity. */
|
|
105
215
|
readonly id: string;
|
|
106
216
|
/** Optional six-digit hexadecimal display color. */
|
|
@@ -112,8 +222,9 @@ export interface ModelPart extends ImmutableTriangleMesh {
|
|
|
112
222
|
/** Immutable rigid local-to-world row-major 4x4 matrix; translation uses millimetres. */
|
|
113
223
|
readonly transform: Transform3Data;
|
|
114
224
|
}
|
|
225
|
+
|
|
115
226
|
/** Durable immutable generation data, independent of session lifetime. */
|
|
116
|
-
export interface ModelResult {
|
|
227
|
+
export declare interface ModelResult {
|
|
117
228
|
/** Exact axis-aligned world bounds in millimetres. */
|
|
118
229
|
readonly bounds: Bounds3Data;
|
|
119
230
|
/** Aggregate manufacturing facts in millimetres and engine execution timings in milliseconds. */
|
|
@@ -144,31 +255,39 @@ export interface ModelResult {
|
|
|
144
255
|
/** Known dependency graph; outer reads remain conservative model-wide dependencies. */
|
|
145
256
|
readonly dependencies: ModelDependencies;
|
|
146
257
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
258
|
+
|
|
259
|
+
/** Fixed argument positions; infer parameters from the program, allow empty maps to be omitted, and require declared services. */
|
|
260
|
+
export declare type ModelRunArguments<
|
|
261
|
+
P extends object,
|
|
262
|
+
S,
|
|
263
|
+
Options extends ModelRunOptions<S> = ModelRunOptions<S>,
|
|
264
|
+
> = keyof S extends never
|
|
265
|
+
? Record<never, never> extends P
|
|
266
|
+
? [parameters?: NoInfer<Readonly<P>>, options?: Options]
|
|
267
|
+
: [parameters: NoInfer<Readonly<P>>, options?: Options]
|
|
268
|
+
: [
|
|
269
|
+
parameters:
|
|
270
|
+
| NoInfer<Readonly<P>>
|
|
271
|
+
| (Record<never, never> extends P ? undefined : never),
|
|
272
|
+
options: Options & {
|
|
273
|
+
/** Prepared synchronous capabilities required by this program. */
|
|
274
|
+
readonly services: S;
|
|
275
|
+
},
|
|
276
|
+
];
|
|
277
|
+
|
|
278
|
+
/** Generation policy and prepared synchronous capabilities for one host execution. */
|
|
279
|
+
export declare interface ModelRunOptions<
|
|
280
|
+
S = Record<never, never>,
|
|
281
|
+
> extends GenerationOptions {
|
|
282
|
+
/** Host-owned synchronous capabilities, required when declared by the program. The original
|
|
283
|
+
* environment is retained; its behavior and assets must remain deterministic and fixed for
|
|
284
|
+
* this session. Equivalent function wrappers do not constitute an asset revision.
|
|
285
|
+
*/
|
|
286
|
+
readonly services?: S;
|
|
169
287
|
}
|
|
288
|
+
|
|
170
289
|
/** Stateful execution owner; a failed revision cannot change previously returned results. */
|
|
171
|
-
export interface ModelSession<P extends object> {
|
|
290
|
+
export declare interface ModelSession<P extends object> {
|
|
172
291
|
/** Generates durable immutable data or throws; parameters are copied and frozen. Empty parameters may be omitted. */
|
|
173
292
|
run(
|
|
174
293
|
...args: Record<never, never> extends P
|
|
@@ -186,44 +305,21 @@ export interface ModelSession<P extends object> {
|
|
|
186
305
|
/** Releases session ownership; idempotent, returned results remain usable. */
|
|
187
306
|
dispose(): void;
|
|
188
307
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
308
|
+
|
|
309
|
+
declare const sectionBrand: unique symbol;
|
|
310
|
+
|
|
311
|
+
/** Fixed generation policy and reusable computation caches for one model session. */
|
|
312
|
+
export declare interface SessionOptions<
|
|
313
|
+
S = Record<never, never>,
|
|
314
|
+
> extends ModelRunOptions<S> {
|
|
315
|
+
/** Enables reuse; defaults to true. Set false for uncached output equivalence checks. */
|
|
316
|
+
readonly cache?: boolean;
|
|
317
|
+
/** Development-only cache-hit probe: reruns pure callbacks and compares bounded data/recipes.
|
|
318
|
+
* Unsupported closures or large results fail explicitly; this cannot prove arbitrary JavaScript.
|
|
319
|
+
*/
|
|
320
|
+
readonly verifyCache?: boolean;
|
|
195
321
|
}
|
|
196
322
|
|
|
197
|
-
|
|
198
|
-
/** URL of the package's pinned WASM asset; browser bundlers may replace it with their emitted URL. */
|
|
199
|
-
export declare const modelingWasmUrl: string;
|
|
323
|
+
declare const solidBrand: unique symbol;
|
|
200
324
|
|
|
201
|
-
|
|
202
|
-
* Runs declaration and immediate assertions without initializing a kernel or finalizing parts.
|
|
203
|
-
* Returns reached assertion errors and warnings; unexpected execution failures throw.
|
|
204
|
-
* Returned geometry is not realized or validated.
|
|
205
|
-
* Geometry observations require an initialized session's `check` method instead.
|
|
206
|
-
*/
|
|
207
|
-
export declare function checkModel<P extends object, S>(
|
|
208
|
-
program: ModelProgram<P, S>,
|
|
209
|
-
...args: ModelRunArguments<P, S, SessionOptions<S>>
|
|
210
|
-
): readonly GenerationDiagnostic[];
|
|
211
|
-
/**
|
|
212
|
-
* Initializes one host kernel and returns a lifecycle-safe engine. No generator initializes WASM.
|
|
213
|
-
*
|
|
214
|
-
* @example Build a box in a host application
|
|
215
|
-
* ```ts
|
|
216
|
-
* import { box, generate } from "@metamesh/modeling";
|
|
217
|
-
* import { createModelEngine } from "@metamesh/modeling/engine";
|
|
218
|
-
* import { export3mf } from "@metamesh/modeling/export";
|
|
219
|
-
*
|
|
220
|
-
* const engine = await createModelEngine();
|
|
221
|
-
* const model = generate<Record<never, never>>(({ part }) => [part("body", box({ size: [30, 20, 8] }))]);
|
|
222
|
-
* const result = engine.run(model);
|
|
223
|
-
* await export3mf(result.parts);
|
|
224
|
-
* ```
|
|
225
|
-
*/
|
|
226
|
-
export declare function createModelEngine(
|
|
227
|
-
options?: ModelEngineOptions,
|
|
228
|
-
): Promise<ModelEngine>;
|
|
229
|
-
export type { ModelingLimits };
|
|
325
|
+
export {};
|