@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
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# analyzeQuality
|
|
2
|
+
|
|
3
|
+
Measures triangle shape, edge topology, vertex concentration, and connected planar patches.
|
|
4
|
+
|
|
5
|
+
**analyzeQuality**(`mesh`: [`TriangleMeshInput`](../geometry/TriangleMeshInput.md), `options?`: [`TriangleMeshQualityOptions`](../geometry/TriangleMeshQualityOptions.md)): [`TriangleMeshQualityReport`](../geometry/TriangleMeshQualityReport.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Positions are never welded: valence and manifold status describe the supplied indexed topology.
|
|
10
|
+
Degenerate triangles are reported rather than rejected, while malformed buffers, non-finite
|
|
11
|
+
positions, missing vertex references, and the configured complexity limit throw.
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
<a id="mesh"></a>
|
|
16
|
+
|
|
17
|
+
**`mesh`** · [`TriangleMeshInput`](../geometry/TriangleMeshInput.md) · Required
|
|
18
|
+
|
|
19
|
+
Indexed triangle mesh in arbitrary consistent model units.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<a id="options"></a>
|
|
24
|
+
|
|
25
|
+
**`options`** · [`TriangleMeshQualityOptions`](../geometry/TriangleMeshQualityOptions.md) · Optional
|
|
26
|
+
|
|
27
|
+
Scale-aware tolerance and analysis budget.
|
|
28
|
+
|
|
29
|
+
- [`maxTriangles`](../geometry/TriangleMeshQualityOptions.md#maxtriangles) · `number` · Optional
|
|
30
|
+
|
|
31
|
+
Maximum number of triangles inspected. Defaults to `200000`.
|
|
32
|
+
|
|
33
|
+
- [`tolerance`](../geometry/TriangleMeshQualityOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
|
|
34
|
+
|
|
35
|
+
Numeric comparison overrides; model coordinates are interpreted in their existing units.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Returns
|
|
40
|
+
|
|
41
|
+
[`TriangleMeshQualityReport`](../geometry/TriangleMeshQualityReport.md)
|
|
42
|
+
|
|
43
|
+
A deterministic report without mutating or copying the mesh.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## Related APIs
|
|
47
|
+
|
|
48
|
+
- [TriangleMeshInput](../geometry/TriangleMeshInput.md)
|
|
49
|
+
- [TriangleMeshQualityOptions](../geometry/TriangleMeshQualityOptions.md)
|
|
50
|
+
- [TriangleMeshQualityReport](../geometry/TriangleMeshQualityReport.md)
|
|
51
|
+
|
|
52
|
+
## Guides
|
|
53
|
+
|
|
54
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
55
|
+
|
|
56
|
+
## Supported imports
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# bounds
|
|
2
|
+
|
|
3
|
+
Computes axis-aligned bounds for a non-empty mesh.
|
|
4
|
+
|
|
5
|
+
`const` **bounds**: (`mesh`: [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)) => [`Bounds3Data`](../geometry/Bounds3Data.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Parameters
|
|
10
|
+
|
|
11
|
+
<a id="mesh"></a>
|
|
12
|
+
|
|
13
|
+
**`mesh`** · [`TriangleMeshInput`](../geometry/TriangleMeshInput.md) · Required
|
|
14
|
+
|
|
15
|
+
Mesh whose finite complete vertices will be measured.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Returns
|
|
20
|
+
|
|
21
|
+
[`Bounds3Data`](../geometry/Bounds3Data.md)
|
|
22
|
+
|
|
23
|
+
Fresh immutable minimum and maximum XYZ tuples.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Throws
|
|
27
|
+
|
|
28
|
+
- `GeometryError` When the mesh is structurally invalid.
|
|
29
|
+
|
|
30
|
+
## Related APIs
|
|
31
|
+
|
|
32
|
+
- [Bounds3Data](../geometry/Bounds3Data.md)
|
|
33
|
+
- [TriangleMeshInput](../geometry/TriangleMeshInput.md)
|
|
34
|
+
|
|
35
|
+
## Guides
|
|
36
|
+
|
|
37
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
38
|
+
|
|
39
|
+
## Supported imports
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Mesh operations
|
|
2
|
+
|
|
3
|
+
Construct, transform, validate, analyze, and optimize indexed meshes.
|
|
4
|
+
|
|
5
|
+
Use `import * as mesh from "@metamesh/modeling/geometry/mesh"` for static, removable operation imports. `mesh.join` concatenates buffers; overlapping geometry remains overlapping.
|
|
6
|
+
|
|
7
|
+
Manufacturing meshes use `Float32Array` XYZ positions and `Uint32Array` triangle indices. Mesh analysis accepts raw arrays or stable immutable buffers directly; signatures add quantized topology and a regression hash. Predictable constructors reject unsafe allocations before sampling.
|
|
8
|
+
|
|
9
|
+
- **Construct:** `mesh.extrude`, `mesh.loft`, `mesh.sweep`, `mesh.revolve`, `mesh.threadRidge`, and `mesh.threadSolid` return `TriangleMesh` data without a host engine. `LoftOptions`, `SweepOptions`, and `ExtrudeMeshOptions` describe pure construction. Native `ExtrudeOptions` additionally accepts end treatments.
|
|
10
|
+
- **Match lofts:** `mesh.loft` defaults to `direct` correspondence; select `reindex`, `fast-distance`, or `distance` explicitly when needed. Stations specify exactly one `z` or `frame`, retain original vertices, and interpolate slices in world coordinates. Profile association and sampling-grid work have explicit limits; fidelity isn't reduced to meet them.
|
|
11
|
+
- **Validate:** closed oriented-edge checks do not establish freedom from self-intersections. `mesh.validateSolid` adds bounded floating-point intersection and nested-shell orientation checks, including cavity boundaries. Contacts within tolerance reject conservatively; exhausted work limits fail explicitly.
|
|
12
|
+
- **Measure:** `mesh.centroid` returns the uniform-density volume centroid of consistently oriented closed geometry, including cavities.
|
|
13
|
+
|
|
14
|
+
## Functions
|
|
15
|
+
|
|
16
|
+
| API | Summary |
|
|
17
|
+
| --- | --- |
|
|
18
|
+
| [extrude](../extrude.md) | Linearly extrudes one simple profile along +Z with robust ear-clipped caps. Path2 profiles must be closed; raw point collections have an implicit closing edge. End treatments are unsupported and reject at runtime. Use Section.extrude for finished ends. |
|
|
19
|
+
| [loft](../loft.md) | Lofts simple point loops at z heights or explicit right-handed frames, in input order. |
|
|
20
|
+
| [sweep](../sweep.md) | Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam. |
|
|
21
|
+
| [heightfield](../heightfield.md) | Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base. |
|
|
22
|
+
| [preflightHeightfield](../preflightHeightfield.md) | Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts. |
|
|
23
|
+
| [threadRidge](../threadRidge.md) | Builds closed thread-ridge components with every profile locked to the shaft's radial/axial frame. The mesh is intended for union with its minor-envelope cylinder and never owns WASM objects. |
|
|
24
|
+
| [threadSolid](../threadSolid.md) | Builds one closed threaded cylinder without a ridge/core Boolean seam. |
|
|
25
|
+
| [preflightThreadSolid](../preflightThreadSolid.md) | Checks thread dimensions, profile, end treatments, sampling, and conservative estimates against output limits. |
|
|
26
|
+
| [transform](../transform.md) | Applies an affine transform to a mesh and preserves outward face orientation. |
|
|
27
|
+
| [join](../join.md) | Concatenates meshes into one indexed mesh without welding coincident vertices. |
|
|
28
|
+
| [reverse](../reverse.md) | Returns a copy of a mesh with every triangle winding reversed. |
|
|
29
|
+
| [centroid](../centroid.md) | Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells. |
|
|
30
|
+
| [analyze](../analyze.md) | Validates and measures a mesh with one pass over positions and one over triangles. |
|
|
31
|
+
| [analyzeQuality](../analyzeQuality.md) | Measures triangle shape, edge topology, vertex concentration, and connected planar patches. |
|
|
32
|
+
| [signature](../signature.md) | Creates an order-independent regression signature for a manufacturing mesh. |
|
|
33
|
+
| [validate](../validate.md) | Validates mesh buffers, indices, triangle area, and optionally closed topology. |
|
|
34
|
+
| [validateSolid](../validateSolid.md) | Checks closed indexed topology, triangle intersections, and alternating nested shell orientation. |
|
|
35
|
+
| [optimizePlanarPatches](../optimizePlanarPatches.md) | Improves pathological planar triangulation with bounded legal diagonal flips. |
|
|
36
|
+
| [immutable](../immutable.md) | Copies mesh buffers into immutable data; geometric validation still occurs when modeling or finalizing. |
|
|
37
|
+
| [render](../render.md) | Builds crease-aware render buffers without moving or merging distinct positions. Face normals are averaged only at exactly coincident positions within the crease angle. Returns owned buffers; every triangle retains its coordinates, order and winding. Pathological vertex fans exceeding 50 million normal comparisons reject with a complexity error. |
|
|
38
|
+
|
|
39
|
+
## Interfaces
|
|
40
|
+
|
|
41
|
+
| API | Summary |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| [MeshRenderOptions](../MeshRenderOptions.md) | Shading policy for a render copy; manufacturing positions and triangle order never change. |
|
|
44
|
+
| [RenderMesh](../RenderMesh.md) | Owned indexed render buffers with unit vertex normals and positions in millimetres. |
|
|
45
|
+
|
|
46
|
+
## Values
|
|
47
|
+
|
|
48
|
+
| API | Summary |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| [revolve](../revolve.md) | Revolves a non-duplicated closed `[radius, z]` profile around +Z. |
|
|
51
|
+
| [bounds](../bounds.md) | Computes axis-aligned bounds for a non-empty mesh. |
|
|
52
|
+
|
|
53
|
+
## Guides
|
|
54
|
+
|
|
55
|
+
- [Exact counts and preflight guarantees](../../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
56
|
+
|
|
57
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# centroid
|
|
2
|
+
|
|
3
|
+
Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells.
|
|
4
|
+
|
|
5
|
+
**centroid**(`mesh`: [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)): [`Vector3Data`](../geometry/Vector3Data.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Coordinates are millimetres. Indexed closure and positive aggregate volume are required; callers
|
|
10
|
+
may use mesh.validateSolid first when geometric intersections and shell orientation are untrusted.
|
|
11
|
+
Fresh mutable input is inspected on every call, and buffers are never changed.
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
<a id="mesh"></a>
|
|
16
|
+
|
|
17
|
+
**`mesh`** · [`TriangleMeshInput`](../geometry/TriangleMeshInput.md) · Required
|
|
18
|
+
|
|
19
|
+
Consistently oriented closed mesh with positive enclosed volume.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Returns
|
|
24
|
+
|
|
25
|
+
[`Vector3Data`](../geometry/Vector3Data.md)
|
|
26
|
+
|
|
27
|
+
A fresh immutable XYZ volume centroid.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## Related APIs
|
|
31
|
+
|
|
32
|
+
- [TriangleMeshInput](../geometry/TriangleMeshInput.md)
|
|
33
|
+
- [Vector3Data](../geometry/Vector3Data.md)
|
|
34
|
+
|
|
35
|
+
## Guides
|
|
36
|
+
|
|
37
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
38
|
+
|
|
39
|
+
## Supported imports
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# extrude
|
|
2
|
+
|
|
3
|
+
Linearly extrudes one simple profile along +Z with robust ear-clipped caps. Path2 profiles must be closed; raw point collections have an implicit closing edge. End treatments are unsupported and reject at runtime. Use Section.extrude for finished ends.
|
|
4
|
+
|
|
5
|
+
**extrude**(`input`: [`Path2Input`](../geometry/Path2Input.md), `options`: [`ExtrudeMeshOptions`](../geometry/ExtrudeMeshOptions.md)): [`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Example: Extrude point data without an engine
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
const outline = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
|
|
13
|
+
mesh.extrude(outline, { height: 8 });
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
|
|
18
|
+
<a id="input"></a>
|
|
19
|
+
|
|
20
|
+
**`input`** · [`Path2Input`](../geometry/Path2Input.md) · Required
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
<a id="options"></a>
|
|
25
|
+
|
|
26
|
+
**`options`** · [`ExtrudeMeshOptions`](../geometry/ExtrudeMeshOptions.md) · Required
|
|
27
|
+
|
|
28
|
+
- [`height`](../geometry/ExtrudeMeshOptions.md#height) · `number` · Required
|
|
29
|
+
|
|
30
|
+
Positive extrusion height in millimetres.
|
|
31
|
+
|
|
32
|
+
- [`center`](../geometry/ExtrudeMeshOptions.md#center) · `boolean` · Optional
|
|
33
|
+
|
|
34
|
+
Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false.
|
|
35
|
+
|
|
36
|
+
- [`divisions`](../geometry/ExtrudeMeshOptions.md#divisions) · `number` · Optional
|
|
37
|
+
|
|
38
|
+
Exact number of intermediate profiles, nonnegative; overrides physical sampling.
|
|
39
|
+
|
|
40
|
+
- [`limits`](../geometry/ExtrudeMeshOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
|
|
41
|
+
|
|
42
|
+
Explicit output and sampling allocation ceilings.
|
|
43
|
+
|
|
44
|
+
- [`resolution`](../geometry/ExtrudeMeshOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
|
|
45
|
+
|
|
46
|
+
Operation-level physical policy over the nearest model scope.
|
|
47
|
+
|
|
48
|
+
- [`scaleTop`](../geometry/ExtrudeMeshOptions.md#scaletop) · `number` \| [`Vector2Input`](../geometry/Vector2Input.md) · Optional
|
|
49
|
+
|
|
50
|
+
Finite uniform or XY scale of the top profile; defaults to one.
|
|
51
|
+
|
|
52
|
+
- [`twist`](../geometry/ExtrudeMeshOptions.md#twist) · `number` · Optional
|
|
53
|
+
|
|
54
|
+
Finite rotation of the top profile about +Z, in degrees; defaults to zero.
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Returns
|
|
59
|
+
|
|
60
|
+
[`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
## Related APIs
|
|
64
|
+
|
|
65
|
+
- [ExtrudeMeshOptions](../geometry/ExtrudeMeshOptions.md)
|
|
66
|
+
- [Path2Input](../geometry/Path2Input.md)
|
|
67
|
+
- [TriangleMesh](../geometry/TriangleMesh.md)
|
|
68
|
+
|
|
69
|
+
## Guides
|
|
70
|
+
|
|
71
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
72
|
+
|
|
73
|
+
## Supported imports
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# heightfield
|
|
2
|
+
|
|
3
|
+
Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base.
|
|
4
|
+
|
|
5
|
+
**heightfield**(`options`: [`HeightfieldOptions`](../geometry/HeightfieldOptions.md), `limits?`: `Partial`\<`Pick`\<[`ModelingLimits`](../geometry/ModelingLimits.md), `"maxVertices"` \| `"maxTriangles"` \| `"maxBytes"`\>\>): [`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Example: Sample a closed wavy mesh
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
mesh.heightfield({
|
|
13
|
+
size: [30, 20], segments: [24, 16],
|
|
14
|
+
height: ([x, y]) => 3 + Math.cos(x / 5) * Math.cos(y / 5),
|
|
15
|
+
});
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Heights run once per grid point after preflight; center-error adds one evaluation per cell.
|
|
19
|
+
Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit
|
|
20
|
+
Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks.
|
|
21
|
+
|
|
22
|
+
## Parameters
|
|
23
|
+
|
|
24
|
+
<a id="options"></a>
|
|
25
|
+
|
|
26
|
+
**`options`** · [`HeightfieldOptions`](../geometry/HeightfieldOptions.md) · Required
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
<a id="limits"></a>
|
|
31
|
+
|
|
32
|
+
**`limits`** · `Partial`\<`Pick`\<[`ModelingLimits`](../geometry/ModelingLimits.md), `"maxVertices"` \| `"maxTriangles"` \| `"maxBytes"`\>\> · Optional
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Returns
|
|
37
|
+
|
|
38
|
+
[`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Related APIs
|
|
42
|
+
|
|
43
|
+
- [HeightfieldOptions](../geometry/HeightfieldOptions.md)
|
|
44
|
+
- [ModelingLimits](../geometry/ModelingLimits.md)
|
|
45
|
+
- [TriangleMesh](../geometry/TriangleMesh.md)
|
|
46
|
+
|
|
47
|
+
## Guides
|
|
48
|
+
|
|
49
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
50
|
+
|
|
51
|
+
## Supported imports
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# immutable
|
|
2
|
+
|
|
3
|
+
Copies mesh buffers into immutable data; geometric validation still occurs when modeling or finalizing.
|
|
4
|
+
|
|
5
|
+
**immutable**(`mesh`: `object`): [`ImmutableTriangleMesh`](../geometry/ImmutableTriangleMesh.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Example
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { generate } from "@metamesh/modeling";
|
|
13
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
14
|
+
const buildSurface = () => mesh.immutable(mesh.heightfield({
|
|
15
|
+
size: [10, 10], segments: [8, 8], height: () => 2,
|
|
16
|
+
}));
|
|
17
|
+
const model = generate(({ memo, part }) => part("surface", memo(buildSurface)));
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Parameters
|
|
21
|
+
|
|
22
|
+
### mesh
|
|
23
|
+
|
|
24
|
+
#### positions
|
|
25
|
+
|
|
26
|
+
`Float32Array`
|
|
27
|
+
|
|
28
|
+
#### indices
|
|
29
|
+
|
|
30
|
+
`Uint32Array`
|
|
31
|
+
|
|
32
|
+
## Returns
|
|
33
|
+
|
|
34
|
+
[`ImmutableTriangleMesh`](../geometry/ImmutableTriangleMesh.md)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## Related APIs
|
|
38
|
+
|
|
39
|
+
- [ImmutableTriangleMesh](../geometry/ImmutableTriangleMesh.md)
|
|
40
|
+
|
|
41
|
+
## Guides
|
|
42
|
+
|
|
43
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
44
|
+
|
|
45
|
+
## Supported imports
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# join
|
|
2
|
+
|
|
3
|
+
Concatenates meshes into one indexed mesh without welding coincident vertices.
|
|
4
|
+
|
|
5
|
+
**join**(`meshes`: readonly [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)[]): [`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Inputs are validated and never mutated. Face order and winding remain stable.
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
<a id="meshes"></a>
|
|
14
|
+
|
|
15
|
+
**`meshes`** · readonly [`TriangleMeshInput`](../geometry/TriangleMeshInput.md)[] · Required
|
|
16
|
+
|
|
17
|
+
One or more meshes to concatenate.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## Returns
|
|
22
|
+
|
|
23
|
+
[`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
24
|
+
|
|
25
|
+
Fresh typed arrays with indices offset to their source vertex ranges.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## Throws
|
|
29
|
+
|
|
30
|
+
- `GeometryError` When no mesh is supplied or an input is invalid.
|
|
31
|
+
|
|
32
|
+
## Related APIs
|
|
33
|
+
|
|
34
|
+
- [TriangleMesh](../geometry/TriangleMesh.md)
|
|
35
|
+
- [TriangleMeshInput](../geometry/TriangleMeshInput.md)
|
|
36
|
+
|
|
37
|
+
## Guides
|
|
38
|
+
|
|
39
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
40
|
+
|
|
41
|
+
## Supported imports
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# loft
|
|
2
|
+
|
|
3
|
+
Lofts simple point loops at z heights or explicit right-handed frames, in input order.
|
|
4
|
+
|
|
5
|
+
**loft**(`stations`: readonly [`LoftMeshStation`](../geometry/LoftMeshStation.md)[], `options?`: [`LoftOptions`](../geometry/LoftOptions.md)): [`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Example: Loft with explicit point correspondence
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
const bottom = rectangleContour({ size: [20, 12] });
|
|
13
|
+
const top = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
|
|
14
|
+
mesh.loft([{ profile: bottom, z: 0 }, { profile: top, z: 30 }], { correspondence: "reindex" });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Correspondence defaults to direct. CCW-normalized loops retain their
|
|
18
|
+
seam and original vertices; unequal counts gain subdivisions or repeated fan slots.
|
|
19
|
+
Both ends use ear-clipped caps, supporting concave profiles without center fans.
|
|
20
|
+
Intermediate slices interpolate placed world vertices, never frame axes.
|
|
21
|
+
Transformed coordinates must fit finite Float32 mesh storage.
|
|
22
|
+
Path2 profiles must be closed; raw point collections are interpreted as closed.
|
|
23
|
+
|
|
24
|
+
## Parameters
|
|
25
|
+
|
|
26
|
+
<a id="stations"></a>
|
|
27
|
+
|
|
28
|
+
**`stations`** · readonly [`LoftMeshStation`](../geometry/LoftMeshStation.md)[] · Required
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<a id="options"></a>
|
|
33
|
+
|
|
34
|
+
**`options`** · [`LoftOptions`](../geometry/LoftOptions.md) · Optional
|
|
35
|
+
|
|
36
|
+
- [`correspondence`](../geometry/LoftOptions.md#correspondence) · [`LoftCorrespondence`](../geometry/LoftCorrespondence.md) \| readonly [`LoftCorrespondence`](../geometry/LoftCorrespondence.md)[] · Optional
|
|
37
|
+
|
|
38
|
+
One method or one per consecutive station gap. Omitted preserves known primitive landmarks, including circle/ellipse-to-rectangle corners, and otherwise uses direct correspondence with the supplied seams.
|
|
39
|
+
|
|
40
|
+
- [`distribution`](../geometry/LoftOptions.md#distribution) · `"perimeter"` \| `"segments"` · Optional
|
|
41
|
+
|
|
42
|
+
Extra points follow edge length or distribute equally across existing segments. Defaults to perimeter for direct/reindex, or segments when any distance method is selected; distance methods require segments.
|
|
43
|
+
|
|
44
|
+
- [`refine`](../geometry/LoftOptions.md#refine) · `number` \| readonly `number`[] · Optional
|
|
45
|
+
|
|
46
|
+
Positive integer point-density multiplier, uniformly or per input profile. Original vertices are retained. Defaults to one.
|
|
47
|
+
|
|
48
|
+
- [`slices`](../geometry/LoftOptions.md#slices) · `number` \| readonly `number`[] · Optional
|
|
49
|
+
|
|
50
|
+
Nonnegative count of world-linearly interpolated profiles, uniformly or per gap. Defaults to zero.
|
|
51
|
+
|
|
52
|
+
- [`resolution`](../geometry/LoftOptions.md#resolution) · [`GeometryResolution`](../geometry/GeometryResolution.md) · Optional
|
|
53
|
+
|
|
54
|
+
Physical curve policy for retained primitives, and maximum edge length for point data. Exact primitive curve counts take precedence.
|
|
55
|
+
|
|
56
|
+
- [`limits`](../geometry/LoftOptions.md#limits) · `Partial`\<[`ModelingLimits`](../geometry/ModelingLimits.md)\> · Optional
|
|
57
|
+
|
|
58
|
+
Explicit output and sampling budgets; native operations may only lower host ceilings.
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## Returns
|
|
63
|
+
|
|
64
|
+
[`TriangleMesh`](../geometry/TriangleMesh.md)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## Related APIs
|
|
68
|
+
|
|
69
|
+
- [LoftMeshStation](../geometry/LoftMeshStation.md)
|
|
70
|
+
- [LoftOptions](../geometry/LoftOptions.md)
|
|
71
|
+
- [TriangleMesh](../geometry/TriangleMesh.md)
|
|
72
|
+
|
|
73
|
+
## Guides
|
|
74
|
+
|
|
75
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
76
|
+
|
|
77
|
+
## Supported imports
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# optimizePlanarPatches
|
|
2
|
+
|
|
3
|
+
Improves pathological planar triangulation with bounded legal diagonal flips.
|
|
4
|
+
|
|
5
|
+
**optimizePlanarPatches**(`mesh`: [`TriangleMeshInput`](../geometry/TriangleMeshInput.md), `options?`: [`PlanarMeshOptimizationOptions`](../geometry/PlanarMeshOptimizationOptions.md)): [`PlanarMeshOptimizationResult`](../geometry/PlanarMeshOptimizationResult.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
The operation changes indices only: it never moves, adds, welds, or removes vertices; never
|
|
10
|
+
crosses a coplanar-patch boundary; and never changes the face count. Each accepted flip improves
|
|
11
|
+
a deterministic ordering of triangle angles, aspect ratio, diagonal locality, and local
|
|
12
|
+
incidence/valence concentration. Unsupported input or a failed final integrity check preserves the
|
|
13
|
+
original raw mesh object. Immutable inputs produce owned raw output buffers, including unchanged
|
|
14
|
+
results. Malformed buffers and the configured analysis complexity limit throw.
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
|
|
18
|
+
<a id="mesh"></a>
|
|
19
|
+
|
|
20
|
+
**`mesh`** · [`TriangleMeshInput`](../geometry/TriangleMeshInput.md) · Required
|
|
21
|
+
|
|
22
|
+
Closed, consistently wound indexed triangle mesh in arbitrary consistent units.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
<a id="options"></a>
|
|
27
|
+
|
|
28
|
+
**`options`** · [`PlanarMeshOptimizationOptions`](../geometry/PlanarMeshOptimizationOptions.md) · Optional
|
|
29
|
+
|
|
30
|
+
Patch eligibility, numeric tolerance, and deterministic work bounds.
|
|
31
|
+
|
|
32
|
+
- [`maxFlipAttempts`](../geometry/PlanarMeshOptimizationOptions.md#maxflipattempts) · `number` · Optional
|
|
33
|
+
|
|
34
|
+
Maximum attempted edge evaluations. By default this is twenty times the initial candidate
|
|
35
|
+
edge count, capped at `1000000`.
|
|
36
|
+
|
|
37
|
+
- [`maxEdgeRevisits`](../geometry/PlanarMeshOptimizationOptions.md#maxedgerevisits) · `number` · Optional
|
|
38
|
+
|
|
39
|
+
Maximum times one edge may be reconsidered after neighbouring flips. Defaults to `12`.
|
|
40
|
+
|
|
41
|
+
- [`maxPatchTriangles`](../geometry/PlanarMeshOptimizationOptions.md#maxpatchtriangles) · `number` · Optional
|
|
42
|
+
|
|
43
|
+
Maximum triangles allowed in one selected patch. Defaults to `50000`.
|
|
44
|
+
|
|
45
|
+
- [`maxProcessedTriangles`](../geometry/PlanarMeshOptimizationOptions.md#maxprocessedtriangles) · `number` · Optional
|
|
46
|
+
|
|
47
|
+
Maximum cumulative triangles across selected patches. Defaults to `200000`.
|
|
48
|
+
|
|
49
|
+
- [`minPatchTriangles`](../geometry/PlanarMeshOptimizationOptions.md#minpatchtriangles) · `number` · Optional
|
|
50
|
+
|
|
51
|
+
Minimum triangles required before a planar patch is eligible. Defaults to `8`.
|
|
52
|
+
|
|
53
|
+
- [`triggerMaxAspectRatio`](../geometry/PlanarMeshOptimizationOptions.md#triggermaxaspectratio) · `number` · Optional
|
|
54
|
+
|
|
55
|
+
Select patches whose worst normalized aspect ratio exceeds this value. Defaults to `12`.
|
|
56
|
+
|
|
57
|
+
- [`triggerMaxFanRatio`](../geometry/PlanarMeshOptimizationOptions.md#triggermaxfanratio) · `number` · Optional
|
|
58
|
+
|
|
59
|
+
Select patches whose largest per-vertex triangle share exceeds this ratio. Defaults to `0.2`.
|
|
60
|
+
|
|
61
|
+
- [`triggerMaxVertexTriangleIncidence`](../geometry/PlanarMeshOptimizationOptions.md#triggermaxvertextriangleincidence) · `number` · Optional
|
|
62
|
+
|
|
63
|
+
Select patches whose largest vertex triangle incidence exceeds this value. Defaults to `16`.
|
|
64
|
+
|
|
65
|
+
- [`triggerMinAngleDegrees`](../geometry/PlanarMeshOptimizationOptions.md#triggerminangledegrees) · `number` · Optional
|
|
66
|
+
|
|
67
|
+
Select patches whose smallest interior angle is below this many degrees. Defaults to `8`.
|
|
68
|
+
|
|
69
|
+
- [`maxTriangles`](../geometry/PlanarMeshOptimizationOptions.md#maxtriangles) · `number` · Optional
|
|
70
|
+
|
|
71
|
+
Maximum number of triangles inspected. Defaults to `200000`.
|
|
72
|
+
|
|
73
|
+
- [`tolerance`](../geometry/PlanarMeshOptimizationOptions.md#tolerance) · [`GeometryToleranceOptions`](../geometry/GeometryToleranceOptions.md) · Optional
|
|
74
|
+
|
|
75
|
+
Numeric comparison overrides; model coordinates are interpreted in their existing units.
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
## Returns
|
|
80
|
+
|
|
81
|
+
[`PlanarMeshOptimizationResult`](../geometry/PlanarMeshOptimizationResult.md)
|
|
82
|
+
|
|
83
|
+
Optimized connectivity and before/after diagnostics, or an unchanged safe fallback.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## Related APIs
|
|
87
|
+
|
|
88
|
+
- [PlanarMeshOptimizationOptions](../geometry/PlanarMeshOptimizationOptions.md)
|
|
89
|
+
- [PlanarMeshOptimizationResult](../geometry/PlanarMeshOptimizationResult.md)
|
|
90
|
+
- [TriangleMeshInput](../geometry/TriangleMeshInput.md)
|
|
91
|
+
|
|
92
|
+
## Guides
|
|
93
|
+
|
|
94
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
95
|
+
|
|
96
|
+
## Supported imports
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Package: `@metamesh/modeling@0.19.0`.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# preflightHeightfield
|
|
2
|
+
|
|
3
|
+
Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts.
|
|
4
|
+
|
|
5
|
+
**preflightHeightfield**(`options`: [`HeightfieldOptions`](../geometry/HeightfieldOptions.md), `limits?`: `Partial`\<`Pick`\<[`ModelingLimits`](../geometry/ModelingLimits.md), `"maxVertices"` \| `"maxTriangles"` \| `"maxBytes"`\>\>): [`HeightfieldPreflight`](../geometry/HeightfieldPreflight.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
This pure operation needs no engine and neither evaluates `height` nor allocates mesh buffers.
|
|
10
|
+
Successful preflight leaves height values, Float32 base storage, and generated mesh validity to
|
|
11
|
+
construction. `byteCount` covers position and index buffers, not total working memory.
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
<a id="options"></a>
|
|
16
|
+
|
|
17
|
+
**`options`** · [`HeightfieldOptions`](../geometry/HeightfieldOptions.md) · Required
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
<a id="limits"></a>
|
|
22
|
+
|
|
23
|
+
**`limits`** · `Partial`\<`Pick`\<[`ModelingLimits`](../geometry/ModelingLimits.md), `"maxVertices"` \| `"maxTriangles"` \| `"maxBytes"`\>\> · Optional
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Returns
|
|
28
|
+
|
|
29
|
+
[`HeightfieldPreflight`](../geometry/HeightfieldPreflight.md)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## Related APIs
|
|
33
|
+
|
|
34
|
+
- [HeightfieldOptions](../geometry/HeightfieldOptions.md)
|
|
35
|
+
- [HeightfieldPreflight](../geometry/HeightfieldPreflight.md)
|
|
36
|
+
- [ModelingLimits](../geometry/ModelingLimits.md)
|
|
37
|
+
|
|
38
|
+
## Guides
|
|
39
|
+
|
|
40
|
+
- [Exact counts and preflight guarantees](../../guides/resolution-and-inspection.md#check-preflight-guarantees)
|
|
41
|
+
|
|
42
|
+
## Supported imports
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Package: `@metamesh/modeling@0.19.0`.
|