@metamesh/modeling 0.17.0 → 0.19.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 +186 -0
- package/README.md +147 -157
- package/dist/api/engine.d.ts +106 -83
- package/dist/api/export-3mf.d.ts +2 -0
- package/dist/api/export-glb.d.ts +2 -0
- package/dist/api/export-stl.d.ts +2 -0
- package/dist/api/export.d.ts +160 -0
- package/dist/api/geometry.d.ts +250 -461
- package/dist/api/index.d.ts +470 -445
- package/dist/api/mesh.d.ts +489 -0
- package/dist/api/text.d.ts +1 -1
- package/dist/docs/guides/concepts.md +32 -495
- package/dist/docs/guides/fonts.md +14 -13
- package/dist/docs/guides/fundamentals.md +30 -29
- package/dist/docs/guides/generation.md +84 -64
- package/dist/docs/guides/geometry-values.md +193 -0
- package/dist/docs/guides/hosting.md +147 -48
- package/dist/docs/guides/profiles-and-extrusion.md +252 -0
- package/dist/docs/guides/recipes.md +33 -769
- package/dist/docs/guides/resolution-and-inspection.md +133 -0
- package/dist/docs/guides/solid-joins.md +126 -0
- package/dist/docs/guides/standalone-model.md +8 -7
- package/dist/docs/guides/svg-and-text.md +215 -0
- package/dist/docs/guides/sweeps-and-lofts.md +179 -0
- package/dist/docs/guides/transforms-and-placement.md +313 -0
- package/dist/docs/manifest.json +3224 -4430
- package/dist/docs/reference/engine/GenerationOptions.md +12 -5
- package/dist/docs/reference/engine/GeometryResource.md +19 -13
- package/dist/docs/reference/engine/ModelDependencies.md +9 -3
- package/dist/docs/reference/engine/ModelEngine.md +33 -24
- package/dist/docs/reference/engine/ModelEngineOptions.md +13 -2
- package/dist/docs/reference/engine/ModelPart.md +114 -0
- package/dist/docs/reference/engine/ModelResult.md +181 -0
- package/dist/docs/reference/engine/ModelRunArguments.md +34 -0
- package/dist/docs/reference/engine/ModelRunOptions.md +110 -0
- package/dist/docs/reference/engine/ModelSession.md +22 -16
- package/dist/docs/reference/engine/SessionOptions.md +21 -10
- package/dist/docs/reference/engine/categories/host-lifecycle.md +20 -15
- package/dist/docs/reference/engine/checkModel.md +49 -0
- package/dist/docs/reference/engine/createModelEngine.md +11 -13
- package/dist/docs/reference/engine/defaultModelingLimits.md +15 -2
- package/dist/docs/reference/engine/modelingWasmUrl.md +7 -1
- package/dist/docs/reference/engine.md +8 -15
- package/dist/docs/reference/export/Export3mfOptions.md +24 -0
- package/dist/docs/reference/export/ExportDiagnostic.md +59 -0
- package/dist/docs/reference/export/ExportFormat.md +25 -0
- package/dist/docs/reference/export/ExportGeometry.md +39 -0
- package/dist/docs/reference/export/ExportGlbOptions.md +118 -0
- package/dist/docs/reference/export/ExportLimits.md +83 -0
- package/dist/docs/reference/export/ExportMaterial.md +47 -0
- package/dist/docs/reference/export/ExportOptions.md +94 -0
- package/dist/docs/reference/export/ExportPart.md +88 -0
- package/dist/docs/reference/export/ExportReport.md +82 -0
- package/dist/docs/reference/export/ExportSink.md +39 -0
- package/dist/docs/reference/export/ExportStlOptions.md +24 -0
- package/dist/docs/reference/export/ExportedFile.md +110 -0
- package/dist/docs/reference/export/categories/mesh-serialization.md +47 -0
- package/dist/docs/reference/export/defaultExportLimits.md +20 -0
- package/dist/docs/reference/export/export3mf.md +64 -0
- package/dist/docs/reference/export/exportGlb.md +68 -0
- package/dist/docs/reference/export/exportStl.md +64 -0
- package/dist/docs/reference/export/write3mf.md +71 -0
- package/dist/docs/reference/export/writeGlb.md +75 -0
- package/dist/docs/reference/export/writeStl.md +71 -0
- package/dist/docs/reference/export.md +21 -0
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +16 -2
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +7 -1
- package/dist/docs/reference/geometry/Anchor3-type.md +13 -3
- package/dist/docs/reference/geometry/ArcCurve2.md +8 -2
- package/dist/docs/reference/geometry/ArcCurve3.md +8 -2
- package/dist/docs/reference/geometry/AttachOptions.md +13 -3
- package/dist/docs/reference/geometry/AxisAngleRotation3.md +9 -3
- package/dist/docs/reference/geometry/Bevel.md +32 -0
- package/dist/docs/reference/geometry/BevelSize.md +28 -0
- package/dist/docs/reference/geometry/Bounds2-type.md +18 -4
- package/dist/docs/reference/geometry/Bounds2Data.md +22 -4
- package/dist/docs/reference/geometry/Bounds2Input.md +18 -4
- package/dist/docs/reference/geometry/Bounds2Options.md +61 -11
- package/dist/docs/reference/geometry/Bounds3-type.md +18 -4
- package/dist/docs/reference/geometry/Bounds3Data.md +18 -4
- package/dist/docs/reference/geometry/Bounds3Input.md +18 -4
- package/dist/docs/reference/geometry/Bounds3Options.md +61 -11
- package/dist/docs/reference/geometry/BoundsFit2.md +10 -4
- package/dist/docs/reference/geometry/BoundsFit3.md +10 -4
- package/dist/docs/reference/geometry/BoundsFitOptions.md +10 -4
- package/dist/docs/reference/geometry/BoxAnchorFace.md +9 -3
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +12 -6
- package/dist/docs/reference/geometry/BoxEdge.md +11 -1
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +11 -1
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +11 -1
- package/dist/docs/reference/geometry/BoxOptions.md +13 -3
- package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +16 -2
- package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +16 -2
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +11 -1
- package/dist/docs/reference/geometry/CircleContourOptions.md +12 -2
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +15 -3
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -1
- package/dist/docs/reference/geometry/CircularSampling.md +7 -1
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +7 -1
- package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +8 -2
- package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -2
- package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +8 -2
- package/dist/docs/reference/geometry/Contour.md +12 -2
- package/dist/docs/reference/geometry/ContourCurve.md +8 -2
- package/dist/docs/reference/geometry/ContourPoint.md +8 -2
- package/dist/docs/reference/geometry/ContourSegment.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingComponent.md +12 -2
- package/dist/docs/reference/geometry/CorrespondingContour.md +12 -2
- package/dist/docs/reference/geometry/CorrespondingProfile.md +12 -2
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +12 -2
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +8 -2
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +8 -2
- package/dist/docs/reference/geometry/Curve2.md +8 -2
- package/dist/docs/reference/geometry/Curve3.md +8 -2
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +16 -2
- package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +16 -2
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +9 -3
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +11 -5
- package/dist/docs/reference/geometry/CylinderOptions.md +11 -1
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +8 -2
- package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -2
- package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +8 -2
- package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +8 -2
- package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +8 -2
- package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +8 -2
- package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +8 -2
- package/dist/docs/reference/geometry/CylindricalGearSpec.md +8 -2
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +11 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +14 -4
- package/dist/docs/reference/geometry/EndTreatments.md +12 -2
- package/dist/docs/reference/{model/ExtrudeOptions.md → geometry/ExtrudeMeshOptions.md} +30 -26
- package/dist/docs/reference/geometry/ExtrudeOptions.md +29 -11
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +18 -4
- package/dist/docs/reference/geometry/FittedTextLayout.md +8 -2
- package/dist/docs/reference/geometry/Frame3.md +16 -2
- package/dist/docs/reference/geometry/GeometryError.md +11 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +11 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +11 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +15 -1
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +16 -2
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +15 -1
- package/dist/docs/reference/geometry/GridPatternOptions.md +12 -2
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +12 -2
- package/dist/docs/reference/geometry/HeightfieldOptions.md +18 -3
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +12 -2
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +9 -3
- package/dist/docs/reference/geometry/ImmutableBuffer-type.md +110 -0
- package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +57 -0
- package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +63 -84
- package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +12 -2
- package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +8 -2
- package/dist/docs/reference/geometry/KnuckleHingeInterval.md +8 -2
- package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +12 -2
- package/dist/docs/reference/geometry/KnuckleHingeSpec.md +12 -2
- package/dist/docs/reference/geometry/LineCurve2.md +8 -2
- package/dist/docs/reference/geometry/LineCurve3.md +8 -2
- package/dist/docs/reference/geometry/LinearPatternOptions.md +12 -2
- package/dist/docs/reference/geometry/LoftCorrespondence.md +16 -2
- package/dist/docs/reference/geometry/LoftMeshStation.md +12 -2
- package/dist/docs/reference/geometry/LoftOptions.md +18 -4
- package/dist/docs/reference/geometry/LoftPlacement.md +16 -2
- package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +8 -2
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +12 -2
- package/dist/docs/reference/geometry/MetricFastenerSize.md +8 -2
- package/dist/docs/reference/geometry/MetricFastenerStandard.md +8 -2
- package/dist/docs/reference/geometry/MetricHexNutDimensions.md +8 -2
- package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +8 -2
- package/dist/docs/reference/geometry/ModelingLimits.md +19 -1
- package/dist/docs/reference/geometry/NumericArray.md +28 -0
- package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +8 -2
- package/dist/docs/reference/geometry/Path2-type.md +16 -2
- package/dist/docs/reference/geometry/Path2Data.md +16 -2
- package/dist/docs/reference/geometry/Path2Input.md +16 -2
- package/dist/docs/reference/geometry/Path3-type.md +16 -2
- package/dist/docs/reference/geometry/Path3Data.md +16 -2
- package/dist/docs/reference/geometry/Path3Input.md +16 -2
- package/dist/docs/reference/geometry/PathFrame.md +8 -2
- package/dist/docs/reference/geometry/PathLocation.md +16 -2
- package/dist/docs/reference/geometry/PathNormalGuide.md +16 -2
- package/dist/docs/reference/geometry/PathOptions.md +12 -2
- package/dist/docs/reference/geometry/PathPatternOptions.md +12 -2
- package/dist/docs/reference/geometry/PathPlacement.md +8 -2
- package/dist/docs/reference/geometry/PathResamplingOptions.md +16 -2
- package/dist/docs/reference/geometry/Pivot2Options.md +17 -3
- package/dist/docs/reference/geometry/Pivot3Options.md +17 -3
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +12 -2
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +12 -2
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +12 -2
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +12 -2
- package/dist/docs/reference/geometry/PolygonData.md +12 -2
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -2
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +11 -3
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +11 -1
- package/dist/docs/reference/geometry/PrintableThreadFit.md +12 -2
- package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +12 -2
- package/dist/docs/reference/geometry/Profile.md +8 -2
- package/dist/docs/reference/geometry/ProfileComponent2.md +12 -2
- package/dist/docs/reference/geometry/ProfileContour2.md +12 -2
- package/dist/docs/reference/geometry/ProfileSpan2.md +12 -2
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +11 -1
- package/dist/docs/reference/geometry/RackPitchDimensions.md +8 -2
- package/dist/docs/reference/geometry/RackPitchSpec.md +8 -2
- package/dist/docs/reference/geometry/RadialPatternOptions.md +12 -2
- package/dist/docs/reference/geometry/RadialSizing.md +11 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +11 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +14 -4
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +12 -2
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +12 -2
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +10 -4
- package/dist/docs/reference/geometry/RegionData.md +12 -2
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +8 -2
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +7 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +17 -3
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +11 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +10 -4
- package/dist/docs/reference/geometry/SampleContourOptions.md +8 -2
- package/dist/docs/reference/geometry/SampleHelixOptions.md +8 -2
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +8 -2
- package/dist/docs/reference/geometry/SampledCurve2.md +8 -2
- package/dist/docs/reference/geometry/SampledCurve3.md +8 -2
- package/dist/docs/reference/geometry/SampledThreadHelices.md +8 -2
- package/dist/docs/reference/geometry/SideProfileCurve.md +8 -2
- package/dist/docs/reference/geometry/SideProfilePoint.md +8 -2
- package/dist/docs/reference/geometry/SideProfileSegment.md +8 -2
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +11 -1
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +12 -2
- package/dist/docs/reference/geometry/SphereOptions.md +11 -1
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +16 -2
- package/dist/docs/reference/geometry/StarContourOptions.md +84 -0
- package/dist/docs/reference/geometry/StrokeCap.md +12 -2
- package/dist/docs/reference/geometry/StrokeJoin.md +12 -2
- package/dist/docs/reference/geometry/StrokeOptions.md +12 -2
- package/dist/docs/reference/geometry/SvgImportOptions.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +8 -2
- package/dist/docs/reference/geometry/SweepOptions.md +16 -2
- package/dist/docs/reference/geometry/SweepOrientation.md +16 -2
- package/dist/docs/reference/geometry/ThreadBevelOptions.md +18 -31
- package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +8 -2
- package/dist/docs/reference/geometry/ThreadCompensationOptions.md +8 -2
- package/dist/docs/reference/geometry/ThreadEndStyle.md +16 -2
- package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +16 -2
- package/dist/docs/reference/geometry/ThreadHandedness.md +16 -2
- package/dist/docs/reference/geometry/ThreadHelixOptions.md +8 -2
- package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +16 -2
- package/dist/docs/reference/geometry/ThreadLeadInShape.md +16 -2
- package/dist/docs/reference/geometry/ThreadProfile-type.md +17 -3
- package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +16 -2
- package/dist/docs/reference/geometry/ThreadProfileSpec.md +16 -2
- package/dist/docs/reference/geometry/{HelicalThreadRidgeMeshOptions.md → ThreadRidgeOptions.md} +19 -5
- package/dist/docs/reference/geometry/ThreadRole.md +8 -2
- package/dist/docs/reference/geometry/{HelicalThreadSolidMeshOptions.md → ThreadSolidOptions.md} +29 -66
- package/dist/docs/reference/geometry/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +17 -3
- package/dist/docs/reference/geometry/ThreadedNutOptions.md +86 -87
- package/dist/docs/reference/geometry/ThreadedNutPreflight.md +29 -7
- package/dist/docs/reference/geometry/ThreadedNutShape.md +12 -2
- package/dist/docs/reference/geometry/ThreadedRodOptions.md +63 -84
- package/dist/docs/reference/geometry/TorusOptions.md +11 -1
- package/dist/docs/reference/geometry/Transform2-type.md +17 -3
- package/dist/docs/reference/geometry/Transform2Data.md +17 -3
- package/dist/docs/reference/geometry/Transform2Input.md +17 -3
- package/dist/docs/reference/geometry/Transform3-type.md +17 -3
- package/dist/docs/reference/geometry/Transform3Data.md +17 -3
- package/dist/docs/reference/geometry/Transform3Input.md +17 -3
- package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +16 -2
- package/dist/docs/reference/geometry/TriangleMesh.md +19 -6
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +25 -5
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +13 -3
- package/dist/docs/reference/geometry/TriangleMeshInput.md +29 -0
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +16 -2
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +12 -2
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +12 -2
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +14 -4
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +12 -2
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +12 -2
- package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +145 -0
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +12 -2
- package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +16 -2
- package/dist/docs/reference/geometry/TubeOptions.md +20 -86
- package/dist/docs/reference/geometry/Vector2-type.md +17 -3
- package/dist/docs/reference/geometry/Vector2Data.md +21 -3
- package/dist/docs/reference/geometry/Vector2Input.md +17 -3
- package/dist/docs/reference/geometry/Vector3-type.md +17 -3
- package/dist/docs/reference/geometry/Vector3Data.md +17 -3
- package/dist/docs/reference/geometry/Vector3Input.md +17 -3
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +12 -2
- package/dist/docs/reference/geometry/VectorTextLayout.md +16 -2
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +14 -4
- package/dist/docs/reference/geometry/VectorTextMetrics.md +16 -2
- package/dist/docs/reference/geometry/VectorTextOptions.md +12 -2
- package/dist/docs/reference/geometry/add2.md +9 -3
- package/dist/docs/reference/geometry/add3.md +9 -3
- package/dist/docs/reference/geometry/anchor3.md +9 -3
- package/dist/docs/reference/geometry/anchorFrame3.md +8 -2
- package/dist/docs/reference/geometry/applyTransformDirection3.md +9 -3
- package/dist/docs/reference/geometry/applyTransformPoint3.md +9 -3
- package/dist/docs/reference/geometry/attachmentTransform3.md +9 -3
- package/dist/docs/reference/geometry/bounds2.md +18 -8
- package/dist/docs/reference/geometry/bounds3.md +18 -8
- package/dist/docs/reference/geometry/boundsCenter.md +10 -4
- package/dist/docs/reference/geometry/boundsSize.md +10 -4
- package/dist/docs/reference/geometry/boxAnchor3.md +11 -5
- package/dist/docs/reference/geometry/categories/bounds-layout.md +6 -6
- package/dist/docs/reference/geometry/categories/curves-paths.md +3 -3
- package/dist/docs/reference/geometry/categories/mechanical.md +9 -11
- package/dist/docs/reference/geometry/categories/meshes.md +20 -33
- package/dist/docs/reference/geometry/categories/pattern-placement.md +3 -3
- package/dist/docs/reference/geometry/categories/primitive-options.md +4 -4
- package/dist/docs/reference/geometry/categories/profiles-regions.md +6 -5
- package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -3
- package/dist/docs/reference/geometry/categories/transforms-math.md +5 -4
- package/dist/docs/reference/geometry/categories/vector-import.md +4 -4
- package/dist/docs/reference/geometry/circleContour.md +8 -2
- package/dist/docs/reference/geometry/closeToAxis.md +8 -2
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +8 -2
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +8 -2
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +8 -2
- package/dist/docs/reference/geometry/composeTransform3.md +9 -3
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +8 -2
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +8 -2
- package/dist/docs/reference/geometry/contourContainsPoint.md +8 -2
- package/dist/docs/reference/geometry/cross2.md +9 -3
- package/dist/docs/reference/geometry/cross3.md +9 -3
- package/dist/docs/reference/geometry/cylinderAnchor3.md +10 -4
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +8 -2
- package/dist/docs/reference/geometry/distance2.md +9 -3
- package/dist/docs/reference/geometry/distance3.md +9 -3
- package/dist/docs/reference/geometry/distributeAlongPath.md +8 -2
- package/dist/docs/reference/geometry/dot2.md +9 -3
- package/dist/docs/reference/geometry/dot3.md +9 -3
- package/dist/docs/reference/geometry/ellipseContour.md +8 -2
- package/dist/docs/reference/geometry/eulerTransform3.md +9 -3
- package/dist/docs/reference/geometry/fitBounds.md +10 -4
- package/dist/docs/reference/geometry/fitTextLayout.md +8 -2
- package/dist/docs/reference/geometry/frameTransform3.md +9 -3
- package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +8 -2
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +8 -2
- package/dist/docs/reference/geometry/gridPatternTransforms.md +8 -2
- package/dist/docs/reference/{model → geometry}/immutableBuffer.md +13 -2
- package/dist/docs/reference/geometry/inverseTransform3.md +9 -3
- package/dist/docs/reference/geometry/isGeometryError.md +11 -1
- package/dist/docs/reference/geometry/layoutRow.md +10 -4
- package/dist/docs/reference/geometry/length2.md +9 -3
- package/dist/docs/reference/geometry/length3.md +9 -3
- package/dist/docs/reference/geometry/lerp2.md +9 -3
- package/dist/docs/reference/geometry/lerp3.md +9 -3
- package/dist/docs/reference/geometry/linearPatternTransforms.md +8 -2
- package/dist/docs/reference/geometry/matchProfiles.md +8 -2
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +8 -2
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +8 -2
- package/dist/docs/reference/geometry/normalize2.md +9 -3
- package/dist/docs/reference/geometry/normalize3.md +9 -3
- package/dist/docs/reference/geometry/normalizeContour.md +8 -2
- package/dist/docs/reference/geometry/normalizePolygon.md +8 -2
- package/dist/docs/reference/geometry/normalizeRegion.md +8 -2
- package/dist/docs/reference/geometry/path2.md +12 -2
- package/dist/docs/reference/geometry/path3.md +12 -2
- package/dist/docs/reference/geometry/pathPatternTransforms.md +8 -2
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +25 -26
- package/dist/docs/reference/geometry/preflightSvgRegion.md +8 -2
- package/dist/docs/reference/geometry/preflightThreadedNut.md +31 -27
- package/dist/docs/reference/geometry/preflightThreadedRod.md +25 -26
- package/dist/docs/reference/geometry/projectOntoPlane3.md +9 -3
- package/dist/docs/reference/geometry/radialPatternTransforms.md +8 -2
- package/dist/docs/reference/geometry/rectangleContour.md +17 -6
- package/dist/docs/reference/geometry/rectangleProfile.md +9 -3
- package/dist/docs/reference/geometry/regionArea.md +8 -2
- package/dist/docs/reference/geometry/regionBounds.md +8 -2
- package/dist/docs/reference/geometry/regularPolygonContour.md +9 -3
- package/dist/docs/reference/geometry/resamplePolyline2.md +8 -2
- package/dist/docs/reference/geometry/resamplePolyline3.md +8 -2
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +7 -1
- package/dist/docs/reference/geometry/resolveArcSegments.md +7 -1
- package/dist/docs/reference/geometry/resolveCircularSampling.md +7 -1
- package/dist/docs/reference/geometry/resolveCircularSegments.md +7 -1
- package/dist/docs/reference/geometry/resolveCylindricalGear.md +8 -2
- package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +8 -2
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +8 -2
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +8 -2
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +7 -1
- package/dist/docs/reference/geometry/resolveKnuckleHinge.md +8 -2
- package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +8 -2
- package/dist/docs/reference/geometry/resolveRackPitch.md +8 -2
- package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +8 -2
- package/dist/docs/reference/geometry/rotate2.md +9 -3
- package/dist/docs/reference/geometry/rotationTransform3.md +9 -3
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -2
- package/dist/docs/reference/geometry/sampleContour.md +8 -2
- package/dist/docs/reference/geometry/sampleCurve2.md +8 -2
- package/dist/docs/reference/geometry/sampleCurve3.md +8 -2
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +8 -2
- package/dist/docs/reference/geometry/sampleHelix.md +8 -2
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +8 -2
- package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -2
- package/dist/docs/reference/geometry/sampleSideProfile.md +8 -2
- package/dist/docs/reference/geometry/sampleTextContours.md +8 -2
- package/dist/docs/reference/geometry/sampleThreadHelices.md +8 -2
- package/dist/docs/reference/geometry/scale2.md +9 -3
- package/dist/docs/reference/geometry/scale3.md +9 -3
- package/dist/docs/reference/geometry/scaleTransform3.md +9 -3
- package/dist/docs/reference/geometry/signedContourArea.md +8 -2
- package/dist/docs/reference/geometry/starContour.md +24 -16
- package/dist/docs/reference/geometry/strokeRegionData.md +8 -2
- package/dist/docs/reference/geometry/subtract2.md +9 -3
- package/dist/docs/reference/geometry/subtract3.md +9 -3
- package/dist/docs/reference/geometry/threadProfile.md +8 -2
- package/dist/docs/reference/geometry/transform2.md +13 -3
- package/dist/docs/reference/geometry/transform3.md +13 -3
- package/dist/docs/reference/geometry/transformDeterminant3.md +9 -3
- package/dist/docs/reference/geometry/transformRegionData.md +8 -2
- package/dist/docs/reference/geometry/translationTransform3.md +9 -3
- package/dist/docs/reference/geometry/triangulateContour.md +8 -2
- package/dist/docs/reference/geometry/validateRigidTransform3.md +41 -0
- package/dist/docs/reference/geometry/validateTransform3.md +9 -3
- package/dist/docs/reference/geometry/vector2.md +13 -3
- package/dist/docs/reference/geometry/vector3.md +13 -3
- package/dist/docs/reference/geometry.md +10 -10
- package/dist/docs/reference/mesh/MeshRenderOptions.md +28 -0
- package/dist/docs/reference/mesh/RenderMesh.md +68 -0
- package/dist/docs/reference/mesh/analyze.md +102 -0
- package/dist/docs/reference/mesh/analyzeQuality.md +62 -0
- package/dist/docs/reference/mesh/bounds.md +45 -0
- package/dist/docs/reference/mesh/categories/operations.md +57 -0
- package/dist/docs/reference/mesh/centroid.md +45 -0
- package/dist/docs/reference/mesh/extrude.md +79 -0
- package/dist/docs/reference/mesh/heightfield.md +57 -0
- package/dist/docs/reference/mesh/immutable.md +51 -0
- package/dist/docs/reference/mesh/join.md +47 -0
- package/dist/docs/reference/mesh/loft.md +83 -0
- package/dist/docs/reference/mesh/optimizePlanarPatches.md +102 -0
- package/dist/docs/reference/mesh/preflightHeightfield.md +48 -0
- package/dist/docs/reference/mesh/preflightThreadSolid.md +96 -0
- package/dist/docs/reference/mesh/render.md +57 -0
- package/dist/docs/reference/mesh/reverse.md +41 -0
- package/dist/docs/reference/{geometry/revolveMesh.md → mesh/revolve.md} +23 -17
- package/dist/docs/reference/mesh/signature.md +70 -0
- package/dist/docs/reference/mesh/sweep.md +92 -0
- package/dist/docs/reference/mesh/threadRidge.md +78 -0
- package/dist/docs/reference/mesh/threadSolid.md +96 -0
- package/dist/docs/reference/mesh/transform.md +53 -0
- package/dist/docs/reference/mesh/validate.md +75 -0
- package/dist/docs/reference/{geometry/validateSolidMesh.md → mesh/validateSolid.md} +23 -11
- package/dist/docs/reference/mesh.md +21 -0
- package/dist/docs/reference/model/CircleOptions.md +13 -7
- package/dist/docs/reference/model/DiagnosticOptions.md +21 -1
- package/dist/docs/reference/model/EllipseOptions.md +13 -7
- package/dist/docs/reference/model/GenerateCallback.md +11 -5
- package/dist/docs/reference/model/GenerateContext.md +26 -99
- package/dist/docs/reference/model/GenerationDiagnostic.md +19 -1
- package/dist/docs/reference/model/GenerationError.md +8 -2
- package/dist/docs/reference/model/HoleCutterOptions.md +17 -10
- package/dist/docs/reference/model/HoleCutterOverrun.md +10 -3
- package/dist/docs/reference/model/HoleCutterRecess.md +10 -3
- package/dist/docs/reference/model/HullOptions.md +13 -6
- package/dist/docs/reference/model/ImmutableValue.md +26 -0
- package/dist/docs/reference/model/ImplicitOptions.md +12 -6
- package/dist/docs/reference/model/JoinOptions.md +76 -0
- package/dist/docs/reference/model/JoinTransition.md +54 -0
- package/dist/docs/reference/model/KnuckleHinge-type.md +9 -3
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +7 -1
- package/dist/docs/reference/model/KnuckleHingeOptions.md +10 -4
- package/dist/docs/reference/model/KnuckleHingeWeb.md +7 -1
- package/dist/docs/reference/model/LoftStation.md +16 -9
- package/dist/docs/reference/model/Memo.md +54 -0
- package/dist/docs/reference/model/ModelProgram.md +8 -2
- package/dist/docs/reference/model/PartDeclaration.md +87 -0
- package/dist/docs/reference/model/PartGeometry.md +10 -4
- package/dist/docs/reference/model/PartOptions.md +16 -22
- package/dist/docs/reference/model/PatternSource.md +10 -4
- package/dist/docs/reference/model/PlaneOptions.md +11 -4
- package/dist/docs/reference/model/PolygonOptions.md +20 -14
- package/dist/docs/reference/model/Profile.md +10 -4
- package/dist/docs/reference/model/RectangleOptions.md +28 -22
- package/dist/docs/reference/model/RegularPolygonOptions.md +13 -7
- package/dist/docs/reference/model/Section.md +196 -77
- package/dist/docs/reference/model/SectionHullOptions.md +13 -6
- package/dist/docs/reference/model/SectionInspection.md +12 -18
- package/dist/docs/reference/model/SectionOffsetJoin.md +10 -4
- package/dist/docs/reference/model/SectionOffsetOptions.md +12 -6
- package/dist/docs/reference/model/Solid.md +339 -54
- package/dist/docs/reference/model/SolidInspection.md +12 -18
- package/dist/docs/reference/model/SolidSegmentHit.md +14 -4
- package/dist/docs/reference/model/StarOptions.md +53 -25
- package/dist/docs/reference/model/SvgOrigin.md +10 -4
- package/dist/docs/reference/model/SvgPathSectionOptions.md +14 -8
- package/dist/docs/reference/model/SvgSectionOptions.md +16 -10
- package/dist/docs/reference/model/TextSectionOptions.md +14 -8
- package/dist/docs/reference/model/box.md +18 -11
- package/dist/docs/reference/model/categories/boolean-operations.md +13 -11
- package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -7
- package/dist/docs/reference/model/categories/explicit-profiles.md +1 -14
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +11 -23
- package/dist/docs/reference/model/categories/generation.md +10 -15
- package/dist/docs/reference/model/categories/hinges.md +1 -4
- package/dist/docs/reference/model/categories/mesh-inspection.md +14 -9
- package/dist/docs/reference/model/categories/primitives.md +8 -24
- package/dist/docs/reference/model/categories/sections.md +6 -16
- package/dist/docs/reference/model/categories/threads.md +3 -30
- package/dist/docs/reference/model/categories/transforms-placement.md +5 -35
- package/dist/docs/reference/model/circle.md +10 -4
- package/dist/docs/reference/model/cylinder.md +13 -6
- package/dist/docs/reference/model/ellipse.md +10 -4
- package/dist/docs/reference/model/extrude.md +28 -20
- package/dist/docs/reference/model/generate.md +10 -4
- package/dist/docs/reference/model/gridPattern.md +15 -9
- package/dist/docs/reference/model/heightfield.md +10 -4
- package/dist/docs/reference/model/holeCutter.md +21 -4
- package/dist/docs/reference/model/hull.md +9 -2
- package/dist/docs/reference/model/implicit.md +9 -3
- package/dist/docs/reference/model/internalThreadCutter.md +31 -33
- package/dist/docs/reference/model/intersect.md +11 -4
- package/dist/docs/reference/model/join.md +89 -0
- package/dist/docs/reference/model/knuckleHinge.md +8 -2
- package/dist/docs/reference/model/linearPattern.md +15 -9
- package/dist/docs/reference/model/loft.md +36 -28
- package/dist/docs/reference/model/matchProfiles.md +14 -8
- package/dist/docs/reference/model/minkowskiSum.md +9 -2
- package/dist/docs/reference/model/pathPattern.md +25 -19
- package/dist/docs/reference/model/polygon.md +13 -7
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +33 -35
- package/dist/docs/reference/model/preflightThreadedNut.md +43 -40
- package/dist/docs/reference/model/preflightThreadedRod.md +33 -35
- package/dist/docs/reference/model/radialPattern.md +15 -9
- package/dist/docs/reference/model/rectangle.md +14 -8
- package/dist/docs/reference/model/regularPolygon.md +10 -4
- package/dist/docs/reference/model/revolve.md +25 -17
- package/dist/docs/reference/model/solidFromMesh.md +16 -9
- package/dist/docs/reference/model/sphere.md +13 -6
- package/dist/docs/reference/model/star.md +17 -11
- package/dist/docs/reference/model/stroke.md +21 -15
- package/dist/docs/reference/model/svgPathSection.md +12 -6
- package/dist/docs/reference/model/svgSection.md +13 -7
- package/dist/docs/reference/model/sweep.md +29 -21
- package/dist/docs/reference/model/textSection.md +15 -9
- package/dist/docs/reference/model/threadRidge.md +21 -15
- package/dist/docs/reference/model/threadedNut.md +41 -38
- package/dist/docs/reference/model/threadedRod.md +31 -33
- package/dist/docs/reference/model/torus.md +20 -13
- package/dist/docs/reference/model/tube.md +13 -41
- package/dist/docs/reference/model/union.md +11 -4
- package/dist/docs/reference/model.md +11 -20
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +8 -2
- package/dist/docs/reference/text/VectorFont.md +39 -33
- package/dist/docs/reference/text/VectorFontOptions.md +7 -1
- package/dist/docs/reference/text/categories/font-preparation.md +3 -15
- package/dist/docs/reference/text/prepareVectorFont.md +7 -1
- package/dist/docs/reference/text.md +4 -4
- package/dist/engine/execution.js +10 -6
- package/dist/engine/finalization.js +2 -74
- package/dist/engine/index.js +24 -30
- package/dist/engine/model-parts.js +8 -0
- package/dist/engine/model-summary.js +5 -5
- package/dist/engine/native/construction-mesh.js +41 -0
- package/dist/engine/native/index.js +1 -1
- package/dist/engine/native/material-components.js +5 -54
- package/dist/engine/native/mesh-observation.js +55 -0
- package/dist/engine/native/operations.js +0 -7
- package/dist/engine/native/regions.js +2 -1
- package/dist/engine/native/scoped-primitives.js +5 -4
- package/dist/engine/native/threads.js +14 -14
- package/dist/engine/{construction-operations.js → operations/construction.js} +25 -23
- package/dist/engine/{modeling-context.js → operations/context.js} +12 -10
- package/dist/engine/{operation-environment.js → operations/environment.js} +2 -2
- package/dist/engine/{extrusion-finishing.js → operations/extrusion-finishing.js} +23 -22
- package/dist/engine/{hole-cutter-operation.js → operations/hole-cutter.js} +3 -3
- package/dist/engine/{inspection-operations.js → operations/inspection.js} +6 -6
- package/dist/engine/operations/join-collar-profile.js +120 -0
- package/dist/engine/operations/join.js +508 -0
- package/dist/engine/{knuckle-hinge-operation.js → operations/knuckle-hinge.js} +4 -4
- package/dist/engine/{loft-operations.js → operations/loft.js} +13 -12
- package/dist/engine/{mechanical-operations.js → operations/mechanical.js} +2 -2
- package/dist/engine/{pattern-operations.js → operations/patterns.js} +4 -4
- package/dist/engine/{primitive-anchors.js → operations/primitives/anchors.js} +9 -4
- package/dist/engine/{primitive-operations.js → operations/primitives/construction.js} +18 -19
- package/dist/engine/{primitive-correspondence.js → operations/primitives/correspondence.js} +4 -4
- package/dist/engine/{profile-mesh.js → operations/primitives/profile-mesh.js} +12 -12
- package/dist/engine/{primitive-profiles.js → operations/primitives/profiles.js} +7 -7
- package/dist/engine/{section-operations.js → operations/sections.js} +8 -8
- package/dist/engine/{transform-operations.js → operations/transforms.js} +8 -8
- package/dist/engine/placement.js +3 -4
- package/dist/engine/recipe-realization.js +2 -2
- package/dist/engine/{deferred-context.js → session/deferred-context.js} +4 -4
- package/dist/engine/session/dependencies.js +93 -0
- package/dist/engine/session/graph.js +428 -0
- package/dist/engine/{session-native.js → session/native-cache.js} +2 -2
- package/dist/engine/{session.js → session/session.js} +20 -14
- package/dist/engine/{session-snapshot.js → session/snapshot-cache.js} +30 -60
- package/dist/export/3mf.js +190 -0
- package/dist/export/capture.js +178 -0
- package/dist/export/glb.js +209 -0
- package/dist/export/index.js +5 -0
- package/dist/export/limits.js +18 -0
- package/dist/export/stl.js +105 -0
- package/dist/export/types.js +1 -0
- package/dist/export/writer.js +54 -0
- package/dist/geometry/anchors.js +4 -11
- package/dist/geometry/bounds-value.js +22 -12
- package/dist/geometry/heightfield.js +10 -12
- package/dist/{model → geometry}/immutable-buffer.js +31 -12
- package/dist/geometry/index.js +16 -22
- package/dist/geometry/join-geometry.js +839 -0
- package/dist/geometry/loft/loft.js +11 -6
- package/dist/geometry/mechanical/index.js +5 -5
- package/dist/geometry/mechanical/threads/bevel.js +24 -0
- package/dist/geometry/mechanical/{threads.js → threads/fit.js} +4 -4
- package/dist/geometry/mechanical/{thread-helices.js → threads/helices.js} +3 -3
- package/dist/geometry/mechanical/{thread-mesh-plan.js → threads/mesh-plan.js} +38 -53
- package/dist/geometry/mechanical/{thread-mesh.js → threads/mesh.js} +9 -9
- package/dist/geometry/mechanical/{thread-profiles.js → threads/profiles.js} +3 -3
- package/dist/geometry/mechanical/{thread-solids.js → threads/solids.js} +58 -89
- package/dist/geometry/mechanical/{thread-surface.js → threads/surface.js} +7 -8
- package/dist/geometry/mesh/mesh-centroid.js +3 -2
- package/dist/geometry/mesh/mesh-planar.js +27 -8
- package/dist/geometry/mesh/mesh-quality.js +2 -1
- package/dist/geometry/mesh/mesh-render.js +205 -0
- package/dist/geometry/mesh/mesh-signature.js +7 -6
- package/dist/geometry/mesh/mesh-solid-intersections.js +43 -17
- package/dist/geometry/mesh/mesh-solid.js +8 -5
- package/dist/geometry/mesh/mesh-types.js +1 -0
- package/dist/geometry/mesh/mesh.js +13 -22
- package/dist/geometry/mesh-api.js +15 -0
- package/dist/geometry/primitive-resolvers.js +42 -14
- package/dist/geometry/profiles/primitives/circle.js +19 -0
- package/dist/geometry/profiles/{shapes.js → primitives/ellipse.js} +6 -10
- package/dist/geometry/profiles/{rectangle.js → primitives/rectangle.js} +14 -12
- package/dist/geometry/profiles/primitives/regular-polygon.js +33 -0
- package/dist/geometry/profiles/primitives/star.js +28 -0
- package/dist/geometry/region-offset.js +278 -0
- package/dist/geometry/regions.js +11 -1
- package/dist/geometry/revolve/revolve-mesh.js +1 -1
- package/dist/geometry/{svg-import.js → svg/import.js} +10 -10
- package/dist/geometry/sweeps/sweep-mesh.js +1 -1
- package/dist/geometry/transform3.js +29 -0
- package/dist/index.js +2 -1
- package/dist/model/diagnostic-path.js +26 -0
- package/dist/model/execution-binding.js +3 -3
- package/dist/model/generation.js +9 -3
- package/dist/model/geometry-recipes.js +1 -1
- package/dist/model/immutable-generation-data.js +45 -14
- package/dist/model/join.js +1 -0
- package/dist/model/operations.js +34 -144
- package/dist/model/recipe-declaration.js +7 -2
- package/dist/model/shape-handles.js +31 -7
- package/dist/text/index.js +1 -1
- package/package.json +38 -11
- package/dist/docs/reference/engine/Export3mfOptions.md +0 -29
- package/dist/docs/reference/engine/ExportMeshPart.md +0 -65
- package/dist/docs/reference/engine/ModelSnapshot.md +0 -184
- package/dist/docs/reference/engine/SnapshotPart.md +0 -133
- package/dist/docs/reference/engine/validateModel.md +0 -48
- package/dist/docs/reference/geometry/ThreadedNutBevel.md +0 -14
- package/dist/docs/reference/geometry/analyzeTriangleMesh.md +0 -61
- package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +0 -56
- package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +0 -39
- package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +0 -64
- package/dist/docs/reference/geometry/extrudeMesh.md +0 -77
- package/dist/docs/reference/geometry/heightfieldMesh.md +0 -52
- package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +0 -72
- package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +0 -106
- package/dist/docs/reference/geometry/joinTriangleMeshes.md +0 -40
- package/dist/docs/reference/geometry/loftMesh.md +0 -77
- package/dist/docs/reference/geometry/meshBounds.md +0 -39
- package/dist/docs/reference/geometry/optimizePlanarPatches.md +0 -95
- package/dist/docs/reference/geometry/preflightHeightfield.md +0 -43
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +0 -105
- package/dist/docs/reference/geometry/reverseTriangleMesh.md +0 -34
- package/dist/docs/reference/geometry/sweepMesh.md +0 -86
- package/dist/docs/reference/geometry/transformTriangleMesh.md +0 -46
- package/dist/docs/reference/geometry/validateTriangleMesh.md +0 -63
- package/dist/docs/reference/model/Anchor3.md +0 -55
- package/dist/docs/reference/model/AttachOptions.md +0 -69
- package/dist/docs/reference/model/Bounds2-type.md +0 -125
- package/dist/docs/reference/model/Bounds2Data.md +0 -44
- package/dist/docs/reference/model/Bounds2Input.md +0 -19
- package/dist/docs/reference/model/Bounds2Options.md +0 -70
- package/dist/docs/reference/model/Bounds3-type.md +0 -125
- package/dist/docs/reference/model/Bounds3Data.md +0 -44
- package/dist/docs/reference/model/Bounds3Input.md +0 -19
- package/dist/docs/reference/model/Bounds3Options.md +0 -70
- package/dist/docs/reference/model/BoxEdge.md +0 -15
- package/dist/docs/reference/model/BoxEdgeSelection.md +0 -19
- package/dist/docs/reference/model/BoxEdgeTreatments.md +0 -20
- package/dist/docs/reference/model/BoxOptions.md +0 -92
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +0 -35
- package/dist/docs/reference/model/CircleContourOptions.md +0 -21
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +0 -64
- package/dist/docs/reference/model/Computed.md +0 -40
- package/dist/docs/reference/model/ComputedValue.md +0 -24
- package/dist/docs/reference/model/Contour.md +0 -24
- package/dist/docs/reference/model/CorrespondingComponent.md +0 -46
- package/dist/docs/reference/model/CorrespondingContour.md +0 -46
- package/dist/docs/reference/model/CorrespondingProfile.md +0 -22
- package/dist/docs/reference/model/CorrespondingProfileStation.md +0 -27
- package/dist/docs/reference/model/CylinderOptions.md +0 -58
- package/dist/docs/reference/model/EdgeTreatment.md +0 -22
- package/dist/docs/reference/model/EllipseContourOptions.md +0 -21
- package/dist/docs/reference/model/EndTreatments.md +0 -39
- package/dist/docs/reference/model/FinalizedModel.md +0 -131
- package/dist/docs/reference/model/FinalizedPart.md +0 -87
- package/dist/docs/reference/model/Frame3.md +0 -63
- package/dist/docs/reference/model/GeneratedPart.md +0 -97
- package/dist/docs/reference/model/GeometryResolution.md +0 -70
- package/dist/docs/reference/model/GeometrySamplingLimits.md +0 -62
- package/dist/docs/reference/model/GeometryToleranceOptions.md +0 -46
- package/dist/docs/reference/model/GridPatternOptions.md +0 -50
- package/dist/docs/reference/model/HeightfieldOptions.md +0 -67
- package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +0 -141
- package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +0 -59
- package/dist/docs/reference/model/ImmutableBuffer-type.md +0 -84
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +0 -38
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +0 -246
- package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +0 -77
- package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +0 -47
- package/dist/docs/reference/model/KnuckleHingeSpec.md +0 -18
- package/dist/docs/reference/model/LinearPatternOptions.md +0 -39
- package/dist/docs/reference/model/LoftCorrespondence.md +0 -27
- package/dist/docs/reference/model/LoftOptions.md +0 -91
- package/dist/docs/reference/model/LoftPlacement.md +0 -73
- package/dist/docs/reference/model/MatchProfilesOptions.md +0 -35
- package/dist/docs/reference/model/ModelingLimits.md +0 -126
- package/dist/docs/reference/model/NumericArray.md +0 -14
- package/dist/docs/reference/model/Path2-type.md +0 -196
- package/dist/docs/reference/model/Path2Data.md +0 -50
- package/dist/docs/reference/model/Path2Input.md +0 -20
- package/dist/docs/reference/model/Path3-type.md +0 -196
- package/dist/docs/reference/model/Path3Data.md +0 -50
- package/dist/docs/reference/model/Path3Input.md +0 -20
- package/dist/docs/reference/model/PathLocation.md +0 -69
- package/dist/docs/reference/model/PathNormalGuide.md +0 -46
- package/dist/docs/reference/model/PathOptions.md +0 -38
- package/dist/docs/reference/model/PathPatternOptions.md +0 -48
- package/dist/docs/reference/model/PathResamplingOptions.md +0 -83
- package/dist/docs/reference/model/Pivot2Options.md +0 -28
- package/dist/docs/reference/model/Pivot3Options.md +0 -28
- package/dist/docs/reference/model/PolygonData.md +0 -44
- package/dist/docs/reference/model/PrimitiveAttachment.md +0 -41
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +0 -110
- package/dist/docs/reference/model/PrintableThreadFit.md +0 -15
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +0 -51
- package/dist/docs/reference/model/ProfileComponent2.md +0 -46
- package/dist/docs/reference/model/ProfileContour2.md +0 -36
- package/dist/docs/reference/model/ProfileSpan2.md +0 -47
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +0 -41
- package/dist/docs/reference/model/RadialPatternOptions.md +0 -59
- package/dist/docs/reference/model/RadialSizing.md +0 -15
- package/dist/docs/reference/model/RadialSizingOptions.md +0 -40
- package/dist/docs/reference/model/RectangleContourOptions.md +0 -72
- package/dist/docs/reference/model/RectangleCornerTreatment.md +0 -40
- package/dist/docs/reference/model/RectangleCornerTreatments.md +0 -20
- package/dist/docs/reference/model/RegionData.md +0 -19
- package/dist/docs/reference/model/RevolveOptions.md +0 -94
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +0 -96
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +0 -76
- package/dist/docs/reference/model/SphereOptions.md +0 -20
- package/dist/docs/reference/model/StrokeCap.md +0 -16
- package/dist/docs/reference/model/StrokeJoin.md +0 -16
- package/dist/docs/reference/model/StrokeOptions.md +0 -91
- package/dist/docs/reference/model/SweepOptions.md +0 -116
- package/dist/docs/reference/model/SweepOrientation.md +0 -116
- package/dist/docs/reference/model/ThreadEndStyle.md +0 -15
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +0 -118
- package/dist/docs/reference/model/ThreadHandedness.md +0 -15
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +0 -15
- package/dist/docs/reference/model/ThreadLeadInShape.md +0 -15
- package/dist/docs/reference/model/ThreadProfile.md +0 -87
- package/dist/docs/reference/model/ThreadRidgeOptions.md +0 -19
- package/dist/docs/reference/model/ThreadedNutBevel.md +0 -15
- package/dist/docs/reference/model/ThreadedNutOptions.md +0 -274
- package/dist/docs/reference/model/ThreadedNutPreflight.md +0 -99
- package/dist/docs/reference/model/ThreadedNutShape.md +0 -15
- package/dist/docs/reference/model/ThreadedRodOptions.md +0 -246
- package/dist/docs/reference/model/TorusOptions.md +0 -110
- package/dist/docs/reference/model/Transform2-type.md +0 -257
- package/dist/docs/reference/model/Transform2Data.md +0 -16
- package/dist/docs/reference/model/Transform2Input.md +0 -21
- package/dist/docs/reference/model/Transform3-type.md +0 -297
- package/dist/docs/reference/model/Transform3Data.md +0 -19
- package/dist/docs/reference/model/Transform3Input.md +0 -21
- package/dist/docs/reference/model/TriangleMesh.md +0 -42
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +0 -123
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +0 -79
- package/dist/docs/reference/model/TubeOptions.md +0 -143
- package/dist/docs/reference/model/Vector2-type.md +0 -271
- package/dist/docs/reference/model/Vector2Data.md +0 -15
- package/dist/docs/reference/model/Vector2Input.md +0 -21
- package/dist/docs/reference/model/Vector3-type.md +0 -283
- package/dist/docs/reference/model/Vector3Data.md +0 -15
- package/dist/docs/reference/model/Vector3Input.md +0 -21
- package/dist/docs/reference/model/VectorTextLayout.md +0 -40
- package/dist/docs/reference/model/VectorTextMetrics.md +0 -100
- package/dist/docs/reference/model/anchor.md +0 -47
- package/dist/docs/reference/model/bounds2.md +0 -37
- package/dist/docs/reference/model/bounds3.md +0 -37
- package/dist/docs/reference/model/castSegment.md +0 -40
- package/dist/docs/reference/model/categories/bounds.md +0 -38
- package/dist/docs/reference/model/categories/contracts.md +0 -18
- package/dist/docs/reference/model/categories/core-values-errors.md +0 -30
- package/dist/docs/reference/model/categories/inspection.md +0 -29
- package/dist/docs/reference/model/categories/paths.md +0 -41
- package/dist/docs/reference/model/categories/resolution.md +0 -20
- package/dist/docs/reference/model/components.md +0 -71
- package/dist/docs/reference/model/compose.md +0 -31
- package/dist/docs/reference/model/distance.md +0 -45
- package/dist/docs/reference/model/immutableMesh.md +0 -44
- package/dist/docs/reference/model/inspectSection.md +0 -38
- package/dist/docs/reference/model/inspectSolid.md +0 -38
- package/dist/docs/reference/model/isEmpty.md +0 -39
- package/dist/docs/reference/model/path2.md +0 -54
- package/dist/docs/reference/model/path3.md +0 -49
- package/dist/docs/reference/model/split.md +0 -54
- package/dist/docs/reference/model/splitByPlane.md +0 -66
- package/dist/docs/reference/model/transform2.md +0 -46
- package/dist/docs/reference/model/transform3.md +0 -48
- package/dist/docs/reference/model/vector2.md +0 -40
- package/dist/docs/reference/model/vector3.md +0 -47
- package/dist/docs/reference/text/Bounds2Data.md +0 -34
- package/dist/docs/reference/text/Vector2Data.md +0 -7
- package/dist/docs/reference/text/VectorTextArcBaseline.md +0 -53
- package/dist/docs/reference/text/VectorTextLayout.md +0 -34
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +0 -111
- package/dist/docs/reference/text/VectorTextMetrics.md +0 -94
- package/dist/docs/reference/text/VectorTextOptions.md +0 -50
- package/dist/engine/export-3mf.js +0 -116
- package/dist/engine/model-dependencies.js +0 -46
- package/dist/engine/session-graph.js +0 -449
- package/dist/geometry/profiles/profiles.js +0 -71
- /package/dist/engine/{primitive-profile-types.js → operations/primitives/profile-types.js} +0 -0
- /package/dist/{engine → geometry/mesh}/mesh-view-cache.js +0 -0
- /package/dist/geometry/profiles/{matched.js → match-profiles.js} +0 -0
package/dist/api/engine.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ImmutableTriangleMesh } from "@metamesh/modeling/geometry";
|
|
2
2
|
import type {
|
|
3
|
-
|
|
4
|
-
FinalizedPart,
|
|
3
|
+
Bounds3Data,
|
|
5
4
|
GenerationDiagnostic,
|
|
6
5
|
GeometryResolution,
|
|
7
6
|
ModelingLimits,
|
|
8
7
|
ModelProgram,
|
|
9
|
-
|
|
8
|
+
Transform3Data,
|
|
9
|
+
TriangleMeshTopologyAnalysis,
|
|
10
10
|
} from "@metamesh/modeling";
|
|
11
11
|
/** Default host resource ceilings for parts, vertices, triangles, and transferable bytes. */
|
|
12
12
|
declare const defaultModelingLimits: Readonly<ModelingLimits>;
|
|
@@ -28,8 +28,13 @@ export interface GenerationOptions {
|
|
|
28
28
|
export interface ModelEngine {
|
|
29
29
|
/** Immutable resource ceilings selected when this engine was initialized. */
|
|
30
30
|
readonly limits: ModelingLimits;
|
|
31
|
+
/** Runs once with isolated ownership and returns durable immutable data; no disposal is required. */
|
|
32
|
+
run<P extends object, S>(
|
|
33
|
+
program: ModelProgram<P, S>,
|
|
34
|
+
...args: ModelRunArguments<P, S>
|
|
35
|
+
): ModelResult;
|
|
31
36
|
/** Creates isolated caches; prepared service capabilities remain fixed for its lifetime. */
|
|
32
|
-
createSession<P, S>(
|
|
37
|
+
createSession<P extends object, S>(
|
|
33
38
|
program: ModelProgram<P, S>,
|
|
34
39
|
...options: keyof S extends never
|
|
35
40
|
? [options?: SessionOptions<S>]
|
|
@@ -39,14 +44,9 @@ export interface ModelEngine {
|
|
|
39
44
|
},
|
|
40
45
|
]
|
|
41
46
|
): ModelSession<P>;
|
|
42
|
-
/** Serializes already finalized mesh parts; never prepares or builds a generator again. */
|
|
43
|
-
export3mf(
|
|
44
|
-
parts: readonly ExportMeshPart[],
|
|
45
|
-
options?: Export3mfOptions,
|
|
46
|
-
): Promise<ArrayBuffer>;
|
|
47
47
|
}
|
|
48
|
-
/**
|
|
49
|
-
export interface
|
|
48
|
+
/** Generation policy and prepared synchronous capabilities for one host execution. */
|
|
49
|
+
export interface ModelRunOptions<
|
|
50
50
|
S = Record<never, never>,
|
|
51
51
|
> extends GenerationOptions {
|
|
52
52
|
/** Host-owned synchronous capabilities, required when declared by the program. The original
|
|
@@ -54,6 +54,29 @@ export interface SessionOptions<
|
|
|
54
54
|
* this session. Equivalent function wrappers do not constitute an asset revision.
|
|
55
55
|
*/
|
|
56
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> {
|
|
57
80
|
/** Enables reuse; defaults to true. Set false for uncached output equivalence checks. */
|
|
58
81
|
readonly cache?: boolean;
|
|
59
82
|
/** Development-only cache-hit probe: reruns pure callbacks and compares bounded data/recipes.
|
|
@@ -61,95 +84,108 @@ export interface SessionOptions<
|
|
|
61
84
|
*/
|
|
62
85
|
readonly verifyCache?: boolean;
|
|
63
86
|
}
|
|
64
|
-
/** Validated local geometry resource
|
|
65
|
-
export interface GeometryResource extends
|
|
87
|
+
/** Validated local geometry resource with stable immutable numeric storage. */
|
|
88
|
+
export interface GeometryResource extends ImmutableTriangleMesh {
|
|
66
89
|
/** Session-scoped immutable resource identity, stable while geometry is reused. */
|
|
67
90
|
readonly id: string;
|
|
68
91
|
/** Immutable resource revision; a new resource receives a new identity. */
|
|
69
92
|
readonly revision: number;
|
|
70
|
-
/** Facts for the exact local manufacturing buffers. */
|
|
71
|
-
readonly measurements:
|
|
93
|
+
/** Facts and indexed topology counts for the exact local manufacturing buffers. */
|
|
94
|
+
readonly measurements: TriangleMeshTopologyAnalysis;
|
|
72
95
|
}
|
|
73
96
|
/**
|
|
74
97
|
* A world-space manufacturing part plus its reusable local renderer resource.
|
|
98
|
+
* Top-level positions and indices already include transform; do not apply it again.
|
|
99
|
+
* Only geometry contains unplaced local buffers.
|
|
75
100
|
*
|
|
76
|
-
*
|
|
77
|
-
* traversing the mesh. Measurements and placement are immutable data and do not copy on access.
|
|
101
|
+
* Buffer properties are stable immutable values. Use copy() explicitly for mutable storage.
|
|
78
102
|
*/
|
|
79
|
-
export interface
|
|
103
|
+
export interface ModelPart extends ImmutableTriangleMesh {
|
|
104
|
+
/** Stable semantic identity. */
|
|
105
|
+
readonly id: string;
|
|
106
|
+
/** Optional six-digit hexadecimal display color. */
|
|
107
|
+
readonly color?: string;
|
|
108
|
+
/** Facts and indexed topology counts measured from these world-space manufacturing buffers. */
|
|
109
|
+
readonly measurements: TriangleMeshTopologyAnalysis;
|
|
80
110
|
/** Validated geometry in local coordinates, independent of placement and appearance. */
|
|
81
111
|
readonly geometry: GeometryResource;
|
|
82
|
-
/**
|
|
83
|
-
readonly
|
|
84
|
-
/** Fixed global X, then Y, then Z rotation in degrees. */
|
|
85
|
-
readonly rotation: Vector3Data;
|
|
112
|
+
/** Immutable rigid local-to-world row-major 4x4 matrix; translation uses millimetres. */
|
|
113
|
+
readonly transform: Transform3Data;
|
|
86
114
|
}
|
|
87
|
-
/**
|
|
88
|
-
export interface
|
|
115
|
+
/** Durable immutable generation data, independent of session lifetime. */
|
|
116
|
+
export interface ModelResult {
|
|
117
|
+
/** Exact axis-aligned world bounds in millimetres. */
|
|
118
|
+
readonly bounds: Bounds3Data;
|
|
119
|
+
/** Aggregate manufacturing facts in millimetres and engine execution timings in milliseconds. */
|
|
120
|
+
readonly stats: {
|
|
121
|
+
/** Declared output instances, including repeated geometry. */
|
|
122
|
+
readonly partCount: number;
|
|
123
|
+
/** Aggregate position-buffer vertices across instances. */
|
|
124
|
+
readonly vertexCount: number;
|
|
125
|
+
/** Aggregate indexed triangles across instances. */
|
|
126
|
+
readonly triangleCount: number;
|
|
127
|
+
/** Signed enclosed volume in cubic millimetres. */
|
|
128
|
+
readonly signedVolume: number;
|
|
129
|
+
/** Bytes occupied by finalized world-space position and index buffers, counting shared buffers once. */
|
|
130
|
+
readonly byteCount: number;
|
|
131
|
+
/** Synchronous declaration duration in milliseconds. */
|
|
132
|
+
readonly buildMs: number;
|
|
133
|
+
/** Validation and finalization duration in milliseconds. */
|
|
134
|
+
readonly finalizeMs: number;
|
|
135
|
+
/** Total elapsed generation duration including cleanup, in milliseconds. */
|
|
136
|
+
readonly generateMs: number;
|
|
137
|
+
};
|
|
89
138
|
/** Ordered world-space parts, each referring to reusable local geometry. */
|
|
90
|
-
readonly parts: readonly
|
|
139
|
+
readonly parts: readonly ModelPart[];
|
|
140
|
+
/** Returns the part with this exact semantic ID; throws with available IDs when missing. */
|
|
141
|
+
part(id: string): ModelPart;
|
|
91
142
|
/** Nonblocking diagnostics emitted for this revision. */
|
|
92
143
|
readonly diagnostics: readonly GenerationDiagnostic[];
|
|
93
144
|
/** Known dependency graph; outer reads remain conservative model-wide dependencies. */
|
|
94
145
|
readonly dependencies: ModelDependencies;
|
|
95
|
-
/**
|
|
96
|
-
* Releases this snapshot's geometry references and invalidates its parts, bounds and stats accessors.
|
|
97
|
-
* Idempotent. Diagnostics, dependencies and previously obtained parts remain usable.
|
|
98
|
-
*/
|
|
99
|
-
dispose(): void;
|
|
100
146
|
}
|
|
101
147
|
/** Known dependencies for inspection; plain JavaScript bindings do not reveal their parameter origin. */
|
|
102
148
|
export interface ModelDependencies {
|
|
103
|
-
/** Parameter keys read outside
|
|
149
|
+
/** Parameter keys read outside memo functions, affecting structure or ordinary code. */
|
|
104
150
|
readonly modelParameters: readonly string[];
|
|
105
151
|
/** Direct dependencies recorded by successfully evaluated computations. */
|
|
106
152
|
readonly computations: readonly {
|
|
107
|
-
/**
|
|
153
|
+
/** Revision-local diagnostic memo identity; it is not a cache key. */
|
|
108
154
|
readonly id: string;
|
|
109
155
|
/** Direct top-level parameter reads. */
|
|
110
156
|
readonly parameters: readonly string[];
|
|
111
|
-
/**
|
|
157
|
+
/** Known object-value dependencies between memo calls; scalar origins are not observable. */
|
|
112
158
|
readonly computations: readonly string[];
|
|
113
159
|
}[];
|
|
114
|
-
/**
|
|
160
|
+
/** Known memo origins of part geometry and placement, and their parameter dependencies. */
|
|
115
161
|
readonly parts: readonly {
|
|
116
162
|
/** Stable semantic output part identity. */
|
|
117
163
|
readonly id: string;
|
|
118
|
-
/**
|
|
164
|
+
/** Memo calls known to contribute object values to geometry or placement. */
|
|
119
165
|
readonly computations: readonly string[];
|
|
120
166
|
/** Known transitive parameter dependencies through these roots. */
|
|
121
167
|
readonly parameters: readonly string[];
|
|
122
168
|
}[];
|
|
123
169
|
}
|
|
124
|
-
/** Stateful execution owner; a failed revision cannot change previously returned
|
|
125
|
-
export interface ModelSession<P> {
|
|
126
|
-
/** Generates
|
|
127
|
-
run(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
170
|
+
/** Stateful execution owner; a failed revision cannot change previously returned results. */
|
|
171
|
+
export interface ModelSession<P extends object> {
|
|
172
|
+
/** Generates durable immutable data or throws; parameters are copied and frozen. Empty parameters may be omitted. */
|
|
173
|
+
run(
|
|
174
|
+
...args: Record<never, never> extends P
|
|
175
|
+
? [parameters?: Readonly<P>]
|
|
176
|
+
: [parameters: Readonly<P>]
|
|
177
|
+
): ModelResult;
|
|
178
|
+
/** Returns reached assertion errors and warnings without finalizing returned geometry; unexpected errors throw. */
|
|
179
|
+
check(
|
|
180
|
+
...args: Record<never, never> extends P
|
|
181
|
+
? [parameters?: Readonly<P>]
|
|
182
|
+
: [parameters: Readonly<P>]
|
|
183
|
+
): readonly GenerationDiagnostic[];
|
|
184
|
+
/** Clears optional caches without invalidating returned results. */
|
|
131
185
|
clearCache(): void;
|
|
132
|
-
/** Releases session ownership; idempotent,
|
|
186
|
+
/** Releases session ownership; idempotent, returned results remain usable. */
|
|
133
187
|
dispose(): void;
|
|
134
188
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Manufacturing buffers accepted by the snapshot exporter.
|
|
137
|
-
*/
|
|
138
|
-
export interface ExportMeshPart extends TriangleMesh {
|
|
139
|
-
/** Stable canonical lowercase identity; unique within the containing topology or output. */
|
|
140
|
-
readonly id: string;
|
|
141
|
-
/** Optional six-digit hex RGB display color. */
|
|
142
|
-
readonly color?: string;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Completed-snapshot serialization settings; filename selection belongs to the host.
|
|
146
|
-
*/
|
|
147
|
-
export interface Export3mfOptions {
|
|
148
|
-
/** Optional bounded geometric solid checks on captured buffers; defaults to indexed topology validation. */
|
|
149
|
-
readonly meshValidation?: "topology" | "solid";
|
|
150
|
-
/** Document display name; defaults to MetaMesh model. */
|
|
151
|
-
readonly name?: string;
|
|
152
|
-
}
|
|
153
189
|
/** Kernel asset initialization. Networking and Worker ownership remain with the host. */
|
|
154
190
|
export interface ModelEngineOptions {
|
|
155
191
|
/** Fixed kernel WASM asset URL; defaults to the package asset. Browser hosts supply their emitted URL. */
|
|
@@ -164,18 +200,13 @@ export declare const modelingWasmUrl: string;
|
|
|
164
200
|
|
|
165
201
|
/**
|
|
166
202
|
* Runs declaration and immediate assertions without initializing a kernel or finalizing parts.
|
|
167
|
-
*
|
|
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.
|
|
168
206
|
*/
|
|
169
|
-
export declare function
|
|
207
|
+
export declare function checkModel<P extends object, S>(
|
|
170
208
|
program: ModelProgram<P, S>,
|
|
171
|
-
|
|
172
|
-
...settings: keyof S extends never
|
|
173
|
-
? [options?: SessionOptions<S>]
|
|
174
|
-
: [
|
|
175
|
-
options: SessionOptions<S> & {
|
|
176
|
-
readonly services: S;
|
|
177
|
-
},
|
|
178
|
-
]
|
|
209
|
+
...args: ModelRunArguments<P, S, SessionOptions<S>>
|
|
179
210
|
): readonly GenerationDiagnostic[];
|
|
180
211
|
/**
|
|
181
212
|
* Initializes one host kernel and returns a lifecycle-safe engine. No generator initializes WASM.
|
|
@@ -184,20 +215,12 @@ export declare function validateModel<P, S>(
|
|
|
184
215
|
* ```ts
|
|
185
216
|
* import { box, generate } from "@metamesh/modeling";
|
|
186
217
|
* import { createModelEngine } from "@metamesh/modeling/engine";
|
|
218
|
+
* import { export3mf } from "@metamesh/modeling/export";
|
|
187
219
|
*
|
|
188
220
|
* const engine = await createModelEngine();
|
|
189
221
|
* const model = generate<Record<never, never>>(({ part }) => [part("body", box({ size: [30, 20, 8] }))]);
|
|
190
|
-
* const
|
|
191
|
-
*
|
|
192
|
-
* const snapshot = session.run({});
|
|
193
|
-
* try {
|
|
194
|
-
* await engine.export3mf(snapshot.parts);
|
|
195
|
-
* } finally {
|
|
196
|
-
* snapshot.dispose();
|
|
197
|
-
* }
|
|
198
|
-
* } finally {
|
|
199
|
-
* session.dispose();
|
|
200
|
-
* }
|
|
222
|
+
* const result = engine.run(model);
|
|
223
|
+
* await export3mf(result.parts);
|
|
201
224
|
* ```
|
|
202
225
|
*/
|
|
203
226
|
export declare function createModelEngine(
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ImmutableBuffer,
|
|
3
|
+
TriangleMeshInput,
|
|
4
|
+
Transform3Data,
|
|
5
|
+
} from "@metamesh/modeling/geometry";
|
|
6
|
+
|
|
7
|
+
/** Local millimetre, Z-up indexed geometry; optional unit normals describe display shading only. */
|
|
8
|
+
export type ExportGeometry = TriangleMeshInput & {
|
|
9
|
+
/** One finite unit XYZ normal per position; omitted normals are derived for GLB. */
|
|
10
|
+
readonly normals?: Float32Array | ImmutableBuffer<Float32Array>;
|
|
11
|
+
};
|
|
12
|
+
/** A semantic part referencing reusable local geometry, with placement and appearance kept separate. */
|
|
13
|
+
export interface ExportPart {
|
|
14
|
+
/** Unique canonical lowercase kebab-case identity, at most 64 characters. */
|
|
15
|
+
readonly id: string;
|
|
16
|
+
/** Local geometry; engine results and decoded Worker parts are accepted directly. */
|
|
17
|
+
readonly geometry: ExportGeometry;
|
|
18
|
+
/** Proper rigid row-major local-to-world matrix; translations are millimetres. Defaults to identity. */
|
|
19
|
+
readonly transform?: Transform3Data;
|
|
20
|
+
/** Six-digit sRGB display color; overrides the assigned material's suggested display color. */
|
|
21
|
+
readonly color?: string;
|
|
22
|
+
/** Stable print material identity from options.materials; never inferred from display color. */
|
|
23
|
+
readonly materialId?: string;
|
|
24
|
+
}
|
|
25
|
+
/** Portable print material intent. Equal display colors do not merge different identities. */
|
|
26
|
+
export interface ExportMaterial {
|
|
27
|
+
/** Unique canonical lowercase kebab-case identity, preserved by 3MF as the base-material name. */
|
|
28
|
+
readonly id: string;
|
|
29
|
+
/** Suggested six-digit sRGB display color; does not select filament, extruder, or physical tray. */
|
|
30
|
+
readonly color: string;
|
|
31
|
+
}
|
|
32
|
+
/** Supported completed-mesh file formats. */
|
|
33
|
+
export type ExportFormat = "3mf" | "stl" | "glb";
|
|
34
|
+
/** Independent trusted export ceilings; output limits also apply to streaming writers. */
|
|
35
|
+
export interface ExportLimits {
|
|
36
|
+
/** Maximum selected semantic parts. */
|
|
37
|
+
readonly maxParts: number;
|
|
38
|
+
/** Maximum aggregate input vertices across selected instances. */
|
|
39
|
+
readonly maxVertices: number;
|
|
40
|
+
/** Maximum aggregate input triangles across selected instances. */
|
|
41
|
+
readonly maxTriangles: number;
|
|
42
|
+
/** Maximum captured unique numeric buffer-view bytes, including authored normals. */
|
|
43
|
+
readonly maxBytes: number;
|
|
44
|
+
/** Maximum encoded file bytes; defaults to 512 MiB. */
|
|
45
|
+
readonly maxOutputBytes: number;
|
|
46
|
+
}
|
|
47
|
+
/** Shared serialization policy; hosts own scheduling, filenames, and delivery. */
|
|
48
|
+
export interface ExportOptions {
|
|
49
|
+
/** Display name, one through 1024 valid XML characters; defaults to MetaMesh model. */
|
|
50
|
+
readonly name?: string;
|
|
51
|
+
/** Explicit export ceilings, independent of engine/session configuration. */
|
|
52
|
+
readonly limits?: Partial<ExportLimits>;
|
|
53
|
+
/** Topology validation by default; solid additionally checks bounded intersections and shell nesting. */
|
|
54
|
+
readonly meshValidation?: "topology" | "solid";
|
|
55
|
+
/** Portable material identities referenced by parts. No slicer or device mapping is implied. */
|
|
56
|
+
readonly materials?: readonly ExportMaterial[];
|
|
57
|
+
/** Cancellation checked between bounded writing tasks; browser hosts should schedule CPU work in a Worker. */
|
|
58
|
+
readonly signal?: AbortSignal;
|
|
59
|
+
}
|
|
60
|
+
/** 3MF serialization of closed manufacturing meshes in millimetres; colored output uses the standard Materials extension. */
|
|
61
|
+
export type Export3mfOptions = ExportOptions;
|
|
62
|
+
/** Binary STL serialization in millimetres; open triangle surfaces are permitted by default. */
|
|
63
|
+
export type ExportStlOptions = ExportOptions;
|
|
64
|
+
/** Uncompressed glTF 2.0 binary serialization; converts millimetres/Z-up to metres/Y-up. */
|
|
65
|
+
export interface ExportGlbOptions extends ExportOptions {
|
|
66
|
+
/** Normal smoothing threshold in degrees from zero through 180; defaults to 20. Authored normals take precedence. */
|
|
67
|
+
readonly creaseAngle?: number;
|
|
68
|
+
}
|
|
69
|
+
/** Expected information loss imposed by the selected file format. */
|
|
70
|
+
export interface ExportDiagnostic {
|
|
71
|
+
/** Stable category; human-readable wording is not an API contract. */
|
|
72
|
+
readonly code:
|
|
73
|
+
| "APPEARANCE_DROPPED"
|
|
74
|
+
| "MATERIAL_ASSIGNMENTS_DROPPED"
|
|
75
|
+
| "PART_NAMES_DROPPED";
|
|
76
|
+
/** Description of the information the selected format cannot preserve. */
|
|
77
|
+
readonly message: string;
|
|
78
|
+
/** Affected semantic part identities, in input order. */
|
|
79
|
+
readonly partIds: readonly string[];
|
|
80
|
+
}
|
|
81
|
+
/** Completed writer metadata; successful completion means the sink accepted every chunk. */
|
|
82
|
+
export interface ExportReport {
|
|
83
|
+
/** Registered file media type. */
|
|
84
|
+
readonly mediaType: string;
|
|
85
|
+
/** File extension without a leading dot. */
|
|
86
|
+
readonly extension: ExportFormat;
|
|
87
|
+
/** Expected format losses; invalid input and failed delivery reject instead. */
|
|
88
|
+
readonly diagnostics: readonly ExportDiagnostic[];
|
|
89
|
+
/** Encoded bytes delivered to the sink. */
|
|
90
|
+
readonly byteLength: number;
|
|
91
|
+
}
|
|
92
|
+
/** Owned file bytes and format metadata, usable in both Node and browsers. */
|
|
93
|
+
export interface ExportedFile extends ExportReport {
|
|
94
|
+
/** Fresh mutable bytes; never aliases the input snapshot. */
|
|
95
|
+
readonly bytes: Uint8Array<ArrayBuffer>;
|
|
96
|
+
}
|
|
97
|
+
/** Receives owned chunks in order. Writers await each call for backpressure; the host closes its destination. */
|
|
98
|
+
export type ExportSink = (chunk: Uint8Array) => void | Promise<void>;
|
|
99
|
+
|
|
100
|
+
/** Default standalone export policy: 64 parts, one million vertices, two million triangles, 96 MiB input, 512 MiB output. */
|
|
101
|
+
export declare const defaultExportLimits: ExportLimits;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Serializes a captured model as binary STL in millimetres and Z-up coordinates.
|
|
105
|
+
* Placement is baked into triangles. Diagnostics describe dropped names, appearance and materials.
|
|
106
|
+
* Mutable input is captured before the first await; no engine or renderer is needed.
|
|
107
|
+
*/
|
|
108
|
+
export declare function exportStl(
|
|
109
|
+
parts: readonly ExportPart[],
|
|
110
|
+
options?: ExportStlOptions,
|
|
111
|
+
): Promise<ExportedFile>;
|
|
112
|
+
/**
|
|
113
|
+
* Writes owned binary STL chunks to a sink, awaiting backpressure after each bounded chunk.
|
|
114
|
+
* The host owns sink completion and recovery after failure. Honors cancellation and output limits.
|
|
115
|
+
*/
|
|
116
|
+
export declare function writeStl(
|
|
117
|
+
parts: readonly ExportPart[],
|
|
118
|
+
sink: ExportSink,
|
|
119
|
+
options?: ExportStlOptions,
|
|
120
|
+
): Promise<ExportReport>;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Writes 3MF with local mesh reuse, semantic parts, rigid placement, and standard color groups.
|
|
124
|
+
* Colored output requires the Materials extension. Explicit material IDs remain distinct base-material
|
|
125
|
+
* names, combined with appearance through multiproperties; display colors never select filament.
|
|
126
|
+
* Captures mutable inputs before awaiting and awaits each owned output chunk for backpressure.
|
|
127
|
+
* The host owns destination closing and cleanup of partial output after rejection.
|
|
128
|
+
*/
|
|
129
|
+
export declare function write3mf(
|
|
130
|
+
parts: readonly ExportPart[],
|
|
131
|
+
sink: ExportSink,
|
|
132
|
+
options?: Export3mfOptions,
|
|
133
|
+
): Promise<ExportReport>;
|
|
134
|
+
/** Serializes selected completed meshes as an owned 3MF file without initializing an engine. */
|
|
135
|
+
export declare function export3mf(
|
|
136
|
+
parts: readonly ExportPart[],
|
|
137
|
+
options?: Export3mfOptions,
|
|
138
|
+
): Promise<ExportedFile>;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Serializes captured local meshes as uncompressed glTF 2.0 binary, in metres and Y-up.
|
|
142
|
+
* Preserves named parts, placement, shared geometry and display appearance. Authored normals take
|
|
143
|
+
* precedence over crease-aware shading; no engine, renderer or optional compression codec is loaded.
|
|
144
|
+
*/
|
|
145
|
+
export declare function exportGlb(
|
|
146
|
+
parts: readonly ExportPart[],
|
|
147
|
+
options?: ExportGlbOptions,
|
|
148
|
+
): Promise<ExportedFile>;
|
|
149
|
+
/**
|
|
150
|
+
* Writes owned GLB chunks with backpressure, cancellation and explicit output limits.
|
|
151
|
+
* Plans accessor and container lengths before writing, then emits bounded binary chunks.
|
|
152
|
+
* Hosts own sink completion, scheduling and recovery after a partially written failure.
|
|
153
|
+
*/
|
|
154
|
+
export declare function writeGlb(
|
|
155
|
+
parts: readonly ExportPart[],
|
|
156
|
+
sink: ExportSink,
|
|
157
|
+
options?: ExportGlbOptions,
|
|
158
|
+
): Promise<ExportReport>;
|
|
159
|
+
|
|
160
|
+
/** Runtime-independent completed-mesh export. All input coordinates are millimetres, right-handed, and Z-up. @packageDocumentation */
|