@metamesh/modeling 0.17.0 → 0.18.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 +153 -0
- package/README.md +137 -163
- package/dist/api/engine.d.ts +128 -65
- package/dist/api/geometry.d.ts +246 -457
- package/dist/api/index.d.ts +394 -419
- package/dist/api/mesh.d.ts +460 -0
- package/dist/api/text.d.ts +1 -1
- package/dist/docs/guides/concepts.md +126 -86
- package/dist/docs/guides/fonts.md +11 -10
- package/dist/docs/guides/fundamentals.md +30 -29
- package/dist/docs/guides/generation.md +44 -31
- package/dist/docs/guides/hosting.md +122 -46
- package/dist/docs/guides/recipes.md +65 -54
- package/dist/docs/guides/standalone-model.md +8 -7
- package/dist/docs/manifest.json +2740 -902
- package/dist/docs/reference/engine/Export3mfOptions.md +19 -2
- package/dist/docs/reference/engine/ExportMeshPart.md +5 -39
- package/dist/docs/reference/engine/GenerationOptions.md +4 -3
- package/dist/docs/reference/engine/GeometryResource.md +13 -13
- package/dist/docs/reference/engine/ModelDependencies.md +1 -1
- package/dist/docs/reference/engine/ModelEngine.md +26 -23
- package/dist/docs/reference/engine/ModelEngineOptions.md +6 -1
- package/dist/docs/reference/engine/ModelPart.md +108 -0
- package/dist/docs/reference/engine/ModelResult.md +175 -0
- package/dist/docs/reference/engine/ModelRunArguments.md +28 -0
- package/dist/docs/reference/engine/ModelRunOptions.md +104 -0
- package/dist/docs/reference/engine/ModelSession.md +16 -16
- package/dist/docs/reference/engine/ModelingLimits.md +121 -0
- package/dist/docs/reference/engine/SessionOptions.md +13 -8
- package/dist/docs/reference/engine/categories/host-lifecycle.md +25 -15
- package/dist/docs/reference/engine/checkModel.md +43 -0
- package/dist/docs/reference/engine/createModelEngine.md +4 -13
- package/dist/docs/reference/engine/defaultModelingLimits.md +8 -1
- package/dist/docs/reference/engine/export3mf.md +55 -0
- package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
- package/dist/docs/reference/engine.md +8 -15
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +1 -1
- package/dist/docs/reference/geometry/Anchor3-type.md +1 -1
- package/dist/docs/reference/geometry/ArcCurve2.md +1 -1
- package/dist/docs/reference/geometry/ArcCurve3.md +1 -1
- package/dist/docs/reference/geometry/AttachOptions.md +1 -1
- package/dist/docs/reference/geometry/AxisAngleRotation3.md +1 -1
- package/dist/docs/reference/geometry/Bevel.md +18 -0
- package/dist/docs/reference/geometry/BevelSize.md +14 -0
- package/dist/docs/reference/geometry/Bounds2-type.md +1 -1
- package/dist/docs/reference/geometry/Bounds2Data.md +1 -1
- package/dist/docs/reference/geometry/Bounds2Input.md +1 -1
- package/dist/docs/reference/geometry/Bounds2Options.md +48 -8
- package/dist/docs/reference/geometry/Bounds3-type.md +1 -1
- package/dist/docs/reference/geometry/Bounds3Data.md +1 -1
- package/dist/docs/reference/geometry/Bounds3Input.md +1 -1
- package/dist/docs/reference/geometry/Bounds3Options.md +48 -8
- package/dist/docs/reference/geometry/BoundsFit2.md +1 -1
- package/dist/docs/reference/geometry/BoundsFit3.md +1 -1
- package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorFace.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +4 -4
- package/dist/docs/reference/geometry/BoxEdge.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/geometry/BoxOptions.md +3 -3
- package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
- package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -3
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularSampling.md +1 -1
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
- package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
- package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/Contour.md +1 -1
- package/dist/docs/reference/geometry/ContourCurve.md +1 -1
- package/dist/docs/reference/geometry/ContourPoint.md +1 -1
- package/dist/docs/reference/geometry/ContourSegment.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +1 -1
- package/dist/docs/reference/geometry/Curve2.md +1 -1
- package/dist/docs/reference/geometry/Curve3.md +1 -1
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +1 -1
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +3 -3
- package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearSpec.md +1 -1
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
- package/dist/docs/reference/geometry/EndTreatments.md +1 -1
- package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +130 -0
- package/dist/docs/reference/geometry/ExtrudeOptions.md +17 -9
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +3 -3
- package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
- package/dist/docs/reference/geometry/Frame3.md +1 -1
- package/dist/docs/reference/geometry/GeometryError.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/geometry/GridPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldOptions.md +3 -2
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +1 -1
- package/dist/docs/reference/geometry/ImmutableBuffer-type.md +108 -0
- package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +43 -0
- package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +52 -83
- package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeInterval.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/KnuckleHingeSpec.md +1 -1
- package/dist/docs/reference/geometry/LineCurve2.md +1 -1
- package/dist/docs/reference/geometry/LineCurve3.md +1 -1
- package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
- package/dist/docs/reference/geometry/LoftOptions.md +3 -3
- package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
- package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
- package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
- package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
- package/dist/docs/reference/geometry/NumericArray.md +14 -0
- package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
- package/dist/docs/reference/geometry/Path2-type.md +1 -1
- package/dist/docs/reference/geometry/Path2Data.md +1 -1
- package/dist/docs/reference/geometry/Path2Input.md +1 -1
- package/dist/docs/reference/geometry/Path3-type.md +1 -1
- package/dist/docs/reference/geometry/Path3Data.md +1 -1
- package/dist/docs/reference/geometry/Path3Input.md +1 -1
- package/dist/docs/reference/geometry/PathFrame.md +1 -1
- package/dist/docs/reference/geometry/PathLocation.md +1 -1
- package/dist/docs/reference/geometry/PathNormalGuide.md +1 -1
- package/dist/docs/reference/geometry/PathOptions.md +1 -1
- package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/PathPlacement.md +1 -1
- package/dist/docs/reference/geometry/PathResamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/Pivot2Options.md +1 -1
- package/dist/docs/reference/geometry/Pivot3Options.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +1 -1
- package/dist/docs/reference/geometry/PolygonData.md +1 -1
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -3
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/Profile.md +1 -1
- package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
- package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
- package/dist/docs/reference/geometry/ProfileSpan2.md +1 -1
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
- package/dist/docs/reference/geometry/RackPitchSpec.md +1 -1
- package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/RadialSizing.md +1 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/RegionData.md +1 -1
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +1 -1
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +2 -2
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
- package/dist/docs/reference/geometry/SampledCurve2.md +1 -1
- package/dist/docs/reference/geometry/SampledCurve3.md +1 -1
- package/dist/docs/reference/geometry/SampledThreadHelices.md +1 -1
- package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
- package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
- package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/SphereOptions.md +1 -1
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/StarContourOptions.md +74 -0
- package/dist/docs/reference/geometry/StrokeCap.md +1 -1
- package/dist/docs/reference/geometry/StrokeJoin.md +1 -1
- package/dist/docs/reference/geometry/StrokeOptions.md +1 -1
- package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
- package/dist/docs/reference/geometry/SweepOptions.md +1 -1
- package/dist/docs/reference/geometry/SweepOrientation.md +1 -1
- package/dist/docs/reference/geometry/ThreadBevelOptions.md +7 -30
- package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
- package/dist/docs/reference/geometry/ThreadHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfile-type.md +2 -2
- package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/{HelicalThreadRidgeMeshOptions.md → ThreadRidgeOptions.md} +4 -4
- package/dist/docs/reference/geometry/ThreadRole.md +1 -1
- package/dist/docs/reference/geometry/{HelicalThreadSolidMeshOptions.md → ThreadSolidOptions.md} +18 -65
- package/dist/docs/reference/geometry/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +2 -2
- package/dist/docs/reference/geometry/ThreadedNutOptions.md +75 -86
- package/dist/docs/reference/geometry/ThreadedNutPreflight.md +18 -6
- package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadedRodOptions.md +52 -83
- package/dist/docs/reference/geometry/TorusOptions.md +1 -1
- package/dist/docs/reference/geometry/Transform2-type.md +1 -1
- package/dist/docs/reference/geometry/Transform2Data.md +1 -1
- package/dist/docs/reference/geometry/Transform2Input.md +1 -1
- package/dist/docs/reference/geometry/Transform3-type.md +1 -1
- package/dist/docs/reference/geometry/Transform3Data.md +1 -1
- package/dist/docs/reference/geometry/Transform3Input.md +1 -1
- package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TriangleMesh.md +3 -8
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +10 -4
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +2 -2
- package/dist/docs/reference/geometry/TriangleMeshInput.md +19 -0
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +3 -3
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +131 -0
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TubeOptions.md +10 -86
- package/dist/docs/reference/geometry/Vector2-type.md +1 -1
- package/dist/docs/reference/geometry/Vector2Data.md +1 -1
- package/dist/docs/reference/geometry/Vector2Input.md +1 -1
- package/dist/docs/reference/geometry/Vector3-type.md +1 -1
- package/dist/docs/reference/geometry/Vector3Data.md +1 -1
- package/dist/docs/reference/geometry/Vector3Input.md +1 -1
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +3 -3
- package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
- package/dist/docs/reference/geometry/add2.md +1 -1
- package/dist/docs/reference/geometry/add3.md +1 -1
- package/dist/docs/reference/geometry/anchor3.md +1 -1
- package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
- package/dist/docs/reference/geometry/applyTransformDirection3.md +1 -1
- package/dist/docs/reference/geometry/applyTransformPoint3.md +1 -1
- package/dist/docs/reference/geometry/attachmentTransform3.md +1 -1
- package/dist/docs/reference/geometry/bounds2.md +4 -4
- package/dist/docs/reference/geometry/bounds3.md +4 -4
- package/dist/docs/reference/geometry/boundsCenter.md +1 -1
- package/dist/docs/reference/geometry/boundsSize.md +1 -1
- package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
- package/dist/docs/reference/geometry/categories/bounds-layout.md +3 -3
- package/dist/docs/reference/geometry/categories/curves-paths.md +2 -2
- package/dist/docs/reference/geometry/categories/mechanical.md +8 -10
- package/dist/docs/reference/geometry/categories/meshes.md +19 -32
- package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
- package/dist/docs/reference/geometry/categories/primitive-options.md +3 -3
- package/dist/docs/reference/geometry/categories/profiles-regions.md +5 -4
- package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -3
- package/dist/docs/reference/geometry/categories/transforms-math.md +3 -2
- package/dist/docs/reference/geometry/categories/vector-import.md +3 -3
- package/dist/docs/reference/geometry/circleContour.md +1 -1
- package/dist/docs/reference/geometry/closeToAxis.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
- package/dist/docs/reference/geometry/composeTransform3.md +1 -1
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +1 -1
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +1 -1
- package/dist/docs/reference/geometry/contourContainsPoint.md +1 -1
- package/dist/docs/reference/geometry/cross2.md +1 -1
- package/dist/docs/reference/geometry/cross3.md +1 -1
- package/dist/docs/reference/geometry/cylinderAnchor3.md +2 -2
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/distance2.md +1 -1
- package/dist/docs/reference/geometry/distance3.md +1 -1
- package/dist/docs/reference/geometry/distributeAlongPath.md +1 -1
- package/dist/docs/reference/geometry/dot2.md +1 -1
- package/dist/docs/reference/geometry/dot3.md +1 -1
- package/dist/docs/reference/geometry/ellipseContour.md +1 -1
- package/dist/docs/reference/geometry/eulerTransform3.md +1 -1
- package/dist/docs/reference/geometry/fitBounds.md +1 -1
- package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
- package/dist/docs/reference/geometry/frameTransform3.md +1 -1
- package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +1 -1
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/gridPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/immutableBuffer.md +49 -0
- package/dist/docs/reference/geometry/inverseTransform3.md +1 -1
- package/dist/docs/reference/geometry/isGeometryError.md +1 -1
- package/dist/docs/reference/geometry/layoutRow.md +1 -1
- package/dist/docs/reference/geometry/length2.md +1 -1
- package/dist/docs/reference/geometry/length3.md +1 -1
- package/dist/docs/reference/geometry/lerp2.md +1 -1
- package/dist/docs/reference/geometry/lerp3.md +1 -1
- package/dist/docs/reference/geometry/linearPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/matchProfiles.md +1 -1
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +1 -1
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
- package/dist/docs/reference/geometry/normalize2.md +1 -1
- package/dist/docs/reference/geometry/normalize3.md +1 -1
- package/dist/docs/reference/geometry/normalizeContour.md +1 -1
- package/dist/docs/reference/geometry/normalizePolygon.md +1 -1
- package/dist/docs/reference/geometry/normalizeRegion.md +1 -1
- package/dist/docs/reference/geometry/path2.md +1 -1
- package/dist/docs/reference/geometry/path3.md +1 -1
- package/dist/docs/reference/geometry/pathPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +18 -25
- package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedNut.md +24 -26
- package/dist/docs/reference/geometry/preflightThreadedRod.md +18 -25
- package/dist/docs/reference/geometry/projectOntoPlane3.md +1 -1
- package/dist/docs/reference/geometry/radialPatternTransforms.md +1 -1
- package/dist/docs/reference/geometry/rectangleContour.md +10 -5
- package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
- package/dist/docs/reference/geometry/regionArea.md +1 -1
- package/dist/docs/reference/geometry/regionBounds.md +1 -1
- package/dist/docs/reference/geometry/regularPolygonContour.md +2 -2
- package/dist/docs/reference/geometry/resamplePolyline2.md +1 -1
- package/dist/docs/reference/geometry/resamplePolyline3.md +1 -1
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveCircularSampling.md +1 -1
- package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +1 -1
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/resolveKnuckleHinge.md +1 -1
- package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
- package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/rotate2.md +1 -1
- package/dist/docs/reference/geometry/rotationTransform3.md +1 -1
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +1 -1
- package/dist/docs/reference/geometry/sampleContour.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleHelix.md +1 -1
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
- package/dist/docs/reference/geometry/sampleSideProfile.md +1 -1
- package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
- package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
- package/dist/docs/reference/geometry/scale2.md +1 -1
- package/dist/docs/reference/geometry/scale3.md +1 -1
- package/dist/docs/reference/geometry/scaleTransform3.md +1 -1
- package/dist/docs/reference/geometry/signedContourArea.md +1 -1
- package/dist/docs/reference/geometry/starContour.md +17 -15
- package/dist/docs/reference/geometry/strokeRegionData.md +1 -1
- package/dist/docs/reference/geometry/subtract2.md +1 -1
- package/dist/docs/reference/geometry/subtract3.md +1 -1
- package/dist/docs/reference/geometry/threadProfile.md +1 -1
- package/dist/docs/reference/geometry/transform2.md +1 -1
- package/dist/docs/reference/geometry/transform3.md +1 -1
- package/dist/docs/reference/geometry/transformDeterminant3.md +1 -1
- package/dist/docs/reference/geometry/transformRegionData.md +1 -1
- package/dist/docs/reference/geometry/translationTransform3.md +1 -1
- package/dist/docs/reference/geometry/triangulateContour.md +1 -1
- package/dist/docs/reference/geometry/validateRigidTransform3.md +35 -0
- package/dist/docs/reference/geometry/validateTransform3.md +1 -1
- package/dist/docs/reference/geometry/vector2.md +1 -1
- package/dist/docs/reference/geometry/vector3.md +1 -1
- package/dist/docs/reference/geometry.md +9 -9
- package/dist/docs/reference/mesh/AcmeThreadProfileSpec.md +79 -0
- package/dist/docs/reference/mesh/Bevel.md +18 -0
- package/dist/docs/reference/mesh/BevelSize.md +14 -0
- package/dist/docs/reference/mesh/Bounds2.md +125 -0
- package/dist/docs/reference/mesh/Bounds2Data.md +43 -0
- package/dist/docs/reference/mesh/Bounds2Input.md +19 -0
- package/dist/docs/reference/mesh/Bounds3.md +125 -0
- package/dist/docs/reference/mesh/Bounds3Data.md +43 -0
- package/dist/docs/reference/mesh/Bounds3Input.md +19 -0
- package/dist/docs/reference/mesh/ButtressPressureFlankSide.md +14 -0
- package/dist/docs/reference/mesh/ButtressThreadProfileSpec.md +97 -0
- package/dist/docs/reference/mesh/CircularPrimitiveOptions.md +60 -0
- package/dist/docs/reference/mesh/CurveSamplingOptions.md +69 -0
- package/dist/docs/reference/mesh/CustomThreadProfileSpec.md +77 -0
- package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +129 -0
- package/dist/docs/reference/mesh/ExtrusionSamplingOptions.md +81 -0
- package/dist/docs/reference/mesh/Frame3.md +62 -0
- package/dist/docs/reference/mesh/GeometryResolution.md +74 -0
- package/dist/docs/reference/mesh/GeometrySamplingLimits.md +66 -0
- package/dist/docs/reference/mesh/GeometryToleranceOptions.md +46 -0
- package/dist/docs/reference/mesh/HeightfieldMeshLimits.md +18 -0
- package/dist/docs/reference/mesh/HeightfieldOptions.md +72 -0
- package/dist/docs/reference/mesh/HeightfieldPreflight.md +58 -0
- package/dist/docs/reference/mesh/ImmutableBuffer.md +108 -0
- package/dist/docs/reference/mesh/ImmutableTriangleMesh.md +43 -0
- package/dist/docs/reference/mesh/LoftCorrespondence.md +24 -0
- package/dist/docs/reference/mesh/LoftMeshStation.md +31 -0
- package/dist/docs/reference/mesh/LoftOptions.md +88 -0
- package/dist/docs/reference/mesh/LoftPlacement.md +70 -0
- package/dist/docs/reference/mesh/ModelingLimits.md +130 -0
- package/dist/docs/reference/mesh/NumericArray.md +14 -0
- package/dist/docs/reference/mesh/Path2.md +197 -0
- package/dist/docs/reference/mesh/Path2Data.md +50 -0
- package/dist/docs/reference/mesh/Path2Input.md +20 -0
- package/dist/docs/reference/mesh/Path3.md +197 -0
- package/dist/docs/reference/mesh/Path3Data.md +50 -0
- package/dist/docs/reference/mesh/Path3Input.md +20 -0
- package/dist/docs/reference/mesh/PathLocation.md +69 -0
- package/dist/docs/reference/mesh/PathNormalGuide.md +43 -0
- package/dist/docs/reference/mesh/PathResamplingOptions.md +84 -0
- package/dist/docs/reference/mesh/Pivot2Options.md +26 -0
- package/dist/docs/reference/mesh/Pivot3Options.md +26 -0
- package/dist/docs/reference/mesh/PlanarMeshOptimizationFallbackReason.md +14 -0
- package/dist/docs/reference/mesh/PlanarMeshOptimizationOptions.md +160 -0
- package/dist/docs/reference/mesh/PlanarMeshOptimizationResult.md +124 -0
- package/dist/docs/reference/mesh/PlanarPatchQuality.md +194 -0
- package/dist/docs/reference/mesh/RevolveOptions.md +91 -0
- package/dist/docs/reference/mesh/SolidMeshValidationOptions.md +38 -0
- package/dist/docs/reference/mesh/SquareThreadProfileSpec.md +79 -0
- package/dist/docs/reference/mesh/SweepOptions.md +113 -0
- package/dist/docs/reference/mesh/SweepOrientation.md +113 -0
- package/dist/docs/reference/mesh/ThreadEndStyle.md +14 -0
- package/dist/docs/reference/mesh/ThreadEndTreatmentOptions.md +117 -0
- package/dist/docs/reference/mesh/ThreadHandedness.md +14 -0
- package/dist/docs/reference/mesh/ThreadLeadInEnvelope.md +14 -0
- package/dist/docs/reference/mesh/ThreadLeadInShape.md +14 -0
- package/dist/docs/reference/mesh/ThreadProfile.md +86 -0
- package/dist/docs/reference/mesh/ThreadProfileBaseSpec.md +53 -0
- package/dist/docs/reference/mesh/ThreadProfileSpec.md +23 -0
- package/dist/docs/reference/{model/HelicalThreadRidgeMeshOptions.md → mesh/ThreadRidgeOptions.md} +14 -10
- package/dist/docs/reference/mesh/ThreadSolidOptions.md +222 -0
- package/dist/docs/reference/mesh/ThreadSolidPreflight.md +58 -0
- package/dist/docs/reference/mesh/Transform2.md +256 -0
- package/dist/docs/reference/mesh/Transform2Data.md +14 -0
- package/dist/docs/reference/mesh/Transform2Input.md +19 -0
- package/dist/docs/reference/mesh/Transform3.md +296 -0
- package/dist/docs/reference/mesh/Transform3Data.md +17 -0
- package/dist/docs/reference/mesh/Transform3Input.md +19 -0
- package/dist/docs/reference/mesh/TrapezoidalThreadProfileSpec.md +96 -0
- package/dist/docs/reference/mesh/TriangleMesh.md +34 -0
- package/dist/docs/reference/mesh/TriangleMeshAnalysis.md +129 -0
- package/dist/docs/reference/mesh/TriangleMeshAnalysisOptions.md +79 -0
- package/dist/docs/reference/mesh/TriangleMeshInput.md +19 -0
- package/dist/docs/reference/mesh/TriangleMeshMeasurements.md +79 -0
- package/dist/docs/reference/mesh/TriangleMeshQualityOptions.md +43 -0
- package/dist/docs/reference/mesh/TriangleMeshQualityReport.md +194 -0
- package/dist/docs/reference/mesh/TriangleMeshSignature.md +111 -0
- package/dist/docs/reference/mesh/TriangleMeshSignatureOptions.md +46 -0
- package/dist/docs/reference/mesh/TriangleMeshSignatureTolerances.md +34 -0
- package/dist/docs/reference/mesh/TriangleMeshTopologyAnalysis.md +131 -0
- package/dist/docs/reference/mesh/TriangleMeshValidationOptions.md +55 -0
- package/dist/docs/reference/mesh/TriangularThreadProfileSpec.md +95 -0
- package/dist/docs/reference/mesh/Vector2.md +270 -0
- package/dist/docs/reference/mesh/Vector2Data.md +14 -0
- package/dist/docs/reference/mesh/Vector2Input.md +19 -0
- package/dist/docs/reference/mesh/Vector3.md +282 -0
- package/dist/docs/reference/mesh/Vector3Data.md +14 -0
- package/dist/docs/reference/mesh/Vector3Input.md +19 -0
- package/dist/docs/reference/mesh/analyze.md +96 -0
- package/dist/docs/reference/{geometry/analyzeTriangleMeshQuality.md → mesh/analyzeQuality.md} +9 -9
- package/dist/docs/reference/mesh/bounds.md +39 -0
- package/dist/docs/reference/mesh/categories/operations.md +147 -0
- package/dist/docs/reference/{geometry/computeTriangleMeshCentroid.md → mesh/centroid.md} +7 -7
- package/dist/docs/reference/mesh/extrude.md +73 -0
- package/dist/docs/reference/{geometry/heightfieldMesh.md → mesh/heightfield.md} +7 -8
- package/dist/docs/reference/mesh/immutable.md +47 -0
- package/dist/docs/reference/{geometry/joinTriangleMeshes.md → mesh/join.md} +7 -6
- package/dist/docs/reference/{geometry/loftMesh.md → mesh/loft.md} +15 -15
- package/dist/docs/reference/mesh/optimizePlanarPatches.md +96 -0
- package/dist/docs/reference/{geometry → mesh}/preflightHeightfield.md +5 -6
- package/dist/docs/reference/mesh/preflightThreadSolid.md +90 -0
- package/dist/docs/reference/{geometry/reverseTriangleMesh.md → mesh/reverse.md} +6 -5
- package/dist/docs/reference/{geometry/revolveMesh.md → mesh/revolve.md} +13 -13
- package/dist/docs/reference/{geometry/computeTriangleMeshSignature.md → mesh/signature.md} +11 -11
- package/dist/docs/reference/mesh/sweep.md +86 -0
- package/dist/docs/reference/mesh/threadRidge.md +72 -0
- package/dist/docs/reference/mesh/threadSolid.md +90 -0
- package/dist/docs/reference/{geometry/transformTriangleMesh.md → mesh/transform.md} +7 -6
- package/dist/docs/reference/{geometry/validateTriangleMesh.md → mesh/validate.md} +17 -11
- package/dist/docs/reference/{geometry/validateSolidMesh.md → mesh/validateSolid.md} +15 -9
- package/dist/docs/reference/mesh.md +21 -0
- package/dist/docs/reference/model/AcmeThreadProfileSpec.md +80 -0
- package/dist/docs/reference/model/Anchor3.md +1 -1
- package/dist/docs/reference/model/AttachOptions.md +1 -1
- package/dist/docs/reference/model/Bevel.md +19 -0
- package/dist/docs/reference/model/{ThreadedNutBevel.md → BevelSize.md} +4 -4
- package/dist/docs/reference/model/Bounds2-type.md +1 -1
- package/dist/docs/reference/model/Bounds2Data.md +1 -1
- package/dist/docs/reference/model/Bounds2Input.md +1 -1
- package/dist/docs/reference/model/Bounds2Options.md +48 -8
- package/dist/docs/reference/model/Bounds3-type.md +1 -1
- package/dist/docs/reference/model/Bounds3Data.md +1 -1
- package/dist/docs/reference/model/Bounds3Input.md +1 -1
- package/dist/docs/reference/model/Bounds3Options.md +48 -8
- package/dist/docs/reference/model/BoxEdge.md +1 -1
- package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/model/BoxOptions.md +3 -3
- package/dist/docs/reference/model/ButtressPressureFlankSide.md +15 -0
- package/dist/docs/reference/model/ButtressThreadProfileSpec.md +98 -0
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/CircleContourOptions.md +1 -1
- package/dist/docs/reference/model/CircleOptions.md +1 -1
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -3
- package/dist/docs/reference/model/Computed.md +7 -3
- package/dist/docs/reference/model/ComputedValue.md +1 -1
- package/dist/docs/reference/model/Contour.md +1 -1
- package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/model/CorrespondingContour.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/model/CurveSamplingOptions.md +68 -0
- package/dist/docs/reference/model/CustomThreadProfileSpec.md +78 -0
- package/dist/docs/reference/model/CylinderOptions.md +1 -1
- package/dist/docs/reference/model/DiagnosticOptions.md +15 -1
- package/dist/docs/reference/model/EdgeTreatment.md +1 -1
- package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
- package/dist/docs/reference/model/EllipseOptions.md +1 -1
- package/dist/docs/reference/model/EndTreatments.md +1 -1
- package/dist/docs/reference/model/ExtrudeMeshOptions.md +133 -0
- package/dist/docs/reference/model/ExtrudeOptions.md +17 -8
- package/dist/docs/reference/model/ExtrusionSamplingOptions.md +84 -0
- package/dist/docs/reference/model/Frame3.md +1 -1
- package/dist/docs/reference/model/GenerateCallback.md +5 -5
- package/dist/docs/reference/model/GenerateContext.md +15 -63
- package/dist/docs/reference/model/GenerationDiagnostic.md +13 -1
- package/dist/docs/reference/model/GenerationError.md +1 -1
- package/dist/docs/reference/model/GeometryError.md +102 -0
- package/dist/docs/reference/model/GeometryErrorCode.md +15 -0
- package/dist/docs/reference/model/GeometryErrorContext.md +35 -0
- package/dist/docs/reference/model/GeometryResolution.md +1 -1
- package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/model/GridPatternOptions.md +1 -1
- package/dist/docs/reference/model/HeightfieldOptions.md +3 -2
- package/dist/docs/reference/model/HoleCutterOptions.md +1 -1
- package/dist/docs/reference/model/HoleCutterOverrun.md +1 -1
- package/dist/docs/reference/model/HoleCutterRecess.md +1 -1
- package/dist/docs/reference/model/HullOptions.md +1 -1
- package/dist/docs/reference/model/ImmutableBuffer-type.md +27 -3
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +8 -3
- package/dist/docs/reference/model/ImmutableValue.md +20 -0
- package/dist/docs/reference/model/ImplicitOptions.md +1 -1
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +54 -84
- package/dist/docs/reference/model/KnuckleHinge-type.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeOptions.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeSpec.md +1 -1
- package/dist/docs/reference/model/KnuckleHingeWeb.md +1 -1
- package/dist/docs/reference/model/LinearPatternOptions.md +1 -1
- package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/model/LoftOptions.md +3 -3
- package/dist/docs/reference/model/LoftPlacement.md +1 -1
- package/dist/docs/reference/model/LoftStation.md +1 -1
- package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/model/ModelProgram.md +2 -2
- package/dist/docs/reference/model/ModelingLimits.md +1 -1
- package/dist/docs/reference/model/NumericArray.md +1 -1
- package/dist/docs/reference/model/{GeneratedPart.md → PartDeclaration.md} +8 -23
- package/dist/docs/reference/model/PartGeometry.md +2 -2
- package/dist/docs/reference/model/PartOptions.md +8 -19
- package/dist/docs/reference/model/Path2-type.md +1 -1
- package/dist/docs/reference/model/Path2Data.md +1 -1
- package/dist/docs/reference/model/Path2Input.md +1 -1
- package/dist/docs/reference/model/Path3-type.md +1 -1
- package/dist/docs/reference/model/Path3Data.md +1 -1
- package/dist/docs/reference/model/Path3Input.md +1 -1
- package/dist/docs/reference/model/PathLocation.md +1 -1
- package/dist/docs/reference/model/PathNormalGuide.md +1 -1
- package/dist/docs/reference/model/PathOptions.md +1 -1
- package/dist/docs/reference/model/PathPatternOptions.md +1 -1
- package/dist/docs/reference/model/PathResamplingOptions.md +7 -6
- package/dist/docs/reference/model/PatternSource.md +1 -1
- package/dist/docs/reference/model/Pivot2Options.md +1 -1
- package/dist/docs/reference/model/Pivot3Options.md +1 -1
- package/dist/docs/reference/model/PlaneOptions.md +1 -1
- package/dist/docs/reference/model/PolygonData.md +1 -1
- package/dist/docs/reference/model/PolygonOptions.md +1 -1
- package/dist/docs/reference/model/PrimitiveAttachment.md +1 -3
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/model/Profile.md +1 -1
- package/dist/docs/reference/model/ProfileComponent2.md +1 -1
- package/dist/docs/reference/model/ProfileContour2.md +1 -1
- package/dist/docs/reference/model/ProfileSpan2.md +1 -1
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/RadialPatternOptions.md +1 -1
- package/dist/docs/reference/model/RadialSizing.md +1 -1
- package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
- package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/model/RectangleOptions.md +3 -3
- package/dist/docs/reference/model/RegionData.md +1 -1
- package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
- package/dist/docs/reference/model/RevolveOptions.md +2 -2
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Section.md +131 -6
- package/dist/docs/reference/model/SectionHullOptions.md +1 -1
- package/dist/docs/reference/model/SectionInspection.md +5 -17
- package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
- package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Solid.md +245 -8
- package/dist/docs/reference/model/SolidInspection.md +5 -17
- package/dist/docs/reference/model/SolidSegmentHit.md +5 -1
- package/dist/docs/reference/model/SphereOptions.md +1 -1
- package/dist/docs/reference/model/SquareThreadProfileSpec.md +80 -0
- package/dist/docs/reference/model/StarContourOptions.md +81 -0
- package/dist/docs/reference/model/StarOptions.md +38 -16
- package/dist/docs/reference/model/StrokeCap.md +1 -1
- package/dist/docs/reference/model/StrokeJoin.md +1 -1
- package/dist/docs/reference/model/StrokeOptions.md +1 -1
- package/dist/docs/reference/model/SvgOrigin.md +1 -1
- package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
- package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
- package/dist/docs/reference/model/SweepOptions.md +1 -1
- package/dist/docs/reference/model/SweepOrientation.md +1 -1
- package/dist/docs/reference/model/TextSectionOptions.md +1 -1
- package/dist/docs/reference/model/ThreadBevelOptions.md +35 -0
- package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/model/ThreadHandedness.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/model/ThreadProfile.md +2 -2
- package/dist/docs/reference/model/ThreadProfileBaseSpec.md +54 -0
- package/dist/docs/reference/model/ThreadProfileSpec.md +24 -0
- package/dist/docs/reference/model/ThreadRidgeOptions.md +126 -4
- package/dist/docs/reference/model/{HelicalThreadSolidMeshPreflight.md → ThreadSolidPreflight.md} +2 -2
- package/dist/docs/reference/model/ThreadedNutOptions.md +75 -86
- package/dist/docs/reference/model/ThreadedNutPreflight.md +18 -6
- package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/model/ThreadedRodOptions.md +54 -84
- package/dist/docs/reference/model/TorusOptions.md +1 -1
- package/dist/docs/reference/model/Transform2-type.md +1 -1
- package/dist/docs/reference/model/Transform2Data.md +1 -1
- package/dist/docs/reference/model/Transform2Input.md +1 -1
- package/dist/docs/reference/model/Transform3-type.md +1 -1
- package/dist/docs/reference/model/Transform3Data.md +1 -1
- package/dist/docs/reference/model/Transform3Input.md +1 -1
- package/dist/docs/reference/model/TrapezoidalThreadProfileSpec.md +97 -0
- package/dist/docs/reference/model/TriangleMesh.md +3 -11
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +10 -4
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/model/TriangleMeshTopologyAnalysis.md +131 -0
- package/dist/docs/reference/model/TriangularThreadProfileSpec.md +96 -0
- package/dist/docs/reference/model/TubeOptions.md +10 -86
- package/dist/docs/reference/model/Vector2-type.md +1 -1
- package/dist/docs/reference/model/Vector2Data.md +1 -1
- package/dist/docs/reference/model/Vector2Input.md +1 -1
- package/dist/docs/reference/model/Vector3-type.md +1 -1
- package/dist/docs/reference/model/Vector3Data.md +1 -1
- package/dist/docs/reference/model/Vector3Input.md +1 -1
- package/dist/docs/reference/model/VectorTextLayout.md +1 -1
- package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/model/bounds2.md +4 -4
- package/dist/docs/reference/model/bounds3.md +4 -4
- package/dist/docs/reference/model/box.md +2 -2
- package/dist/docs/reference/model/categories/boolean-operations.md +6 -10
- package/dist/docs/reference/model/categories/bounded-surfaces.md +1 -1
- package/dist/docs/reference/model/categories/bounds.md +2 -2
- package/dist/docs/reference/model/categories/contracts.md +3 -5
- package/dist/docs/reference/model/categories/core-values-errors.md +17 -3
- package/dist/docs/reference/model/categories/explicit-profiles.md +1 -1
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +10 -8
- package/dist/docs/reference/model/categories/generation.md +8 -8
- package/dist/docs/reference/model/categories/hinges.md +1 -1
- package/dist/docs/reference/model/categories/mesh-inspection.md +15 -6
- package/dist/docs/reference/model/categories/paths.md +4 -3
- package/dist/docs/reference/model/categories/primitives.md +5 -5
- package/dist/docs/reference/model/categories/resolution.md +1 -1
- package/dist/docs/reference/model/categories/sections.md +4 -3
- package/dist/docs/reference/model/categories/threads.md +16 -6
- package/dist/docs/reference/model/categories/transforms-placement.md +2 -3
- package/dist/docs/reference/model/circle.md +1 -1
- package/dist/docs/reference/model/cylinder.md +1 -1
- package/dist/docs/reference/model/ellipse.md +1 -1
- package/dist/docs/reference/model/extrude.md +5 -4
- package/dist/docs/reference/model/generate.md +4 -4
- package/dist/docs/reference/model/gridPattern.md +1 -1
- package/dist/docs/reference/model/heightfield.md +1 -1
- package/dist/docs/reference/model/holeCutter.md +12 -2
- package/dist/docs/reference/model/hull.md +1 -1
- package/dist/docs/reference/model/immutableBuffer.md +5 -4
- package/dist/docs/reference/model/implicit.md +1 -1
- package/dist/docs/reference/model/internalThreadCutter.md +12 -20
- package/dist/docs/reference/model/intersect.md +3 -3
- package/dist/docs/reference/model/isGeometryError.md +34 -0
- package/dist/docs/reference/model/knuckleHinge.md +2 -2
- package/dist/docs/reference/model/linearPattern.md +1 -1
- package/dist/docs/reference/model/loft.md +6 -5
- package/dist/docs/reference/model/matchProfiles.md +1 -1
- package/dist/docs/reference/model/minkowskiSum.md +1 -1
- package/dist/docs/reference/model/path2.md +1 -1
- package/dist/docs/reference/model/path3.md +1 -1
- package/dist/docs/reference/model/pathPattern.md +1 -1
- package/dist/docs/reference/model/polygon.md +1 -1
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +15 -23
- package/dist/docs/reference/model/preflightThreadedNut.md +22 -25
- package/dist/docs/reference/model/preflightThreadedRod.md +15 -23
- package/dist/docs/reference/model/radialPattern.md +1 -1
- package/dist/docs/reference/model/rectangle.md +2 -2
- package/dist/docs/reference/model/regularPolygon.md +1 -1
- package/dist/docs/reference/model/revolve.md +6 -5
- package/dist/docs/reference/model/solidFromMesh.md +7 -6
- package/dist/docs/reference/model/sphere.md +1 -1
- package/dist/docs/reference/model/star.md +7 -7
- package/dist/docs/reference/model/stroke.md +1 -1
- package/dist/docs/reference/model/svgPathSection.md +1 -1
- package/dist/docs/reference/model/svgSection.md +1 -1
- package/dist/docs/reference/model/sweep.md +5 -4
- package/dist/docs/reference/model/textSection.md +1 -1
- package/dist/docs/reference/model/threadRidge.md +14 -14
- package/dist/docs/reference/model/threadedNut.md +22 -25
- package/dist/docs/reference/model/threadedRod.md +12 -20
- package/dist/docs/reference/model/torus.md +1 -1
- package/dist/docs/reference/model/transform2.md +1 -1
- package/dist/docs/reference/model/transform3.md +1 -1
- package/dist/docs/reference/model/tube.md +1 -36
- package/dist/docs/reference/model/union.md +3 -3
- package/dist/docs/reference/model/vector2.md +1 -1
- package/dist/docs/reference/model/vector3.md +1 -1
- package/dist/docs/reference/model.md +15 -19
- package/dist/docs/reference/text/Bounds2Data.md +1 -1
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
- package/dist/docs/reference/text/Vector2Data.md +1 -1
- package/dist/docs/reference/text/VectorFont.md +7 -7
- package/dist/docs/reference/text/VectorFontOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
- package/dist/docs/reference/text/VectorTextLayout.md +1 -1
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +3 -3
- package/dist/docs/reference/text/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/text/VectorTextOptions.md +1 -1
- package/dist/docs/reference/text/categories/font-preparation.md +3 -3
- package/dist/docs/reference/text/prepareVectorFont.md +1 -1
- package/dist/docs/reference/text.md +4 -4
- package/dist/engine/execution.js +10 -6
- package/dist/engine/export-3mf.js +22 -115
- package/dist/engine/finalization.js +10 -10
- package/dist/engine/index.js +25 -31
- package/dist/engine/model-parts.js +8 -0
- package/dist/engine/model-summary.js +5 -5
- package/dist/engine/native/index.js +1 -1
- package/dist/engine/native/material-components.js +3 -3
- package/dist/engine/native/operations.js +0 -7
- 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} +10 -10
- package/dist/engine/{operation-environment.js → operations/environment.js} +2 -2
- package/dist/engine/{extrusion-finishing.js → operations/extrusion-finishing.js} +7 -7
- 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/{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 +1 -1
- package/dist/engine/serialize-3mf.js +116 -0
- package/dist/engine/{deferred-context.js → session/deferred-context.js} +4 -4
- package/dist/engine/{model-dependencies.js → session/dependencies.js} +1 -1
- package/dist/engine/{session-graph.js → session/graph.js} +13 -11
- package/dist/engine/{session-native.js → session/native-cache.js} +1 -1
- package/dist/engine/{session.js → session/session.js} +16 -10
- package/dist/engine/{session-snapshot.js → session/snapshot-cache.js} +29 -59
- package/dist/geometry/anchors.js +4 -11
- package/dist/geometry/bounds-value.js +20 -10
- package/dist/geometry/heightfield.js +10 -12
- package/dist/{model → geometry}/immutable-buffer.js +28 -7
- package/dist/geometry/index.js +16 -22
- 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-signature.js +7 -6
- package/dist/geometry/mesh/mesh-solid.js +2 -3
- package/dist/geometry/mesh/mesh-types.js +1 -0
- package/dist/geometry/mesh/mesh.js +13 -22
- package/dist/geometry/mesh-api.js +14 -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/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 +8 -2
- package/dist/model/geometry-recipes.js +1 -1
- package/dist/model/immutable-generation-data.js +33 -2
- package/dist/model/operations.js +14 -144
- package/dist/model/recipe-declaration.js +6 -2
- package/dist/model/shape-handles.js +30 -7
- package/dist/text/index.js +1 -1
- package/package.json +21 -11
- 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/extrudeMesh.md +0 -77
- package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +0 -72
- package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +0 -106
- package/dist/docs/reference/geometry/meshBounds.md +0 -39
- package/dist/docs/reference/geometry/optimizePlanarPatches.md +0 -95
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +0 -105
- package/dist/docs/reference/geometry/sweepMesh.md +0 -86
- package/dist/docs/reference/model/FinalizedModel.md +0 -131
- package/dist/docs/reference/model/FinalizedPart.md +0 -87
- package/dist/docs/reference/model/anchor.md +0 -47
- package/dist/docs/reference/model/castSegment.md +0 -40
- package/dist/docs/reference/model/categories/inspection.md +0 -29
- 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/split.md +0 -54
- package/dist/docs/reference/model/splitByPlane.md +0 -66
- package/dist/geometry/profiles/profiles.js +0 -71
- /package/dist/engine/{primitive-profile-types.js → operations/primitives/profile-types.js} +0 -0
- /package/dist/geometry/profiles/{matched.js → match-profiles.js} +0 -0
package/dist/api/index.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ImmutableBuffer,
|
|
3
|
+
ImmutableTriangleMesh,
|
|
4
|
+
NumericArray,
|
|
5
|
+
} from "@metamesh/modeling/geometry";
|
|
6
|
+
export type {
|
|
7
|
+
ImmutableBuffer,
|
|
8
|
+
ImmutableTriangleMesh,
|
|
9
|
+
NumericArray,
|
|
10
|
+
} from "@metamesh/modeling/geometry";
|
|
1
11
|
/** Immutable modeling recipes and math values; the host owns geometry evaluation. @packageDocumentation */
|
|
2
12
|
|
|
3
13
|
/** ACME 29-degree included-angle profile. */
|
|
4
|
-
declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
14
|
+
export declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
5
15
|
/** Selects the 29-degree ACME profile family. */
|
|
6
16
|
readonly kind: "acme";
|
|
7
17
|
/**
|
|
@@ -11,17 +21,6 @@ declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
11
21
|
readonly depth?: number;
|
|
12
22
|
}
|
|
13
23
|
|
|
14
|
-
/**
|
|
15
|
-
* Reads a copied, immutable named anchor from this exact active generation.
|
|
16
|
-
*
|
|
17
|
-
* @example Read the top datum
|
|
18
|
-
* ```ts
|
|
19
|
-
* const plate = box({ size: [30, 20, 6] });
|
|
20
|
-
* anchor(plate, "top"); // position [0, 0, 3], direction [0, 0, 1]
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export declare function anchor(shape: Solid | Section, name: string): Anchor3;
|
|
24
|
-
|
|
25
24
|
/**
|
|
26
25
|
* An attachment pose on a solid or assembly.
|
|
27
26
|
*
|
|
@@ -49,6 +48,13 @@ export declare interface AttachOptions {
|
|
|
49
48
|
readonly tolerance?: GeometryToleranceOptions;
|
|
50
49
|
}
|
|
51
50
|
|
|
51
|
+
/** One size for both ends, or independent sizes in bottom/top order. Zero disables an end. */
|
|
52
|
+
export declare type Bevel =
|
|
53
|
+
BevelSize | readonly [bottom: BevelSize, top: BevelSize];
|
|
54
|
+
|
|
55
|
+
/** Nonnegative 45-degree axial/radial bevel size in millimetres, or factory automatic sizing. */
|
|
56
|
+
export declare type BevelSize = number | "auto";
|
|
57
|
+
|
|
52
58
|
/** Immutable finite XY bounds in millimetres, with tuple coordinates for data interoperability. */
|
|
53
59
|
export declare interface Bounds2 extends Bounds2Data {
|
|
54
60
|
/** Returns nonnegative X/Y dimensions in millimetres, including zero extents. */
|
|
@@ -68,9 +74,9 @@ export declare interface Bounds2 extends Bounds2Data {
|
|
|
68
74
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
69
75
|
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
70
76
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
71
|
-
* runtime
|
|
77
|
+
* runtime 10.0.0 or newer in major 10.
|
|
72
78
|
*/
|
|
73
|
-
export declare function bounds2(input: Bounds2Options): Bounds2;
|
|
79
|
+
export declare function bounds2(input: Bounds2Options | Bounds2): Bounds2;
|
|
74
80
|
|
|
75
81
|
/** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
|
|
76
82
|
export declare interface Bounds2Data {
|
|
@@ -85,15 +91,19 @@ export declare type Bounds2Input = Bounds2 | Bounds2Data;
|
|
|
85
91
|
|
|
86
92
|
/** XY bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
87
93
|
export declare type Bounds2Options =
|
|
88
|
-
|
|
|
89
|
-
/**
|
|
90
|
-
readonly
|
|
91
|
-
/**
|
|
92
|
-
readonly
|
|
93
|
-
|
|
94
|
+
| {
|
|
95
|
+
/** Inclusive minimum XY coordinates in millimetres. */
|
|
96
|
+
readonly min: Vector2Input;
|
|
97
|
+
/** Inclusive maximum XY coordinates in millimetres. */
|
|
98
|
+
readonly max: Vector2Input;
|
|
99
|
+
/** Size construction cannot be combined with extrema. */
|
|
100
|
+
readonly size?: never;
|
|
101
|
+
/** Center applies only to size construction. */
|
|
102
|
+
readonly center?: never;
|
|
103
|
+
}
|
|
94
104
|
| {
|
|
95
105
|
/** Nonnegative XY dimensions in millimetres. */
|
|
96
|
-
readonly size:
|
|
106
|
+
readonly size: Vector2Input;
|
|
97
107
|
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
98
108
|
readonly center?: boolean;
|
|
99
109
|
/** Minimum coordinates are unavailable when size is supplied. */
|
|
@@ -121,9 +131,9 @@ export declare interface Bounds3 extends Bounds3Data {
|
|
|
121
131
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
122
132
|
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
123
133
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
124
|
-
* runtime
|
|
134
|
+
* runtime 10.0.0 or newer in major 10.
|
|
125
135
|
*/
|
|
126
|
-
export declare function bounds3(input: Bounds3Options): Bounds3;
|
|
136
|
+
export declare function bounds3(input: Bounds3Options | Bounds3): Bounds3;
|
|
127
137
|
|
|
128
138
|
/** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
|
|
129
139
|
export declare interface Bounds3Data {
|
|
@@ -138,15 +148,19 @@ export declare type Bounds3Input = Bounds3 | Bounds3Data;
|
|
|
138
148
|
|
|
139
149
|
/** XYZ bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
140
150
|
export declare type Bounds3Options =
|
|
141
|
-
|
|
|
142
|
-
/**
|
|
143
|
-
readonly
|
|
144
|
-
/**
|
|
145
|
-
readonly
|
|
146
|
-
|
|
151
|
+
| {
|
|
152
|
+
/** Inclusive minimum XYZ coordinates in millimetres. */
|
|
153
|
+
readonly min: Vector3Input;
|
|
154
|
+
/** Inclusive maximum XYZ coordinates in millimetres. */
|
|
155
|
+
readonly max: Vector3Input;
|
|
156
|
+
/** Size construction cannot be combined with extrema. */
|
|
157
|
+
readonly size?: never;
|
|
158
|
+
/** Center applies only to size construction. */
|
|
159
|
+
readonly center?: never;
|
|
160
|
+
}
|
|
147
161
|
| {
|
|
148
162
|
/** Nonnegative XYZ dimensions in millimetres. */
|
|
149
|
-
readonly size:
|
|
163
|
+
readonly size: Vector3Input;
|
|
150
164
|
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
151
165
|
readonly center?: boolean;
|
|
152
166
|
/** Minimum coordinates are unavailable when size is supplied. */
|
|
@@ -200,16 +214,16 @@ export declare interface BoxOptions extends PrimitiveAttachment {
|
|
|
200
214
|
*/
|
|
201
215
|
readonly center?: boolean;
|
|
202
216
|
/** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
|
|
203
|
-
readonly size: number |
|
|
217
|
+
readonly size: number | Vector3Input;
|
|
204
218
|
/** Uniform treatment or independent disjoint nominal edge/group treatments. */
|
|
205
219
|
readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
|
|
206
220
|
}
|
|
207
221
|
|
|
208
222
|
/** Axial side carrying the near-normal pressure flank of a buttress thread. */
|
|
209
|
-
declare type ButtressPressureFlankSide = "negative" | "positive";
|
|
223
|
+
export declare type ButtressPressureFlankSide = "negative" | "positive";
|
|
210
224
|
|
|
211
225
|
/** Asymmetric printable buttress profile with 7/45-degree flanks. */
|
|
212
|
-
declare interface ButtressThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
226
|
+
export declare interface ButtressThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
213
227
|
/** Selects the asymmetric printable buttress profile family. */
|
|
214
228
|
readonly kind: "buttress";
|
|
215
229
|
/**
|
|
@@ -225,13 +239,6 @@ declare interface ButtressThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
225
239
|
readonly pressureFlankSide?: ButtressPressureFlankSide;
|
|
226
240
|
}
|
|
227
241
|
|
|
228
|
-
/** Copies intersections along the finite directed origin-to-endpoint segment. */
|
|
229
|
-
export declare function castSegment(
|
|
230
|
-
solid: Solid,
|
|
231
|
-
origin: Vector3Input,
|
|
232
|
-
endpoint: Vector3Input,
|
|
233
|
-
): readonly SolidSegmentHit[];
|
|
234
|
-
|
|
235
242
|
/**
|
|
236
243
|
* A planar edge or corner chamfer with equal or independent surface setbacks.
|
|
237
244
|
*/
|
|
@@ -292,40 +299,12 @@ export declare interface CircularPrimitiveOptions {
|
|
|
292
299
|
readonly resolution?: GeometryResolution;
|
|
293
300
|
}
|
|
294
301
|
|
|
295
|
-
/**
|
|
296
|
-
* Observes disconnected material pieces as session-restricted solid selections.
|
|
297
|
-
*
|
|
298
|
-
* Each piece retains its enclosed cavities. A sealed hollow box is one component; adding a loose
|
|
299
|
-
* ball inside its cavity produces two. Recombining the pieces preserves the original material.
|
|
300
|
-
* This does not cut connected geometry. Containment is bounded to 2,000,000 comparisons.
|
|
301
|
-
* Selection order and cardinality depend on evaluated topology. Results and recipes using them
|
|
302
|
-
* can only be evaluated in this session; composition itself requires no engine.
|
|
303
|
-
*
|
|
304
|
-
* @example Move disconnected pieces independently
|
|
305
|
-
* ```ts
|
|
306
|
-
* const islands = union([box({ size: 8 }), box({ size: 8 }).translate([12, 0, 0])]);
|
|
307
|
-
* const pieces = components(islands);
|
|
308
|
-
* // Component order is unspecified; the index only sets a display height here.
|
|
309
|
-
* union(pieces.map((piece, index) => piece.translate([0, 0, index * 6])));
|
|
310
|
-
* ```
|
|
311
|
-
*/
|
|
312
|
-
export declare function components(solid: Solid): readonly Solid[];
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* Observes filled 2D islands, retaining each island's holes; empty gives [].
|
|
316
|
-
* Selections and recipes using them can only be evaluated in this session.
|
|
317
|
-
*/
|
|
318
|
-
export declare function components(section: Section): readonly Section[];
|
|
319
|
-
|
|
320
|
-
/** Combines disjoint components without resolving overlap. */
|
|
321
|
-
export declare function compose(solids: readonly Solid[]): Solid;
|
|
322
|
-
|
|
323
302
|
/** A lazy session-owned reader. Calling it tracks its output in the current computation. */
|
|
324
303
|
export declare interface Computed<T> {
|
|
325
304
|
/** Compile-time ownership brand; readers are created by the engine's context helper. */
|
|
326
305
|
readonly [computedBrand]: "Computed";
|
|
327
306
|
/** Reads immutable data or a deferred recipe; evaluation is synchronous and cached. */
|
|
328
|
-
(): T
|
|
307
|
+
(): ImmutableValue<T>;
|
|
329
308
|
}
|
|
330
309
|
|
|
331
310
|
declare const computedBrand: unique symbol;
|
|
@@ -380,7 +359,7 @@ export declare type CorrespondingProfileStation = LoftPlacement & {
|
|
|
380
359
|
/**
|
|
381
360
|
* Explicit physical sampling and allocation policy for reusable curves.
|
|
382
361
|
*/
|
|
383
|
-
declare interface CurveSamplingOptions {
|
|
362
|
+
export declare interface CurveSamplingOptions {
|
|
384
363
|
/** Exact segment count overrides physical criteria; curve parameters are spaced uniformly. */
|
|
385
364
|
readonly segments?: number;
|
|
386
365
|
/** Millimetre sampling policy; circularSegments applies only to arcs. */
|
|
@@ -392,7 +371,7 @@ declare interface CurveSamplingOptions {
|
|
|
392
371
|
}
|
|
393
372
|
|
|
394
373
|
/** Caller-defined periodic axial/radial profile in millimetres. */
|
|
395
|
-
declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
374
|
+
export declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
396
375
|
/** Selects a caller-defined periodic profile. */
|
|
397
376
|
readonly kind: "custom";
|
|
398
377
|
/**
|
|
@@ -451,25 +430,13 @@ export declare type CylinderOptions = CircularPrimitiveOptions &
|
|
|
451
430
|
export declare interface DiagnosticOptions<P> {
|
|
452
431
|
/** Existing top-level parameter key. */
|
|
453
432
|
readonly parameterId?: Extract<keyof P, string> | undefined;
|
|
433
|
+
/** Relative field path, at most 32 nonnegative safe indices or 1–120 character field names.
|
|
434
|
+
* Starts within parameterId's value, or the whole input map when no parameterId is supplied.
|
|
435
|
+
* Omitted or empty addresses the whole value; paths do not validate field existence.
|
|
436
|
+
*/
|
|
437
|
+
readonly path?: readonly (string | number)[] | undefined;
|
|
454
438
|
}
|
|
455
439
|
|
|
456
|
-
/**
|
|
457
|
-
* Measures the minimum separation between two nonempty solids in millimetres.
|
|
458
|
-
*
|
|
459
|
-
* Uses actual geometry, not bounding-box separation or distance between object origins.
|
|
460
|
-
* Contact or overlapping material returns zero, including one solid inside another.
|
|
461
|
-
* The kernel's search range is managed internally; the result is not capped at a caller limit.
|
|
462
|
-
* Empty geometry and component selections from another session reject. Results follow native numeric precision.
|
|
463
|
-
*
|
|
464
|
-
* @example Measure the gap between two blocks
|
|
465
|
-
* ```ts
|
|
466
|
-
* const left = box({ size: 10 });
|
|
467
|
-
* const right = box({ size: 10 }).translate([13, 0, 0]);
|
|
468
|
-
* const gap = distance(left, right); // 3 mm
|
|
469
|
-
* ```
|
|
470
|
-
*/
|
|
471
|
-
export declare function distance(solid: Solid, other: Solid): number;
|
|
472
|
-
|
|
473
440
|
/**
|
|
474
441
|
* Uniform finishing vocabulary shared by applicable solid edges and profile corners.
|
|
475
442
|
*/
|
|
@@ -496,13 +463,13 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
|
|
|
496
463
|
(
|
|
497
464
|
| {
|
|
498
465
|
/** Positive XY radii in millimetres; mutually exclusive with size. */
|
|
499
|
-
readonly radius:
|
|
466
|
+
readonly radius: Vector2Input;
|
|
500
467
|
/** Full XY extents are unavailable when radius is supplied. */
|
|
501
468
|
readonly size?: never;
|
|
502
469
|
}
|
|
503
470
|
| {
|
|
504
471
|
/** Positive full XY extents in millimetres; mutually exclusive with radius. */
|
|
505
|
-
readonly size:
|
|
472
|
+
readonly size: Vector2Input;
|
|
506
473
|
/** XY radii are unavailable when size is supplied. */
|
|
507
474
|
readonly radius?: never;
|
|
508
475
|
}
|
|
@@ -526,8 +493,8 @@ export declare interface EndTreatments {
|
|
|
526
493
|
}
|
|
527
494
|
|
|
528
495
|
/**
|
|
529
|
-
* Extrudes explicit corresponding contours along +Z with degree twist and top scaling.
|
|
530
|
-
*
|
|
496
|
+
* Extrudes a filled Section or explicit corresponding contours along +Z with degree twist and top scaling.
|
|
497
|
+
* Use `section.extrude(options)` in fluent sequences, or this function for generic profile inputs.
|
|
531
498
|
*
|
|
532
499
|
* @example Extrude
|
|
533
500
|
* ```ts
|
|
@@ -539,24 +506,28 @@ export declare interface EndTreatments {
|
|
|
539
506
|
* ```
|
|
540
507
|
*/
|
|
541
508
|
export declare function extrude(
|
|
542
|
-
shape: CorrespondingProfile,
|
|
509
|
+
shape: Section | CorrespondingProfile,
|
|
543
510
|
options: ExtrudeOptions,
|
|
544
511
|
): Solid;
|
|
545
512
|
|
|
546
513
|
/**
|
|
547
|
-
* Dimensions and sampling
|
|
514
|
+
* Dimensions and sampling for pure +Z mesh extrusion, without end treatments.
|
|
548
515
|
*/
|
|
549
|
-
export declare interface
|
|
516
|
+
export declare interface ExtrudeMeshOptions extends ExtrusionSamplingOptions {
|
|
550
517
|
/** Positive extrusion height in millimetres. */
|
|
551
518
|
readonly height: number;
|
|
552
519
|
/** Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false. */
|
|
553
520
|
readonly center?: boolean;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
/** Native +Z extrusion with optional inward end treatments. */
|
|
524
|
+
export declare interface ExtrudeOptions extends ExtrudeMeshOptions {
|
|
554
525
|
/** Independent inward end treatments on straight convex single-contour extrusions. */
|
|
555
526
|
readonly ends?: EndTreatments;
|
|
556
527
|
}
|
|
557
528
|
|
|
558
529
|
/** Shared sampling controls for a twisted or scaled linear extrusion. */
|
|
559
|
-
declare interface ExtrusionSamplingOptions {
|
|
530
|
+
export declare interface ExtrusionSamplingOptions {
|
|
560
531
|
/** Exact number of intermediate profiles, nonnegative; overrides physical sampling. */
|
|
561
532
|
readonly divisions?: number;
|
|
562
533
|
/** Explicit output and sampling allocation ceilings. */
|
|
@@ -569,43 +540,6 @@ declare interface ExtrusionSamplingOptions {
|
|
|
569
540
|
readonly twist?: number;
|
|
570
541
|
}
|
|
571
542
|
|
|
572
|
-
/** Finalized manufacturing snapshot. Its arrays are independent of all native values. */
|
|
573
|
-
export declare interface FinalizedModel {
|
|
574
|
-
/** Ordered finalized manufacturing parts with copied transferable arrays. */
|
|
575
|
-
readonly parts: readonly FinalizedPart[];
|
|
576
|
-
/** Axis-aligned XYZ bounds in millimetres. */
|
|
577
|
-
readonly bounds: Bounds3Data;
|
|
578
|
-
/** Aggregate counts, unique backing storage, volume, and execution timings. */
|
|
579
|
-
readonly stats: {
|
|
580
|
-
/** Number of declared output parts, including repeated geometry instances. */
|
|
581
|
-
readonly partCount: number;
|
|
582
|
-
/** Aggregate position-buffer vertex count. */
|
|
583
|
-
readonly vertexCount: number;
|
|
584
|
-
/** Aggregate indexed triangle count. */
|
|
585
|
-
readonly triangleCount: number;
|
|
586
|
-
/** Signed enclosed volume of all selected parts in cubic millimetres. */
|
|
587
|
-
readonly volumeMm3: number;
|
|
588
|
-
/** Unique transferable backing-buffer bytes, counted once across all parts. */
|
|
589
|
-
readonly byteCount: number;
|
|
590
|
-
/** Synchronous callback duration in milliseconds. */
|
|
591
|
-
readonly buildMs: number;
|
|
592
|
-
/** Manufacturing validation and buffer finalization duration in milliseconds. */
|
|
593
|
-
readonly finalizationMs: number;
|
|
594
|
-
/** Total generation duration, including cache retention and native cleanup, in milliseconds. */
|
|
595
|
-
readonly generationMs: number;
|
|
596
|
-
};
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
/** Copied manufacturing part with facts computed from the finalized mesh. */
|
|
600
|
-
export declare interface FinalizedPart extends TriangleMesh {
|
|
601
|
-
/** Stable canonical lowercase identity; unique within the containing topology or output. */
|
|
602
|
-
readonly id: string;
|
|
603
|
-
/** Optional six-digit hex RGB display color. */
|
|
604
|
-
readonly color?: string;
|
|
605
|
-
/** Fresh validated facts for these exact finalized buffers. */
|
|
606
|
-
readonly measurements: TriangleMeshAnalysis;
|
|
607
|
-
}
|
|
608
|
-
|
|
609
543
|
/** A right-handed orthonormal coordinate frame expressed in world coordinates. */
|
|
610
544
|
export declare interface Frame3 {
|
|
611
545
|
/** World-space origin of the local frame. */
|
|
@@ -619,7 +553,9 @@ export declare interface Frame3 {
|
|
|
619
553
|
}
|
|
620
554
|
|
|
621
555
|
/**
|
|
622
|
-
* Defines a typed model without executing it.
|
|
556
|
+
* Defines a typed model without executing it. Parameters are an object map of capturable data;
|
|
557
|
+
* runtime capture rejects arrays at the root, ordinary class instances, mutable buffers, and functions.
|
|
558
|
+
* Supply live capabilities through services. Use `computed` only for work worth reusing.
|
|
623
559
|
*
|
|
624
560
|
* @example A simple model
|
|
625
561
|
* ```ts
|
|
@@ -629,19 +565,25 @@ export declare interface Frame3 {
|
|
|
629
565
|
* });
|
|
630
566
|
* ```
|
|
631
567
|
*/
|
|
632
|
-
export declare function generate<P, S = Record<never, never>>(
|
|
568
|
+
export declare function generate<P extends object, S = Record<never, never>>(
|
|
633
569
|
callback: GenerateCallback<P, S>,
|
|
634
570
|
): ModelProgram<P, S>;
|
|
635
571
|
|
|
636
572
|
/** Pure synchronous callback returning one declared part or an array; caches are optional. */
|
|
637
|
-
export declare type GenerateCallback<
|
|
573
|
+
export declare type GenerateCallback<
|
|
574
|
+
P extends object,
|
|
575
|
+
S = Record<never, never>,
|
|
576
|
+
> = (
|
|
638
577
|
context: GenerateContext<P, S>,
|
|
639
|
-
) =>
|
|
578
|
+
) => PartDeclaration | readonly PartDeclaration[];
|
|
640
579
|
|
|
641
580
|
/** The sole synchronous authoring context, supplied independently of Studio. */
|
|
642
|
-
export declare interface GenerateContext<
|
|
581
|
+
export declare interface GenerateContext<
|
|
582
|
+
P extends object,
|
|
583
|
+
S = Record<never, never>,
|
|
584
|
+
> {
|
|
643
585
|
/** Frozen ordinary parameter values; synchronous top-level reads are tracked. */
|
|
644
|
-
readonly params:
|
|
586
|
+
readonly params: ImmutableValue<P>;
|
|
645
587
|
/** Host-prepared readonly synchronous capabilities, fixed for the session. */
|
|
646
588
|
readonly services: Readonly<S>;
|
|
647
589
|
/**
|
|
@@ -655,11 +597,13 @@ export declare interface GenerateContext<P, S = Record<never, never>> {
|
|
|
655
597
|
dependencies?: readonly unknown[],
|
|
656
598
|
) => Computed<T>;
|
|
657
599
|
/** Declares a semantic part with identity placement, or explicit placement and appearance. */
|
|
658
|
-
readonly part:
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
/** Immediately aborts on false; geometry observations in the condition run first.
|
|
600
|
+
readonly part: (
|
|
601
|
+
id: string,
|
|
602
|
+
input: ComputedValue<PartGeometry> | PartOptions,
|
|
603
|
+
) => PartDeclaration;
|
|
604
|
+
/** Immediately aborts on false; geometry observations in the condition run first.
|
|
605
|
+
* This diagnostic helper does not narrow TypeScript types; use an explicit conditional guard when needed.
|
|
606
|
+
*/
|
|
663
607
|
readonly assert: {
|
|
664
608
|
(condition: false, message: string, options?: DiagnosticOptions<P>): never;
|
|
665
609
|
(condition: boolean, message: string, options?: DiagnosticOptions<P>): void;
|
|
@@ -668,12 +612,6 @@ export declare interface GenerateContext<P, S = Record<never, never>> {
|
|
|
668
612
|
readonly warn: (message: string, options?: DiagnosticOptions<P>) => void;
|
|
669
613
|
}
|
|
670
614
|
|
|
671
|
-
/** One declared output part. Construct with the context's `part` helper. */
|
|
672
|
-
export declare interface GeneratedPart extends PartOptions {
|
|
673
|
-
/** Unique canonical lowercase hyphen-separated identity, at most 64 characters. */
|
|
674
|
-
readonly id: string;
|
|
675
|
-
}
|
|
676
|
-
|
|
677
615
|
/** Structured user-facing issue associated with the attempted revision. */
|
|
678
616
|
export declare interface GenerationDiagnostic {
|
|
679
617
|
/** An error aborts generation; a warning allows generation to continue. */
|
|
@@ -682,6 +620,8 @@ export declare interface GenerationDiagnostic {
|
|
|
682
620
|
readonly message: string;
|
|
683
621
|
/** Optional control identity, validated against the supplied parameters. */
|
|
684
622
|
readonly parameterId?: string | undefined;
|
|
623
|
+
/** Relative field location within the parameter, or input map when parameterId is omitted. */
|
|
624
|
+
readonly path?: readonly (string | number)[] | undefined;
|
|
685
625
|
}
|
|
686
626
|
|
|
687
627
|
/** A user-correctable assertion failure. Successful computation caches never retain failures. */
|
|
@@ -692,6 +632,60 @@ export declare class GenerationError extends Error {
|
|
|
692
632
|
constructor(diagnostics: readonly GenerationDiagnostic[]);
|
|
693
633
|
}
|
|
694
634
|
|
|
635
|
+
/**
|
|
636
|
+
* Error raised when a geometry precondition or invariant is not satisfied.
|
|
637
|
+
*
|
|
638
|
+
* Callers may use `code` for coarse recovery decisions. Human-facing details
|
|
639
|
+
* remain in `message`; messages are descriptive but are not a stable API.
|
|
640
|
+
*
|
|
641
|
+
* @example
|
|
642
|
+
* ```ts
|
|
643
|
+
* const error = new GeometryError("INVALID_ARGUMENT", "Radius must be positive.", {
|
|
644
|
+
* operation: "example",
|
|
645
|
+
* details: { radius: 0 },
|
|
646
|
+
* });
|
|
647
|
+
* ```
|
|
648
|
+
*/
|
|
649
|
+
export declare class GeometryError extends Error {
|
|
650
|
+
/** Machine-readable failure category. */
|
|
651
|
+
readonly code: GeometryErrorCode;
|
|
652
|
+
/** Operation and scalar facts associated with the failure. */
|
|
653
|
+
readonly context: GeometryErrorContext;
|
|
654
|
+
/**
|
|
655
|
+
* Creates a geometry error with a stable category, operation, and descriptive message.
|
|
656
|
+
*
|
|
657
|
+
* @param code - Machine-readable failure category.
|
|
658
|
+
* @param message - Human-readable diagnostic message.
|
|
659
|
+
* @param context - Operation and optional scalar facts. Defaults to `{ operation: "geometry" }`.
|
|
660
|
+
*/
|
|
661
|
+
constructor(
|
|
662
|
+
code: GeometryErrorCode,
|
|
663
|
+
message: string,
|
|
664
|
+
context?: GeometryErrorContext,
|
|
665
|
+
);
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/** Stable categories for invalid inputs, topology, allocation, and runtime failures. */
|
|
669
|
+
export declare type GeometryErrorCode =
|
|
670
|
+
| "COMPLEXITY_LIMIT"
|
|
671
|
+
| "DEGENERATE_GEOMETRY"
|
|
672
|
+
| "INVALID_ARGUMENT"
|
|
673
|
+
| "INVALID_MESH"
|
|
674
|
+
| "INVALID_TOPOLOGY"
|
|
675
|
+
| "INVALID_TOLERANCE"
|
|
676
|
+
| "NON_FINITE_VALUE"
|
|
677
|
+
| "SELF_INTERSECTION"
|
|
678
|
+
| "SINGULAR_TRANSFORM"
|
|
679
|
+
| "UNSUPPORTED_RUNTIME";
|
|
680
|
+
|
|
681
|
+
/** Serializable context attached to a geometry failure. */
|
|
682
|
+
export declare interface GeometryErrorContext {
|
|
683
|
+
/** Optional scalar facts useful for diagnostics without parsing the message. */
|
|
684
|
+
readonly details?: Readonly<Record<string, boolean | number | string>>;
|
|
685
|
+
/** Stable operation name, such as `normalizeContour` or `extrude`. */
|
|
686
|
+
readonly operation: string;
|
|
687
|
+
}
|
|
688
|
+
|
|
695
689
|
/**
|
|
696
690
|
* Tessellation policy for sampled geometry measured in millimetres.
|
|
697
691
|
*/
|
|
@@ -815,11 +809,11 @@ export declare type HeightfieldOptions = {
|
|
|
815
809
|
} & (
|
|
816
810
|
| {
|
|
817
811
|
/** Positive XY footprint for uniform sampling. */
|
|
818
|
-
readonly size:
|
|
812
|
+
readonly size: Vector2Input;
|
|
819
813
|
/** Exact positive integer X/Y interval counts. */
|
|
820
814
|
readonly segments: readonly [x: number, y: number];
|
|
821
815
|
/** Lower-left footprint XY. Omitted centers the footprint on XY. */
|
|
822
|
-
readonly origin?:
|
|
816
|
+
readonly origin?: Vector2Input;
|
|
823
817
|
/** Explicit coordinates cannot be combined with uniform sampling. */
|
|
824
818
|
readonly coordinates?: never;
|
|
825
819
|
}
|
|
@@ -843,54 +837,17 @@ export declare type HeightfieldOptions = {
|
|
|
843
837
|
}
|
|
844
838
|
);
|
|
845
839
|
|
|
846
|
-
/** Runtime-neutral options for the dedicated helical ridge mesher. */
|
|
847
|
-
export declare interface HelicalThreadRidgeMeshOptions {
|
|
848
|
-
/**
|
|
849
|
-
* Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
|
|
850
|
-
* BOSL2-style non-cut lead-in scaling is available on complete thread solids.
|
|
851
|
-
*/
|
|
852
|
-
readonly ends?: ThreadEndTreatmentOptions;
|
|
853
|
-
/** Helix direction. Default: `right`. */
|
|
854
|
-
readonly handedness?: ThreadHandedness;
|
|
855
|
-
/** Total threaded axial length in millimetres. */
|
|
856
|
-
readonly length: number;
|
|
857
|
-
/** Explicit output and circular allocation ceilings. */
|
|
858
|
-
readonly limits?: Partial<ModelingLimits>;
|
|
859
|
-
/** Nominal major diameter before any caller-owned fit compensation. */
|
|
860
|
-
readonly majorDiameter: number;
|
|
861
|
-
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
862
|
-
readonly phase?: number;
|
|
863
|
-
/** Validated periodic profile repeated around the shaft. */
|
|
864
|
-
readonly profile: ThreadProfile;
|
|
865
|
-
/** Optional circular-resolution policy. */
|
|
866
|
-
readonly resolution?: GeometryResolution;
|
|
867
|
-
/** Number of evenly phased starts. Default: `1`. */
|
|
868
|
-
readonly starts?: number;
|
|
869
|
-
/** Optional numerical tolerance overrides. */
|
|
870
|
-
readonly tolerance?: GeometryToleranceOptions;
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
/** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
|
|
874
|
-
export declare interface HelicalThreadSolidMeshPreflight {
|
|
875
|
-
/** Uniform axial intervals required only by a requested physical segment-length limit. */
|
|
876
|
-
readonly axialIntervals: number;
|
|
877
|
-
/** Start-aligned full-circle segment count used by the surface mesh. */
|
|
878
|
-
readonly circularSegments: number;
|
|
879
|
-
/** Conservative surface-row count across profile breaks, ends, and bevel stations. */
|
|
880
|
-
readonly estimatedRows: number;
|
|
881
|
-
/** Conservative triangle count used by the selected output allocation policy. */
|
|
882
|
-
readonly estimatedTriangles: number;
|
|
883
|
-
}
|
|
884
|
-
|
|
885
840
|
/**
|
|
886
841
|
* Declares a +Z hole or blind-pocket cutter with explicit end overrun in millimetres.
|
|
842
|
+
*
|
|
843
|
+
* @remarks
|
|
887
844
|
* Choose exactly one circular diameter or existing Section. A 45-degree entry chamfer
|
|
888
845
|
* supports one strictly convex contour without holes; plain profiles may have any topology.
|
|
889
846
|
* Circular entries retain nominal frustum radii; profile entries offset the supplied polygon edges.
|
|
890
847
|
* Circular head recesses are mutually exclusive with entryChamfer. Both overrun ends default
|
|
891
848
|
* to zero, so the nominal bottom remains at Z=0 and blind pocket floors are preserved.
|
|
892
849
|
* Existing Section samples are authoritative; limits and unspecified circular sampling belong
|
|
893
|
-
* to the evaluating host.
|
|
850
|
+
* to the evaluating host.
|
|
894
851
|
*
|
|
895
852
|
* @example A blind hex pocket with an open top
|
|
896
853
|
* ```ts
|
|
@@ -1013,18 +970,6 @@ export declare type HullOptions =
|
|
|
1013
970
|
readonly points?: never;
|
|
1014
971
|
};
|
|
1015
972
|
|
|
1016
|
-
/** Owned immutable numeric data. Use copy() to obtain mutable storage for numerical work. */
|
|
1017
|
-
export declare interface ImmutableBuffer<T extends NumericArray> {
|
|
1018
|
-
/** Opaque element-storage brand; construct buffers with immutableBuffer(). */
|
|
1019
|
-
readonly [immutableBufferBrand]: T;
|
|
1020
|
-
/** Number of numeric elements, independent of their byte width. */
|
|
1021
|
-
readonly length: number;
|
|
1022
|
-
/** Reads an integer offset; negative offsets count from the end. Invalid offsets return undefined. */
|
|
1023
|
-
at(this: void, index: number): number | undefined;
|
|
1024
|
-
/** Returns a fresh mutable array of the original numeric type; never exposes cached storage. */
|
|
1025
|
-
copy(this: void): T;
|
|
1026
|
-
}
|
|
1027
|
-
|
|
1028
973
|
/**
|
|
1029
974
|
* Copies numeric data once into private storage. This pure helper needs no active generation.
|
|
1030
975
|
* @example
|
|
@@ -1033,6 +978,7 @@ export declare interface ImmutableBuffer<T extends NumericArray> {
|
|
|
1033
978
|
* const heights = immutableBuffer(new Float32Array([2, 4, 6]));
|
|
1034
979
|
* const count = heights.length;
|
|
1035
980
|
* const first = heights.at(0);
|
|
981
|
+
* const doubled = Array.from(heights, (height) => height * 2);
|
|
1036
982
|
* const editable = heights.copy();
|
|
1037
983
|
* editable[0] = 8; // heights still contains 2, 4, 6.
|
|
1038
984
|
* ```
|
|
@@ -1041,33 +987,18 @@ export declare function immutableBuffer<T extends NumericArray>(
|
|
|
1041
987
|
source: T,
|
|
1042
988
|
): ImmutableBuffer<T>;
|
|
1043
989
|
|
|
1044
|
-
declare const immutableBufferBrand: unique symbol;
|
|
1045
|
-
|
|
1046
990
|
/**
|
|
1047
|
-
*
|
|
1048
|
-
*
|
|
1049
|
-
*
|
|
1050
|
-
* import { generate, immutableMesh } from "@metamesh/modeling";
|
|
1051
|
-
* import { heightfieldMesh } from "@metamesh/modeling/geometry";
|
|
1052
|
-
* const model = generate(({ computed, part }) => {
|
|
1053
|
-
* const surface = computed("surface", () => immutableMesh(heightfieldMesh({
|
|
1054
|
-
* size: [10, 10], segments: [8, 8], height: () => 2,
|
|
1055
|
-
* })));
|
|
1056
|
-
* return [part("surface", surface)];
|
|
1057
|
-
* });
|
|
1058
|
-
* ```
|
|
991
|
+
* Deeply readonly view of captured generation data, including nested arrays and tuples.
|
|
992
|
+
* Modeling value methods keep their signatures, including explicit mutable copies.
|
|
993
|
+
* This type does not make unsupported runtime values valid generation data.
|
|
1059
994
|
*/
|
|
1060
|
-
export declare
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
readonly positions: ImmutableBuffer<Float32Array>;
|
|
1068
|
-
/** Zero-based vertex indices, three per triangle. */
|
|
1069
|
-
readonly indices: ImmutableBuffer<Uint32Array>;
|
|
1070
|
-
}
|
|
995
|
+
export declare type ImmutableValue<T> = T extends (...args: never[]) => unknown
|
|
996
|
+
? T
|
|
997
|
+
: T extends object
|
|
998
|
+
? {
|
|
999
|
+
readonly [Key in keyof T]: ImmutableValue<T[Key]>;
|
|
1000
|
+
}
|
|
1001
|
+
: T;
|
|
1071
1002
|
|
|
1072
1003
|
/**
|
|
1073
1004
|
* Bounded positive-inside implicit field constructor.
|
|
@@ -1089,28 +1020,6 @@ export declare interface ImplicitOptions {
|
|
|
1089
1020
|
readonly tolerance?: number;
|
|
1090
1021
|
}
|
|
1091
1022
|
|
|
1092
|
-
/**
|
|
1093
|
-
* Copies lightweight section measurements.
|
|
1094
|
-
*
|
|
1095
|
-
* @example Check filled area
|
|
1096
|
-
* ```ts
|
|
1097
|
-
* const facts = inspectSection(rectangle({ size: [20, 10] }));
|
|
1098
|
-
* facts.area; // 200 mm²
|
|
1099
|
-
* ```
|
|
1100
|
-
*/
|
|
1101
|
-
export declare function inspectSection(section: Section): SectionInspection;
|
|
1102
|
-
|
|
1103
|
-
/**
|
|
1104
|
-
* Reads immutable native facts once per solid; temporary components are owned by the build.
|
|
1105
|
-
*
|
|
1106
|
-
* @example Check dimensions and volume
|
|
1107
|
-
* ```ts
|
|
1108
|
-
* const facts = inspectSolid(box({ size: [30, 20, 6] }));
|
|
1109
|
-
* facts.volume; // 3600 mm³
|
|
1110
|
-
* ```
|
|
1111
|
-
*/
|
|
1112
|
-
export declare function inspectSolid(solid: Solid): SolidInspection;
|
|
1113
|
-
|
|
1114
1023
|
/**
|
|
1115
1024
|
* Compensated internal threaded cutter.
|
|
1116
1025
|
*
|
|
@@ -1130,9 +1039,7 @@ export declare function internalThreadCutter(
|
|
|
1130
1039
|
|
|
1131
1040
|
/** Options for a compensated internal-thread subtraction tool along +Z. */
|
|
1132
1041
|
export declare interface InternalThreadCutterOptions
|
|
1133
|
-
extends
|
|
1134
|
-
Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
|
|
1135
|
-
ThreadBevelOptions {
|
|
1042
|
+
extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
|
|
1136
1043
|
/** Printable fit or caller-calibrated allowances. Default: `normal`. */
|
|
1137
1044
|
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
1138
1045
|
/** Nominal major diameter before female compensation and faceting correction. */
|
|
@@ -1140,7 +1047,7 @@ export declare interface InternalThreadCutterOptions
|
|
|
1140
1047
|
}
|
|
1141
1048
|
|
|
1142
1049
|
/**
|
|
1143
|
-
* Robust intersection.
|
|
1050
|
+
* Robust intersection of one or more shapes; empty input rejects during declaration.
|
|
1144
1051
|
*
|
|
1145
1052
|
* @example Intersect
|
|
1146
1053
|
* ```ts
|
|
@@ -1153,20 +1060,12 @@ export declare function intersect(solids: readonly Solid[]): Solid;
|
|
|
1153
1060
|
export declare function intersect(sections: readonly Section[]): Section;
|
|
1154
1061
|
|
|
1155
1062
|
/**
|
|
1156
|
-
*
|
|
1157
|
-
*
|
|
1158
|
-
* Accepts a 3D Solid or 2D Section handle, not a finalized model or raw triangle mesh.
|
|
1159
|
-
* Useful after a Boolean operation whose inputs may not overlap; no mesh is extracted.
|
|
1063
|
+
* Recognizes structured geometry errors from separately bundled Modeling copies in the same realm.
|
|
1160
1064
|
*
|
|
1161
|
-
*
|
|
1162
|
-
*
|
|
1163
|
-
* const body = box({ size: 10 });
|
|
1164
|
-
* const distant = box({ size: 10 }).translate([30, 0, 0]);
|
|
1165
|
-
* const empty = intersect([body, distant]);
|
|
1166
|
-
* const missed = isEmpty(empty); // true
|
|
1167
|
-
* ```
|
|
1065
|
+
* Ordinary errors and unmarked code-shaped objects are rejected. The marker is execution-local and
|
|
1066
|
+
* does not survive structured cloning; worker protocols carry their own serialized error envelope.
|
|
1168
1067
|
*/
|
|
1169
|
-
export declare function
|
|
1068
|
+
export declare function isGeometryError(value: unknown): value is GeometryError;
|
|
1170
1069
|
|
|
1171
1070
|
/** Portable local geometry; consumers own plates, holes, part declarations, and final placement. */
|
|
1172
1071
|
export declare interface KnuckleHinge {
|
|
@@ -1188,7 +1087,7 @@ export declare interface KnuckleHinge {
|
|
|
1188
1087
|
* Each half's `chamfer` bevels its barrel outer rims and all web edges. Consumers own plates, screw holes,
|
|
1189
1088
|
* pin retention, fit policy, and part placement. Added mounting material must preserve the bores.
|
|
1190
1089
|
* No opening range or collision freedom is implied for arbitrary caller attachments.
|
|
1191
|
-
* Compiled Generator packages using this operation require runtime
|
|
1090
|
+
* Compiled Generator packages using this operation require runtime 10.0.0 or newer in major 10.
|
|
1192
1091
|
*
|
|
1193
1092
|
* @example Integral-pin hinge with two mounting webs
|
|
1194
1093
|
* ```ts
|
|
@@ -1344,7 +1243,8 @@ export declare type LinearPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
|
1344
1243
|
);
|
|
1345
1244
|
|
|
1346
1245
|
/**
|
|
1347
|
-
* Lofts
|
|
1246
|
+
* Lofts Sections and point loops at z heights or frames. Known primitive landmarks are retained;
|
|
1247
|
+
* other profiles default to direct correspondence, preserving their supplied seams.
|
|
1348
1248
|
*
|
|
1349
1249
|
* @example Loft
|
|
1350
1250
|
* ```ts
|
|
@@ -1382,10 +1282,10 @@ export declare type LoftCorrespondence =
|
|
|
1382
1282
|
"direct" | "reindex" | "fast-distance" | "distance";
|
|
1383
1283
|
|
|
1384
1284
|
/**
|
|
1385
|
-
* Shared controls for native and pure lofts. Point data and arbitrary Sections
|
|
1285
|
+
* Shared controls for native and pure lofts. Point data and arbitrary Sections default to direct correspondence.
|
|
1386
1286
|
*/
|
|
1387
1287
|
export declare interface LoftOptions {
|
|
1388
|
-
/** One method or one per consecutive station gap. Omitted preserves known landmarks, including circle/ellipse-to-rectangle corners,
|
|
1288
|
+
/** 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. */
|
|
1389
1289
|
readonly correspondence?: LoftCorrespondence | readonly LoftCorrespondence[];
|
|
1390
1290
|
/** 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. */
|
|
1391
1291
|
readonly distribution?: "perimeter" | "segments";
|
|
@@ -1457,16 +1357,21 @@ export declare interface ModelingLimits extends GeometrySamplingLimits {
|
|
|
1457
1357
|
}
|
|
1458
1358
|
|
|
1459
1359
|
/** Stateless portable program descriptor. Execution and caches belong to an engine session. */
|
|
1460
|
-
export declare interface ModelProgram<
|
|
1360
|
+
export declare interface ModelProgram<
|
|
1361
|
+
P extends object,
|
|
1362
|
+
S = Record<never, never>,
|
|
1363
|
+
> {
|
|
1461
1364
|
/** Exact generation protocol discriminator. */
|
|
1462
1365
|
readonly kind: "metamesh-model";
|
|
1463
1366
|
/** Typed synchronous declaration callback. */
|
|
1464
1367
|
readonly generate: GenerateCallback<P, S>;
|
|
1465
1368
|
}
|
|
1466
1369
|
|
|
1467
|
-
/**
|
|
1468
|
-
export declare
|
|
1469
|
-
|
|
1370
|
+
/** One declared output part. Construct with the context's `part` helper. */
|
|
1371
|
+
export declare interface PartDeclaration extends PartOptions {
|
|
1372
|
+
/** Unique canonical lowercase hyphen-separated identity, at most 64 characters. */
|
|
1373
|
+
readonly id: string;
|
|
1374
|
+
}
|
|
1470
1375
|
|
|
1471
1376
|
/** Manufacturing geometry; filled sections are intermediate construction values. */
|
|
1472
1377
|
export declare type PartGeometry = Solid | TriangleMesh | ImmutableTriangleMesh;
|
|
@@ -1475,10 +1380,10 @@ export declare type PartGeometry = Solid | TriangleMesh | ImmutableTriangleMesh;
|
|
|
1475
1380
|
export declare interface PartOptions {
|
|
1476
1381
|
/** Local geometry or a lazy reader; native objects never cross a revision. */
|
|
1477
1382
|
readonly geometry: ComputedValue<PartGeometry>;
|
|
1478
|
-
/**
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
readonly
|
|
1383
|
+
/** Rigid local-to-world transform; translation uses millimetres. Defaults to identity.
|
|
1384
|
+
* Accepts a fluent transform or row-major 4x4 matrix. Scale, shear, and reflection are invalid.
|
|
1385
|
+
*/
|
|
1386
|
+
readonly transform?: ComputedValue<Transform3Input>;
|
|
1482
1387
|
/** Optional six-digit hexadecimal semantic part color. */
|
|
1483
1388
|
readonly color?: string;
|
|
1484
1389
|
}
|
|
@@ -1754,7 +1659,7 @@ export declare type PolygonOptions =
|
|
|
1754
1659
|
*/
|
|
1755
1660
|
export declare function preflightInternalThreadCutter(
|
|
1756
1661
|
options: InternalThreadCutterOptions,
|
|
1757
|
-
):
|
|
1662
|
+
): ThreadSolidPreflight;
|
|
1758
1663
|
|
|
1759
1664
|
/**
|
|
1760
1665
|
* Checks nut dimensions, chamfers, end-face wall, and the extended compensated cutter's allocation plan.
|
|
@@ -1780,7 +1685,7 @@ export declare function preflightThreadedNut(
|
|
|
1780
1685
|
*/
|
|
1781
1686
|
export declare function preflightThreadedRod(
|
|
1782
1687
|
options: ThreadedRodOptions,
|
|
1783
|
-
):
|
|
1688
|
+
): ThreadSolidPreflight;
|
|
1784
1689
|
|
|
1785
1690
|
/** Anchor attachment shared by solid and filled-section factories. */
|
|
1786
1691
|
export declare interface PrimitiveAttachment {
|
|
@@ -1979,7 +1884,7 @@ export declare function rectangle(options: RectangleOptions): Section;
|
|
|
1979
1884
|
*/
|
|
1980
1885
|
export declare interface RectangleContourOptions {
|
|
1981
1886
|
/** Positive uniform size or explicit XY extents in millimetres. */
|
|
1982
|
-
readonly size: number |
|
|
1887
|
+
readonly size: number | Vector2Input;
|
|
1983
1888
|
/** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
|
|
1984
1889
|
readonly center?: boolean;
|
|
1985
1890
|
/** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
|
|
@@ -2042,8 +1947,8 @@ export declare type RegularPolygonOptions = RadialSizingOptions &
|
|
|
2042
1947
|
};
|
|
2043
1948
|
|
|
2044
1949
|
/**
|
|
2045
|
-
* Revolves explicit corresponding radial/Z contours around +Z, with caps for partial sweeps.
|
|
2046
|
-
*
|
|
1950
|
+
* Revolves a filled Section or explicit corresponding radial/Z contours around +Z, with caps for partial sweeps.
|
|
1951
|
+
* Use `section.revolve(options)` in fluent sequences, or this function for generic profile inputs.
|
|
2047
1952
|
*
|
|
2048
1953
|
* @example Revolve
|
|
2049
1954
|
* ```ts
|
|
@@ -2056,7 +1961,7 @@ export declare type RegularPolygonOptions = RadialSizingOptions &
|
|
|
2056
1961
|
* ```
|
|
2057
1962
|
*/
|
|
2058
1963
|
export declare function revolve(
|
|
2059
|
-
shape: CorrespondingProfile,
|
|
1964
|
+
shape: Section | CorrespondingProfile,
|
|
2060
1965
|
options?: RevolveOptions,
|
|
2061
1966
|
): Solid;
|
|
2062
1967
|
|
|
@@ -2069,7 +1974,7 @@ export declare interface RevolveOptions extends CircularPrimitiveOptions {
|
|
|
2069
1974
|
* smaller sweeps form partial revolutions with end caps.
|
|
2070
1975
|
* Segment counts describe a complete circle and scale to this angular span. Native filled
|
|
2071
1976
|
* revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
|
|
2072
|
-
* while exact counts that imply fewer intervals reject. Pure
|
|
1977
|
+
* while exact counts that imply fewer intervals reject. Pure mesh.revolve supports one interval.
|
|
2073
1978
|
* @defaultValue `360`
|
|
2074
1979
|
*/
|
|
2075
1980
|
readonly degrees?: number;
|
|
@@ -2100,7 +2005,7 @@ export declare interface RoundedEdgeTreatment extends CircularPrimitiveOptions {
|
|
|
2100
2005
|
* @example Extrude an outline with a border
|
|
2101
2006
|
* ```ts
|
|
2102
2007
|
* const body = rectangle({ size: [20, 12] })
|
|
2103
|
-
* .subtract(
|
|
2008
|
+
* .subtract(rectangle({ size: [16, 8] }))
|
|
2104
2009
|
* .offset(0.5)
|
|
2105
2010
|
* .extrude({ height: 4 });
|
|
2106
2011
|
* ```
|
|
@@ -2130,8 +2035,14 @@ export declare interface Section {
|
|
|
2130
2035
|
transform(this: Section, placement: Transform2Input): Section;
|
|
2131
2036
|
/** Copies canonical filled polygons for interchange; requires an active model execution. */
|
|
2132
2037
|
toRegionData(this: Section): RegionData;
|
|
2133
|
-
/**
|
|
2134
|
-
|
|
2038
|
+
/** Filled union with one or more sections; an empty operand array preserves this section. */
|
|
2039
|
+
union(this: Section, operands: Section | readonly Section[]): Section;
|
|
2040
|
+
/** Filled intersection with every supplied section; an empty operand array preserves this section. */
|
|
2041
|
+
intersect(this: Section, operands: Section | readonly Section[]): Section;
|
|
2042
|
+
/** Filled difference removing one cutter or the union of all supplied cutters.
|
|
2043
|
+
* An empty cutter array preserves this section.
|
|
2044
|
+
*/
|
|
2045
|
+
subtract(this: Section, cutters: Section | readonly Section[]): Section;
|
|
2135
2046
|
/**
|
|
2136
2047
|
* Simplifies filled 2D contours using an explicit positive millimetre tolerance.
|
|
2137
2048
|
*
|
|
@@ -2166,6 +2077,19 @@ export declare interface Section {
|
|
|
2166
2077
|
* Sweeps this filled section using the selected frame policy and degree twist.
|
|
2167
2078
|
*/
|
|
2168
2079
|
sweep(this: Section, path: Path3Input, options?: SweepOptions): Solid;
|
|
2080
|
+
/** Reads immutable bounds, filled area in mm², and component/contour/vertex counts.
|
|
2081
|
+
* Requires active synchronous model execution; repeated reads share scoped native results.
|
|
2082
|
+
*/
|
|
2083
|
+
inspect(this: Section): SectionInspection;
|
|
2084
|
+
/** Checks whether this section contains no filled geometry during active synchronous model execution. */
|
|
2085
|
+
isEmpty(this: Section): boolean;
|
|
2086
|
+
/** Observes filled XY islands, retaining each island's holes; empty geometry gives [].
|
|
2087
|
+
* Requires active synchronous model execution. Selection order is unspecified.
|
|
2088
|
+
* Selections and recipes using them can only be evaluated in this session.
|
|
2089
|
+
*/
|
|
2090
|
+
components(this: Section): readonly Section[];
|
|
2091
|
+
/** Reads a copied immutable named anchor during active synchronous model execution. */
|
|
2092
|
+
anchor(this: Section, name: string): Anchor3;
|
|
2169
2093
|
}
|
|
2170
2094
|
|
|
2171
2095
|
declare const sectionBrand: unique symbol;
|
|
@@ -2196,10 +2120,8 @@ export declare interface SectionInspection {
|
|
|
2196
2120
|
readonly area: number;
|
|
2197
2121
|
/** Number of extracted outer and hole contours. */
|
|
2198
2122
|
readonly contourCount: number;
|
|
2199
|
-
/**
|
|
2200
|
-
readonly
|
|
2201
|
-
/** Inclusive minimum coordinates in millimetres. */
|
|
2202
|
-
readonly min: Vector2Data;
|
|
2123
|
+
/** Immutable axis-aligned XY bounds in millimetres. */
|
|
2124
|
+
readonly bounds: Bounds2Data;
|
|
2203
2125
|
/** Number of disconnected filled section components. */
|
|
2204
2126
|
readonly componentCount: number;
|
|
2205
2127
|
/** Number of native section vertices. */
|
|
@@ -2248,7 +2170,7 @@ export declare interface SmoothEdgeTreatment {
|
|
|
2248
2170
|
* @example Shape a body with a through bore
|
|
2249
2171
|
* ```ts
|
|
2250
2172
|
* const body = box({ size: [30, 20, 6] })
|
|
2251
|
-
* .subtract(
|
|
2173
|
+
* .subtract(cylinder({ height: 8, radius: 3 }))
|
|
2252
2174
|
* .rotate([0, 0, 45]);
|
|
2253
2175
|
* ```
|
|
2254
2176
|
*/
|
|
@@ -2279,12 +2201,19 @@ export declare interface Solid {
|
|
|
2279
2201
|
mirror(this: Solid, normal: Vector3Input): Solid;
|
|
2280
2202
|
/** Applies a reusable XYZ placement or canonical row-major matrix. */
|
|
2281
2203
|
transform(this: Solid, placement: Transform3Input): Solid;
|
|
2282
|
-
/** Copies
|
|
2283
|
-
|
|
2204
|
+
/** Copies indexed Float32 XYZ and Uint32 triangle buffers in millimetres for interchange.
|
|
2205
|
+
* Requires an active synchronous model execution; the returned TriangleMesh is caller-owned.
|
|
2206
|
+
*/
|
|
2207
|
+
toMesh(this: Solid): TriangleMesh;
|
|
2208
|
+
/** Robust union with one or more solids; an empty operand array preserves this solid. */
|
|
2209
|
+
union(this: Solid, operands: Solid | readonly Solid[]): Solid;
|
|
2210
|
+
/** Robust intersection with every supplied solid; an empty operand array preserves this solid. */
|
|
2211
|
+
intersect(this: Solid, operands: Solid | readonly Solid[]): Solid;
|
|
2284
2212
|
/**
|
|
2285
|
-
* Robust difference
|
|
2213
|
+
* Robust difference removing one cutter or the union of all supplied cutters.
|
|
2214
|
+
* An empty cutter array preserves this solid.
|
|
2286
2215
|
*/
|
|
2287
|
-
subtract(this: Solid, cutters: readonly Solid[]): Solid;
|
|
2216
|
+
subtract(this: Solid, cutters: Solid | readonly Solid[]): Solid;
|
|
2288
2217
|
/**
|
|
2289
2218
|
* Simplifies a solid using an explicit positive millimetre tolerance.
|
|
2290
2219
|
*
|
|
@@ -2311,6 +2240,42 @@ export declare interface Solid {
|
|
|
2311
2240
|
projectSection(this: Solid): Section;
|
|
2312
2241
|
/** Takes a filled horizontal slice at Z millimetres. */
|
|
2313
2242
|
sliceSection(this: Solid, z: number): Section;
|
|
2243
|
+
/** Reads immutable bounds, volume in mm³, surface area in mm², and material-component count.
|
|
2244
|
+
* Requires active synchronous model execution; repeated reads share scoped native results.
|
|
2245
|
+
*/
|
|
2246
|
+
inspect(this: Solid): SolidInspection;
|
|
2247
|
+
/** Checks whether this solid contains no geometry during active synchronous model execution. */
|
|
2248
|
+
isEmpty(this: Solid): boolean;
|
|
2249
|
+
/** Observes disconnected material pieces, retaining each piece's enclosed cavities.
|
|
2250
|
+
* Requires active synchronous model execution. Empty geometry gives []; order is unspecified.
|
|
2251
|
+
* Selections and recipes using them can only be evaluated in this session.
|
|
2252
|
+
* Containment is bounded to 2,000,000 comparisons; this does not cut connected geometry.
|
|
2253
|
+
*/
|
|
2254
|
+
components(this: Solid): readonly Solid[];
|
|
2255
|
+
/** Reads a copied immutable named anchor during active synchronous model execution. */
|
|
2256
|
+
anchor(this: Solid, name: string): Anchor3;
|
|
2257
|
+
/** Measures actual minimum separation in millimetres during active synchronous model execution.
|
|
2258
|
+
* Contact or overlapping material gives zero; empty geometry and cross-session selections reject.
|
|
2259
|
+
* The kernel manages its search range; results follow native numeric precision.
|
|
2260
|
+
*/
|
|
2261
|
+
distance(this: Solid, other: Solid): number;
|
|
2262
|
+
/** Copies intersections along the finite directed origin-to-endpoint segment in millimetres.
|
|
2263
|
+
* Requires active synchronous model execution.
|
|
2264
|
+
*/
|
|
2265
|
+
castSegment(
|
|
2266
|
+
this: Solid,
|
|
2267
|
+
origin: Vector3Input,
|
|
2268
|
+
endpoint: Vector3Input,
|
|
2269
|
+
): readonly SolidSegmentHit[];
|
|
2270
|
+
/** Splits into [inside the cutter, outside the cutter]; the cutter itself is not returned.
|
|
2271
|
+
* Either result may be empty or contain multiple disconnected components.
|
|
2272
|
+
*/
|
|
2273
|
+
split(this: Solid, cutter: Solid): readonly [Solid, Solid];
|
|
2274
|
+
/** Splits into [positive-normal side, negative side] with closed cut faces.
|
|
2275
|
+
* The nonzero normal is normalized; offset is its signed distance from the origin in millimetres.
|
|
2276
|
+
* Offset defaults to zero. Either result may be empty.
|
|
2277
|
+
*/
|
|
2278
|
+
splitByPlane(this: Solid, plane: PlaneOptions): readonly [Solid, Solid];
|
|
2314
2279
|
}
|
|
2315
2280
|
|
|
2316
2281
|
declare const solidBrand: unique symbol;
|
|
@@ -2321,10 +2286,11 @@ declare const solidBrand: unique symbol;
|
|
|
2321
2286
|
* @example Mesh import
|
|
2322
2287
|
* ```ts
|
|
2323
2288
|
* import { solidFromMesh } from "@metamesh/modeling";
|
|
2324
|
-
* import
|
|
2289
|
+
* import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
2290
|
+
* import { rectangleContour } from "@metamesh/modeling/geometry";
|
|
2325
2291
|
*
|
|
2326
|
-
* const
|
|
2327
|
-
* solidFromMesh(
|
|
2292
|
+
* const plate = mesh.extrude(rectangleContour({ size: [20, 12] }), { height: 6 });
|
|
2293
|
+
* solidFromMesh(plate);
|
|
2328
2294
|
* ```
|
|
2329
2295
|
*/
|
|
2330
2296
|
export declare function solidFromMesh(
|
|
@@ -2338,10 +2304,8 @@ export declare function solidFromMesh(
|
|
|
2338
2304
|
export declare interface SolidInspection {
|
|
2339
2305
|
/** Whether this native solid contains no material. */
|
|
2340
2306
|
readonly isEmpty: boolean;
|
|
2341
|
-
/**
|
|
2342
|
-
readonly
|
|
2343
|
-
/** Inclusive minimum coordinates in millimetres. */
|
|
2344
|
-
readonly min: Vector3Data;
|
|
2307
|
+
/** Immutable axis-aligned XYZ bounds in millimetres. */
|
|
2308
|
+
readonly bounds: Bounds3Data;
|
|
2345
2309
|
/** Number of disconnected material components, each retaining enclosed cavities. */
|
|
2346
2310
|
readonly componentCount: number;
|
|
2347
2311
|
/** Enclosed native solid volume in cubic millimetres. */
|
|
@@ -2394,54 +2358,8 @@ export declare type SphereOptions = CircularPrimitiveOptions &
|
|
|
2394
2358
|
}
|
|
2395
2359
|
);
|
|
2396
2360
|
|
|
2397
|
-
/**
|
|
2398
|
-
* Splits a solid into [inside the cutter, outside the cutter].
|
|
2399
|
-
*
|
|
2400
|
-
* The first result is the intersection; the second is the subtraction. The cutter itself
|
|
2401
|
-
* is not returned. Either result may be empty or contain multiple disconnected components.
|
|
2402
|
-
*
|
|
2403
|
-
* @example Keep the plug and the surrounding body
|
|
2404
|
-
* ```ts
|
|
2405
|
-
* const body = box({ size: [30, 20, 8] });
|
|
2406
|
-
* const cutter = cylinder({ height: 10, diameter: 8 });
|
|
2407
|
-
* const [plug, remainder] = split(body, cutter);
|
|
2408
|
-
* // Move the plug beside the body to show both results.
|
|
2409
|
-
* union([plug.translate([0, -20, 0]), remainder]);
|
|
2410
|
-
* ```
|
|
2411
|
-
*/
|
|
2412
|
-
export declare function split(
|
|
2413
|
-
solid: Solid,
|
|
2414
|
-
cutter: Solid,
|
|
2415
|
-
): readonly [Solid, Solid];
|
|
2416
|
-
|
|
2417
|
-
/**
|
|
2418
|
-
* Splits a solid into [positive-normal side, negative side] at a world-space plane.
|
|
2419
|
-
*
|
|
2420
|
-
* The nonzero normal is normalized; offset is the signed distance from the origin in
|
|
2421
|
-
* millimetres, defaulting to zero. Both cut faces are closed. Select either tuple result
|
|
2422
|
-
* to retain one side; either result may be empty.
|
|
2423
|
-
*
|
|
2424
|
-
* @example Separate two halves at X = 0
|
|
2425
|
-
* ```ts
|
|
2426
|
-
* const body = box({ size: [30, 20, 8] });
|
|
2427
|
-
* const [right, left] = splitByPlane(body, { normal: [1, 0, 0] });
|
|
2428
|
-
* // The gap is only for display; the cut itself removes no material.
|
|
2429
|
-
* union([right.translate([4, 0, 0]), left.translate([-4, 0, 0])]);
|
|
2430
|
-
* ```
|
|
2431
|
-
*
|
|
2432
|
-
* @example Keep only the positive half
|
|
2433
|
-
* ```ts
|
|
2434
|
-
* const [right] = splitByPlane(box({ size: [30, 20, 8] }), { normal: [1, 0, 0] });
|
|
2435
|
-
* right;
|
|
2436
|
-
* ```
|
|
2437
|
-
*/
|
|
2438
|
-
export declare function splitByPlane(
|
|
2439
|
-
solid: Solid,
|
|
2440
|
-
plane: PlaneOptions,
|
|
2441
|
-
): readonly [Solid, Solid];
|
|
2442
|
-
|
|
2443
2361
|
/** Square profile with equal crest and root widths. */
|
|
2444
|
-
declare interface SquareThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
2362
|
+
export declare interface SquareThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
2445
2363
|
/** Selects the square profile family. */
|
|
2446
2364
|
readonly kind: "square";
|
|
2447
2365
|
/**
|
|
@@ -2461,22 +2379,26 @@ declare interface SquareThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
2461
2379
|
*/
|
|
2462
2380
|
export declare function star(options: StarOptions): Section;
|
|
2463
2381
|
|
|
2464
|
-
/**
|
|
2465
|
-
|
|
2466
|
-
*/
|
|
2467
|
-
export declare interface StarOptions extends PrimitiveAttachment {
|
|
2468
|
-
/** Explicit sampling ceilings, bounded by the host policy. */
|
|
2469
|
-
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
2382
|
+
/** Alternating vertex radii and exact point count for a centered XY star. */
|
|
2383
|
+
export declare interface StarContourOptions {
|
|
2470
2384
|
/** Positive outer vertex radius in millimetres. */
|
|
2471
2385
|
readonly outerRadius: number;
|
|
2472
|
-
/** Positive inner vertex radius, smaller than the outer radius. */
|
|
2386
|
+
/** Positive inner vertex radius in millimetres, smaller than the outer radius. */
|
|
2473
2387
|
readonly innerRadius: number;
|
|
2474
|
-
/** Integer outer point count
|
|
2388
|
+
/** Integer outer point count, at least three; output contains twice as many vertices. */
|
|
2475
2389
|
readonly points: number;
|
|
2476
|
-
/**
|
|
2390
|
+
/** Counterclockwise rotation in degrees; defaults to zero with an outer vertex on +X. */
|
|
2477
2391
|
readonly rotation?: number;
|
|
2392
|
+
/** Explicit sampling ceilings, bounded by the host policy during modeling. */
|
|
2393
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
2478
2394
|
}
|
|
2479
2395
|
|
|
2396
|
+
/**
|
|
2397
|
+
* Alternating outer and inner vertices, centered on the XY origin.
|
|
2398
|
+
*/
|
|
2399
|
+
export declare interface StarOptions
|
|
2400
|
+
extends StarContourOptions, PrimitiveAttachment {}
|
|
2401
|
+
|
|
2480
2402
|
/**
|
|
2481
2403
|
* Creates a centered-width native Section along a sampled XY path.
|
|
2482
2404
|
*
|
|
@@ -2579,8 +2501,8 @@ export declare interface SvgSectionOptions {
|
|
|
2579
2501
|
}
|
|
2580
2502
|
|
|
2581
2503
|
/**
|
|
2582
|
-
* Sweeps explicit corresponding contours using the selected frame policy.
|
|
2583
|
-
*
|
|
2504
|
+
* Sweeps a filled Section or explicit corresponding contours using the selected frame policy.
|
|
2505
|
+
* Use `section.sweep(path, options)` in fluent sequences, or this function for generic profile inputs.
|
|
2584
2506
|
*
|
|
2585
2507
|
* @example Sweep
|
|
2586
2508
|
* ```ts
|
|
@@ -2594,7 +2516,7 @@ export declare interface SvgSectionOptions {
|
|
|
2594
2516
|
* ```
|
|
2595
2517
|
*/
|
|
2596
2518
|
export declare function sweep(
|
|
2597
|
-
shape: CorrespondingProfile,
|
|
2519
|
+
shape: Section | CorrespondingProfile,
|
|
2598
2520
|
path: Path3Input,
|
|
2599
2521
|
options?: SweepOptions,
|
|
2600
2522
|
): Solid;
|
|
@@ -2674,17 +2596,11 @@ export declare interface TextSectionOptions {
|
|
|
2674
2596
|
readonly resolution?: GeometryResolution;
|
|
2675
2597
|
}
|
|
2676
2598
|
|
|
2677
|
-
/**
|
|
2678
|
-
declare interface ThreadBevelOptions {
|
|
2679
|
-
/**
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
* Axial bevel extent in millimetres. Active blunt ends default to one sixth of the compensated
|
|
2683
|
-
* male minor radius or female major radius; other ends default to the profile depth.
|
|
2684
|
-
*/
|
|
2685
|
-
readonly bevelSize?: number;
|
|
2686
|
-
/** Apply a 45-degree bevel at Z=length. */
|
|
2687
|
-
readonly bevelTop?: boolean;
|
|
2599
|
+
/** 45-degree end bevels for compensated rods and cutters. */
|
|
2600
|
+
export declare interface ThreadBevelOptions {
|
|
2601
|
+
/** Bottom/top sizes in millimetres. Omitted disables both. Auto uses profile depth for standard/tapered ends,
|
|
2602
|
+
* or one sixth of the compensated male minor/female major radius for blunt ends. */
|
|
2603
|
+
readonly bevel?: Bevel;
|
|
2688
2604
|
}
|
|
2689
2605
|
|
|
2690
2606
|
/**
|
|
@@ -2701,25 +2617,20 @@ declare interface ThreadBevelOptions {
|
|
|
2701
2617
|
*/
|
|
2702
2618
|
export declare function threadedNut(options: ThreadedNutOptions): Solid;
|
|
2703
2619
|
|
|
2704
|
-
/** Nut-edge bevel selection. */
|
|
2705
|
-
export declare type ThreadedNutBevel =
|
|
2706
|
-
"automatic" | "both" | "inside" | "none" | "outside";
|
|
2707
|
-
|
|
2708
2620
|
/**
|
|
2709
2621
|
* Options for a compensated nut with an internal thread.
|
|
2710
2622
|
*/
|
|
2711
2623
|
export declare interface ThreadedNutOptions extends Omit<
|
|
2712
2624
|
InternalThreadCutterOptions,
|
|
2713
|
-
"
|
|
2625
|
+
"bevel" | "length"
|
|
2714
2626
|
> {
|
|
2715
|
-
/**
|
|
2716
|
-
readonly
|
|
2627
|
+
/** Opening bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4); zero disables. */
|
|
2628
|
+
readonly innerBevel?: Bevel;
|
|
2629
|
+
/** Body bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4).
|
|
2630
|
+
* Use [0, "auto"] to keep the outside bottom flat without disabling its inner opening bevel. */
|
|
2631
|
+
readonly outerBevel?: Bevel;
|
|
2717
2632
|
/** Optional physical policy for a round body, independent of the thread's matched facet grid. */
|
|
2718
2633
|
readonly bodyResolution?: GeometryResolution;
|
|
2719
|
-
/** 45-degree body chamfer extent. Default: `min(profile.depth, thickness/4)`. */
|
|
2720
|
-
readonly chamferSize?: number;
|
|
2721
|
-
/** Leave the bottom outside edge flat for build-plate adhesion. Default: `false`. */
|
|
2722
|
-
readonly flushBuildPlateBottom?: boolean;
|
|
2723
2634
|
/** Nut body shape. */
|
|
2724
2635
|
readonly shape: ThreadedNutShape;
|
|
2725
2636
|
/** Nut thickness along +Z in millimetres. */
|
|
@@ -2732,8 +2643,10 @@ export declare interface ThreadedNutOptions extends Omit<
|
|
|
2732
2643
|
export declare interface ThreadedNutPreflight {
|
|
2733
2644
|
/** Polygon segment count used by the nut body. */
|
|
2734
2645
|
readonly bodySegments: number;
|
|
2735
|
-
/**
|
|
2736
|
-
readonly
|
|
2646
|
+
/** Resolved opening bevel sizes in millimetres, [bottom, top]. */
|
|
2647
|
+
readonly innerBevel: readonly [bottom: number, top: number];
|
|
2648
|
+
/** Resolved body bevel sizes in millimetres, [bottom, top]. */
|
|
2649
|
+
readonly outerBevel: readonly [bottom: number, top: number];
|
|
2737
2650
|
/** Maximum compensated cutter radius at either requested face. */
|
|
2738
2651
|
readonly cutterFaceRadius: number;
|
|
2739
2652
|
/** Minimum nut-body inradius across the requested top and bottom faces. */
|
|
@@ -2741,7 +2654,7 @@ export declare interface ThreadedNutPreflight {
|
|
|
2741
2654
|
/** Smallest radial wall left between the body and cutter at either requested face. */
|
|
2742
2655
|
readonly minimumFaceWall: number;
|
|
2743
2656
|
/** Conservative allocation estimates for the extended cutter; excludes the body and Boolean result. */
|
|
2744
|
-
readonly thread:
|
|
2657
|
+
readonly thread: ThreadSolidPreflight;
|
|
2745
2658
|
/** Start-aligned circular facet count used by the compensated thread cutter. */
|
|
2746
2659
|
readonly threadCircularSegments: number;
|
|
2747
2660
|
}
|
|
@@ -2769,9 +2682,7 @@ export declare function threadedRod(options: ThreadedRodOptions): Solid;
|
|
|
2769
2682
|
* Options for a compensated external threaded rod along +Z.
|
|
2770
2683
|
*/
|
|
2771
2684
|
export declare interface ThreadedRodOptions
|
|
2772
|
-
extends
|
|
2773
|
-
Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
|
|
2774
|
-
ThreadBevelOptions {
|
|
2685
|
+
extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
|
|
2775
2686
|
/** Printable fit or caller-calibrated allowances. Default: `normal`. */
|
|
2776
2687
|
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
2777
2688
|
/** Nominal major diameter before male compensation. */
|
|
@@ -2848,7 +2759,7 @@ export declare interface ThreadProfile {
|
|
|
2848
2759
|
}
|
|
2849
2760
|
|
|
2850
2761
|
/** Fields shared by all thread profile specifications. */
|
|
2851
|
-
declare interface ThreadProfileBaseSpec {
|
|
2762
|
+
export declare interface ThreadProfileBaseSpec {
|
|
2852
2763
|
/** Adjacent axial thread spacing in millimetres. */
|
|
2853
2764
|
readonly pitch: number;
|
|
2854
2765
|
/** Optional numerical tolerance overrides. */
|
|
@@ -2858,7 +2769,7 @@ declare interface ThreadProfileBaseSpec {
|
|
|
2858
2769
|
/**
|
|
2859
2770
|
* Supported built-in and caller-defined thread profiles.
|
|
2860
2771
|
*/
|
|
2861
|
-
declare type ThreadProfileSpec =
|
|
2772
|
+
export declare type ThreadProfileSpec =
|
|
2862
2773
|
| AcmeThreadProfileSpec
|
|
2863
2774
|
| ButtressThreadProfileSpec
|
|
2864
2775
|
| CustomThreadProfileSpec
|
|
@@ -2869,8 +2780,44 @@ declare type ThreadProfileSpec =
|
|
|
2869
2780
|
/** Helical ridge mesh construction. */
|
|
2870
2781
|
export declare function threadRidge(options: ThreadRidgeOptions): Solid;
|
|
2871
2782
|
|
|
2872
|
-
/**
|
|
2873
|
-
export declare
|
|
2783
|
+
/** Runtime-neutral options for the dedicated helical ridge mesher. */
|
|
2784
|
+
export declare interface ThreadRidgeOptions {
|
|
2785
|
+
/**
|
|
2786
|
+
* Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
|
|
2787
|
+
* BOSL2-style non-cut lead-in scaling is available on complete thread solids.
|
|
2788
|
+
*/
|
|
2789
|
+
readonly ends?: ThreadEndTreatmentOptions;
|
|
2790
|
+
/** Helix direction. Default: `right`. */
|
|
2791
|
+
readonly handedness?: ThreadHandedness;
|
|
2792
|
+
/** Total threaded axial length in millimetres. */
|
|
2793
|
+
readonly length: number;
|
|
2794
|
+
/** Explicit output and circular allocation ceilings. */
|
|
2795
|
+
readonly limits?: Partial<ModelingLimits>;
|
|
2796
|
+
/** Nominal major diameter before any caller-owned fit compensation. */
|
|
2797
|
+
readonly majorDiameter: number;
|
|
2798
|
+
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
2799
|
+
readonly phase?: number;
|
|
2800
|
+
/** Validated periodic profile repeated around the shaft. */
|
|
2801
|
+
readonly profile: ThreadProfile;
|
|
2802
|
+
/** Optional circular-resolution policy. */
|
|
2803
|
+
readonly resolution?: GeometryResolution;
|
|
2804
|
+
/** Number of evenly phased starts. Default: `1`. */
|
|
2805
|
+
readonly starts?: number;
|
|
2806
|
+
/** Optional numerical tolerance overrides. */
|
|
2807
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
2808
|
+
}
|
|
2809
|
+
|
|
2810
|
+
/** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
|
|
2811
|
+
export declare interface ThreadSolidPreflight {
|
|
2812
|
+
/** Uniform axial intervals required only by a requested physical segment-length limit. */
|
|
2813
|
+
readonly axialIntervals: number;
|
|
2814
|
+
/** Start-aligned full-circle segment count used by the surface mesh. */
|
|
2815
|
+
readonly circularSegments: number;
|
|
2816
|
+
/** Conservative surface-row count across profile breaks, ends, and bevel stations. */
|
|
2817
|
+
readonly estimatedRows: number;
|
|
2818
|
+
/** Conservative triangle count used by the selected output allocation policy. */
|
|
2819
|
+
readonly estimatedTriangles: number;
|
|
2820
|
+
}
|
|
2874
2821
|
|
|
2875
2822
|
/**
|
|
2876
2823
|
* Torus around +Z.
|
|
@@ -3038,7 +2985,7 @@ export declare type Transform3Data = readonly [
|
|
|
3038
2985
|
export declare type Transform3Input = Transform3 | Transform3Data;
|
|
3039
2986
|
|
|
3040
2987
|
/** Trapezoidal thread profile with a configurable included angle. */
|
|
3041
|
-
declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
2988
|
+
export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
3042
2989
|
/** Selects the trapezoidal profile family. */
|
|
3043
2990
|
readonly kind: "trapezoidal";
|
|
3044
2991
|
/**
|
|
@@ -3054,13 +3001,11 @@ declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
3054
3001
|
readonly includedAngle?: number;
|
|
3055
3002
|
}
|
|
3056
3003
|
|
|
3057
|
-
/**
|
|
3058
|
-
* A topology-preserving indexed triangle mesh with XYZ vertex positions.
|
|
3059
|
-
*/
|
|
3004
|
+
/** A topology-preserving indexed triangle mesh with mutable owned XYZ buffers. */
|
|
3060
3005
|
export declare interface TriangleMesh {
|
|
3061
3006
|
/** Three unsigned vertex indices per triangle. */
|
|
3062
3007
|
readonly indices: Uint32Array;
|
|
3063
|
-
/** Flat XYZ coordinates
|
|
3008
|
+
/** Flat XYZ coordinates in millimetres. */
|
|
3064
3009
|
readonly positions: Float32Array;
|
|
3065
3010
|
}
|
|
3066
3011
|
|
|
@@ -3068,8 +3013,9 @@ export declare interface TriangleMesh {
|
|
|
3068
3013
|
* Measurements and optional edge-connected topology from one validated mesh traversal.
|
|
3069
3014
|
*/
|
|
3070
3015
|
export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
|
|
3071
|
-
/** Number of
|
|
3072
|
-
|
|
3016
|
+
/** Number of surface shells connected by shared indexed edges when includeTopology is requested.
|
|
3017
|
+
* Cavities count separately; shells may be open unless requireClosed is enabled. Coordinates are not welded. */
|
|
3018
|
+
readonly shellCount?: number;
|
|
3073
3019
|
/** Number of distinct indexed undirected edges when `includeTopology` is requested. */
|
|
3074
3020
|
readonly edgeCount?: number;
|
|
3075
3021
|
}
|
|
@@ -3090,10 +3036,18 @@ export declare interface TriangleMeshMeasurements {
|
|
|
3090
3036
|
readonly vertexCount: number;
|
|
3091
3037
|
}
|
|
3092
3038
|
|
|
3039
|
+
/** Mesh measurements with the indexed surface-shell and edge counts requested by includeTopology. */
|
|
3040
|
+
export declare interface TriangleMeshTopologyAnalysis extends TriangleMeshAnalysis {
|
|
3041
|
+
/** Number of surface shells connected by shared indexed edges; cavities count separately. */
|
|
3042
|
+
readonly shellCount: number;
|
|
3043
|
+
/** Number of distinct indexed undirected edges. */
|
|
3044
|
+
readonly edgeCount: number;
|
|
3045
|
+
}
|
|
3046
|
+
|
|
3093
3047
|
/**
|
|
3094
3048
|
* ISO/UTS-like 60-degree truncated triangular profile.
|
|
3095
3049
|
*/
|
|
3096
|
-
declare interface TriangularThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
3050
|
+
export declare interface TriangularThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
3097
3051
|
/** Selects the 60-degree triangular profile family. */
|
|
3098
3052
|
readonly kind: "triangular";
|
|
3099
3053
|
/**
|
|
@@ -3121,23 +3075,44 @@ export declare function tube(options: TubeOptions): Solid;
|
|
|
3121
3075
|
/**
|
|
3122
3076
|
* Dimensions, placement, and tessellation for a hollow Z-axis tube.
|
|
3123
3077
|
*/
|
|
3124
|
-
export declare
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
}
|
|
3078
|
+
export declare type TubeOptions = CircularPrimitiveOptions &
|
|
3079
|
+
PrimitiveAttachment & {
|
|
3080
|
+
/**
|
|
3081
|
+
* Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
|
|
3082
|
+
* @defaultValue `true`
|
|
3083
|
+
*/
|
|
3084
|
+
readonly center?: boolean;
|
|
3085
|
+
/** Total height along Z in millimetres. */
|
|
3086
|
+
readonly height: number;
|
|
3087
|
+
/** Inner nominal dimension meets polygon vertices or faces; defaults to vertex. */
|
|
3088
|
+
readonly innerSizing?: RadialSizing;
|
|
3089
|
+
/** Outer nominal dimension meets polygon vertices or faces; defaults to vertex. */
|
|
3090
|
+
readonly outerSizing?: RadialSizing;
|
|
3091
|
+
} & (
|
|
3092
|
+
| {
|
|
3093
|
+
/** Positive nominal inner radius in millimetres. */
|
|
3094
|
+
readonly innerRadius: number;
|
|
3095
|
+
/** Nominal outer radius in millimetres, greater than innerRadius. */
|
|
3096
|
+
readonly outerRadius: number;
|
|
3097
|
+
/** Diameter dimensions cannot be combined with radius dimensions. */
|
|
3098
|
+
readonly innerDiameter?: never;
|
|
3099
|
+
/** Diameter dimensions cannot be combined with radius dimensions. */
|
|
3100
|
+
readonly outerDiameter?: never;
|
|
3101
|
+
}
|
|
3102
|
+
| {
|
|
3103
|
+
/** Positive nominal inner diameter in millimetres. */
|
|
3104
|
+
readonly innerDiameter: number;
|
|
3105
|
+
/** Nominal outer diameter in millimetres, greater than innerDiameter. */
|
|
3106
|
+
readonly outerDiameter: number;
|
|
3107
|
+
/** Radius dimensions cannot be combined with diameter dimensions. */
|
|
3108
|
+
readonly innerRadius?: never;
|
|
3109
|
+
/** Radius dimensions cannot be combined with diameter dimensions. */
|
|
3110
|
+
readonly outerRadius?: never;
|
|
3111
|
+
}
|
|
3112
|
+
);
|
|
3138
3113
|
|
|
3139
3114
|
/**
|
|
3140
|
-
* Robust union.
|
|
3115
|
+
* Robust union of one or more shapes; empty input rejects during declaration.
|
|
3141
3116
|
*
|
|
3142
3117
|
* @example Union
|
|
3143
3118
|
* ```ts
|