@metamesh/modeling 0.16.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 +193 -0
- package/README.md +137 -142
- package/dist/api/engine.d.ts +128 -65
- package/dist/api/geometry.d.ts +327 -483
- package/dist/api/index.d.ts +537 -415
- package/dist/api/mesh.d.ts +460 -0
- package/dist/api/text.d.ts +1 -1
- package/dist/docs/guides/concepts.md +130 -87
- 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 +94 -56
- package/dist/docs/guides/standalone-model.md +8 -7
- package/dist/docs/manifest.json +2941 -968
- 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 +112 -0
- 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 +112 -0
- 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 +41 -0
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +14 -0
- 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 +16 -1
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +16 -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 +1 -1
- 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 +7 -6
- package/dist/docs/reference/geometry/bounds3.md +7 -6
- 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 +8 -9
- 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 +7 -4
- 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 +12 -3
- 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 +40 -0
- 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 +110 -0
- 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 +110 -0
- 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 +77 -0
- package/dist/docs/reference/model/HoleCutterOverrun.md +35 -0
- package/dist/docs/reference/model/HoleCutterRecess.md +87 -0
- 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 +9 -5
- package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -3
- 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 +2 -2
- 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 +14 -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 +7 -6
- package/dist/docs/reference/model/bounds3.md +7 -6
- 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 +6 -4
- 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 +2 -2
- 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 +8 -4
- 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 +55 -0
- 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 +3 -3
- 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 +5 -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 +1 -1
- 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 +1 -1
- 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} +21 -9
- package/dist/engine/{operation-environment.js → operations/environment.js} +2 -2
- package/dist/engine/{extrusion-finishing.js → operations/extrusion-finishing.js} +8 -35
- package/dist/engine/operations/hole-cutter.js +148 -0
- package/dist/engine/{inspection-operations.js → operations/inspection.js} +6 -6
- package/dist/engine/operations/knuckle-hinge.js +128 -0
- 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} +36 -24
- 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} +9 -9
- 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 +49 -11
- package/dist/geometry/bounds.js +0 -17
- package/dist/geometry/circular-sampling.js +45 -0
- package/dist/geometry/convex-offset.js +41 -0
- package/dist/geometry/heightfield.js +10 -12
- package/dist/{model → geometry}/immutable-buffer.js +28 -7
- package/dist/geometry/index.js +18 -23
- package/dist/geometry/loft/loft.js +11 -6
- package/dist/geometry/math/immutable-value.js +1 -1
- 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} +141 -59
- package/dist/geometry/svg/matrix.js +21 -0
- 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/hole-cutter.js +1 -0
- package/dist/model/immutable-generation-data.js +33 -2
- package/dist/model/operations.js +35 -144
- package/dist/model/recipe-declaration.js +7 -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/BoundsFromSizeOptions.md +0 -24
- package/dist/docs/reference/geometry/ThreadedNutBevel.md +0 -14
- package/dist/docs/reference/geometry/analyzeTriangleMesh.md +0 -61
- package/dist/docs/reference/geometry/boundsFromSize.md +0 -84
- package/dist/docs/reference/geometry/containsBounds.md +0 -73
- 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/engine/knuckle-hinge-operation.js +0 -85
- package/dist/geometry/profiles/profiles.js +0 -91
- /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/geometry.d.ts
CHANGED
|
@@ -50,37 +50,6 @@ export declare interface AlignedCircularSegmentsOptions {
|
|
|
50
50
|
readonly resolution?: GeometryResolution;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
/**
|
|
54
|
-
* Validates and measures a mesh in one position and one triangle traversal.
|
|
55
|
-
*
|
|
56
|
-
* Bounds, area in square model units and signed volume in cubic model units are computed without
|
|
57
|
-
* copying or changing the input buffers. Volume is meaningful for consistently wound closed
|
|
58
|
-
* geometry; `requireClosed` checks oriented edge closure. Optional indexed topology counts require
|
|
59
|
-
* every position vertex to be referenced and do not establish freedom from self-intersections.
|
|
60
|
-
* Results and nested bounds are immutable snapshots. Caller-owned mutable meshes are freshly
|
|
61
|
-
* inspected on every call, never cached.
|
|
62
|
-
*/
|
|
63
|
-
export declare function analyzeTriangleMesh(
|
|
64
|
-
mesh: TriangleMesh,
|
|
65
|
-
options?: TriangleMeshAnalysisOptions,
|
|
66
|
-
): TriangleMeshAnalysis;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Measures triangle shape, edge topology, vertex concentration, and connected planar patches.
|
|
70
|
-
*
|
|
71
|
-
* Positions are never welded: valence and manifold status describe the supplied indexed topology.
|
|
72
|
-
* Degenerate triangles are reported rather than rejected, while malformed buffers, non-finite
|
|
73
|
-
* positions, missing vertex references, and the configured complexity limit throw.
|
|
74
|
-
*
|
|
75
|
-
* @param mesh - Indexed triangle mesh in arbitrary consistent model units.
|
|
76
|
-
* @param options - Scale-aware tolerance and analysis budget.
|
|
77
|
-
* @returns A deterministic report without mutating or copying the mesh.
|
|
78
|
-
*/
|
|
79
|
-
export declare function analyzeTriangleMeshQuality(
|
|
80
|
-
mesh: TriangleMesh,
|
|
81
|
-
options?: TriangleMeshQualityOptions,
|
|
82
|
-
): TriangleMeshQualityReport;
|
|
83
|
-
|
|
84
53
|
/**
|
|
85
54
|
* An attachment pose on a solid or assembly.
|
|
86
55
|
*
|
|
@@ -235,6 +204,13 @@ export declare type AxisAngleRotation3 =
|
|
|
235
204
|
readonly degrees?: never;
|
|
236
205
|
};
|
|
237
206
|
|
|
207
|
+
/** One size for both ends, or independent sizes in bottom/top order. Zero disables an end. */
|
|
208
|
+
export declare type Bevel =
|
|
209
|
+
BevelSize | readonly [bottom: BevelSize, top: BevelSize];
|
|
210
|
+
|
|
211
|
+
/** Nonnegative 45-degree axial/radial bevel size in millimetres, or factory automatic sizing. */
|
|
212
|
+
export declare type BevelSize = number | "auto";
|
|
213
|
+
|
|
238
214
|
/** Immutable finite XY bounds in millimetres, with tuple coordinates for data interoperability. */
|
|
239
215
|
export declare interface Bounds2 extends Bounds2Data {
|
|
240
216
|
/** Returns nonnegative X/Y dimensions in millimetres, including zero extents. */
|
|
@@ -248,14 +224,15 @@ export declare interface Bounds2 extends Bounds2Data {
|
|
|
248
224
|
}
|
|
249
225
|
|
|
250
226
|
/**
|
|
251
|
-
*
|
|
227
|
+
* Constructs immutable finite XY bounds from ordered extrema or nonnegative size in millimetres.
|
|
252
228
|
*
|
|
253
229
|
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
254
230
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
231
|
+
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
255
232
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
256
|
-
* runtime
|
|
233
|
+
* runtime 10.0.0 or newer in major 10.
|
|
257
234
|
*/
|
|
258
|
-
export declare function bounds2(input:
|
|
235
|
+
export declare function bounds2(input: Bounds2Options | Bounds2): Bounds2;
|
|
259
236
|
|
|
260
237
|
/** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
|
|
261
238
|
export declare interface Bounds2Data {
|
|
@@ -268,6 +245,29 @@ export declare interface Bounds2Data {
|
|
|
268
245
|
/** An immutable XY bounds value or its plain min/max representation. */
|
|
269
246
|
export declare type Bounds2Input = Bounds2 | Bounds2Data;
|
|
270
247
|
|
|
248
|
+
/** XY bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
249
|
+
export declare type Bounds2Options =
|
|
250
|
+
| {
|
|
251
|
+
/** Inclusive minimum XY coordinates in millimetres. */
|
|
252
|
+
readonly min: Vector2Input;
|
|
253
|
+
/** Inclusive maximum XY coordinates in millimetres. */
|
|
254
|
+
readonly max: Vector2Input;
|
|
255
|
+
/** Size construction cannot be combined with extrema. */
|
|
256
|
+
readonly size?: never;
|
|
257
|
+
/** Center applies only to size construction. */
|
|
258
|
+
readonly center?: never;
|
|
259
|
+
}
|
|
260
|
+
| {
|
|
261
|
+
/** Nonnegative XY dimensions in millimetres. */
|
|
262
|
+
readonly size: Vector2Input;
|
|
263
|
+
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
264
|
+
readonly center?: boolean;
|
|
265
|
+
/** Minimum coordinates are unavailable when size is supplied. */
|
|
266
|
+
readonly min?: never;
|
|
267
|
+
/** Maximum coordinates are unavailable when size is supplied. */
|
|
268
|
+
readonly max?: never;
|
|
269
|
+
};
|
|
270
|
+
|
|
271
271
|
/** Immutable finite XYZ bounds in millimetres, with tuple coordinates for data interoperability. */
|
|
272
272
|
export declare interface Bounds3 extends Bounds3Data {
|
|
273
273
|
/** Returns nonnegative X/Y/Z dimensions in millimetres, including zero extents. */
|
|
@@ -281,14 +281,15 @@ export declare interface Bounds3 extends Bounds3Data {
|
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
|
-
*
|
|
284
|
+
* Constructs immutable finite XYZ bounds from ordered extrema or nonnegative size in millimetres.
|
|
285
285
|
*
|
|
286
286
|
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
287
287
|
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
288
|
+
* Size construction centers on the origin unless `center` is false. Size and extrema are exclusive.
|
|
288
289
|
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
289
|
-
* runtime
|
|
290
|
+
* runtime 10.0.0 or newer in major 10.
|
|
290
291
|
*/
|
|
291
|
-
export declare function bounds3(input:
|
|
292
|
+
export declare function bounds3(input: Bounds3Options | Bounds3): Bounds3;
|
|
292
293
|
|
|
293
294
|
/** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
|
|
294
295
|
export declare interface Bounds3Data {
|
|
@@ -301,6 +302,29 @@ export declare interface Bounds3Data {
|
|
|
301
302
|
/** An immutable XYZ bounds value or its plain min/max representation. */
|
|
302
303
|
export declare type Bounds3Input = Bounds3 | Bounds3Data;
|
|
303
304
|
|
|
305
|
+
/** XYZ bounds construction from existing extrema or nonnegative dimensions, never both. */
|
|
306
|
+
export declare type Bounds3Options =
|
|
307
|
+
| {
|
|
308
|
+
/** Inclusive minimum XYZ coordinates in millimetres. */
|
|
309
|
+
readonly min: Vector3Input;
|
|
310
|
+
/** Inclusive maximum XYZ coordinates in millimetres. */
|
|
311
|
+
readonly max: Vector3Input;
|
|
312
|
+
/** Size construction cannot be combined with extrema. */
|
|
313
|
+
readonly size?: never;
|
|
314
|
+
/** Center applies only to size construction. */
|
|
315
|
+
readonly center?: never;
|
|
316
|
+
}
|
|
317
|
+
| {
|
|
318
|
+
/** Nonnegative XYZ dimensions in millimetres. */
|
|
319
|
+
readonly size: Vector3Input;
|
|
320
|
+
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
321
|
+
readonly center?: boolean;
|
|
322
|
+
/** Minimum coordinates are unavailable when size is supplied. */
|
|
323
|
+
readonly min?: never;
|
|
324
|
+
/** Maximum coordinates are unavailable when size is supplied. */
|
|
325
|
+
readonly max?: never;
|
|
326
|
+
};
|
|
327
|
+
|
|
304
328
|
/** Midpoint of finite XY bounds in millimetres. */
|
|
305
329
|
export declare function boundsCenter(bounds: Bounds2Data): Vector2Data;
|
|
306
330
|
|
|
@@ -333,24 +357,6 @@ export declare interface BoundsFitOptions {
|
|
|
333
357
|
readonly maxScale?: number;
|
|
334
358
|
}
|
|
335
359
|
|
|
336
|
-
/** Creates immutable centered XY bounds from nonnegative dimensions in millimetres. */
|
|
337
|
-
export declare function boundsFromSize(
|
|
338
|
-
size: Vector2Data,
|
|
339
|
-
options?: BoundsFromSizeOptions,
|
|
340
|
-
): Bounds2Data;
|
|
341
|
-
|
|
342
|
-
/** Creates immutable centered XYZ bounds from nonnegative dimensions in millimetres. */
|
|
343
|
-
export declare function boundsFromSize(
|
|
344
|
-
size: Vector3Data,
|
|
345
|
-
options?: BoundsFromSizeOptions,
|
|
346
|
-
): Bounds3Data;
|
|
347
|
-
|
|
348
|
-
/** Placement of bounds constructed from nonnegative millimetre dimensions. */
|
|
349
|
-
export declare interface BoundsFromSizeOptions {
|
|
350
|
-
/** Center on the origin; false starts at the origin. Defaults to true. */
|
|
351
|
-
readonly center?: boolean;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
360
|
/** Inclusive XY dimensions in millimetres; zero extents are retained. */
|
|
355
361
|
export declare function boundsSize(bounds: Bounds2Data): Vector2Data;
|
|
356
362
|
|
|
@@ -370,13 +376,13 @@ export declare type BoxAnchorFace =
|
|
|
370
376
|
/** Box dimensions and construction origin for one named face anchor. */
|
|
371
377
|
export declare interface BoxAnchorOptions {
|
|
372
378
|
/** XYZ dimensions, or one uniform dimension, in millimetres. */
|
|
373
|
-
readonly size: number |
|
|
379
|
+
readonly size: number | Vector3Input;
|
|
374
380
|
/** Named outward face whose center is the attachment point. */
|
|
375
381
|
readonly face: BoxAnchorFace;
|
|
376
382
|
/** Centers the box around its construction origin; defaults to true, matching box(). */
|
|
377
383
|
readonly center?: boolean;
|
|
378
384
|
/** Construction origin; centered-box center or noncentered minimum corner. Defaults to zero. */
|
|
379
|
-
readonly origin?:
|
|
385
|
+
readonly origin?: Vector3Input;
|
|
380
386
|
}
|
|
381
387
|
|
|
382
388
|
/** Box edges use +Z top, +Y front and +X right; vertical names list front/back first. */
|
|
@@ -414,7 +420,7 @@ export declare interface BoxOptions extends PrimitiveAttachment {
|
|
|
414
420
|
*/
|
|
415
421
|
readonly center?: boolean;
|
|
416
422
|
/** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
|
|
417
|
-
readonly size: number |
|
|
423
|
+
readonly size: number | Vector3Input;
|
|
418
424
|
/** Uniform treatment or independent disjoint nominal edge/group treatments. */
|
|
419
425
|
readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
|
|
420
426
|
}
|
|
@@ -459,20 +465,18 @@ export declare interface ChamferedEdgeTreatment {
|
|
|
459
465
|
*/
|
|
460
466
|
export declare const circleContour: (options: CircleContourOptions) => Contour;
|
|
461
467
|
|
|
462
|
-
/**
|
|
463
|
-
* Circular profile dimensions with exactly one radius or diameter and explicit sampling.
|
|
464
|
-
*/
|
|
468
|
+
/** Circular profile dimensions with exactly one radius or diameter and explicit sampling. */
|
|
465
469
|
export declare type CircleContourOptions = CircularPrimitiveOptions &
|
|
466
470
|
RadialSizingOptions &
|
|
467
471
|
(
|
|
468
472
|
| {
|
|
469
|
-
/** Positive nominal radius in millimetres
|
|
473
|
+
/** Positive nominal radius in millimetres. */
|
|
470
474
|
readonly radius: number;
|
|
471
|
-
/**
|
|
475
|
+
/** Diameter is unavailable when radius is supplied. */
|
|
472
476
|
readonly diameter?: never;
|
|
473
477
|
}
|
|
474
478
|
| {
|
|
475
|
-
/** Positive
|
|
479
|
+
/** Positive nominal diameter in millimetres. */
|
|
476
480
|
readonly diameter: number;
|
|
477
481
|
/** Radius is unavailable when diameter is supplied. */
|
|
478
482
|
readonly radius?: never;
|
|
@@ -502,6 +506,19 @@ export declare interface CircularResolutionOptions extends GeometryResolution {
|
|
|
502
506
|
readonly sizing?: RadialSizing;
|
|
503
507
|
}
|
|
504
508
|
|
|
509
|
+
/** Full-circle count and radial envelopes of its regular sampled polygon, in millimetres. */
|
|
510
|
+
export declare interface CircularSampling {
|
|
511
|
+
/** Exact resolved full-circle segment count. */
|
|
512
|
+
readonly segments: number;
|
|
513
|
+
/** Distance from the origin to every sampled vertex. */
|
|
514
|
+
readonly vertexRadius: number;
|
|
515
|
+
/** Minimum distance from the origin to each straight sampled edge. */
|
|
516
|
+
readonly faceRadius: number;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/** Nominal circle size and explicit physical sampling; supply exactly one radius or diameter. */
|
|
520
|
+
export declare type CircularSamplingOptions = CircleContourOptions;
|
|
521
|
+
|
|
505
522
|
/** Close, normal, and loose metric clearance-hole diameters in millimetres. */
|
|
506
523
|
export declare interface ClearanceHoleDimensions {
|
|
507
524
|
/** Close-fit clearance-hole diameter. */
|
|
@@ -627,49 +644,6 @@ export declare const computeParallelTransportFrames: (
|
|
|
627
644
|
limits?: Partial<GeometrySamplingLimits>,
|
|
628
645
|
) => readonly PathFrame[];
|
|
629
646
|
|
|
630
|
-
/**
|
|
631
|
-
* Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells.
|
|
632
|
-
*
|
|
633
|
-
* Coordinates are millimetres. Indexed closure and positive aggregate volume are required; callers
|
|
634
|
-
* may use validateSolidMesh first when geometric intersections and shell orientation are untrusted.
|
|
635
|
-
* Fresh mutable input is inspected on every call, and buffers are never changed.
|
|
636
|
-
*
|
|
637
|
-
* @param mesh - Consistently oriented closed mesh with positive enclosed volume.
|
|
638
|
-
* @returns A fresh immutable XYZ volume centroid.
|
|
639
|
-
*/
|
|
640
|
-
export declare function computeTriangleMeshCentroid(
|
|
641
|
-
mesh: TriangleMesh,
|
|
642
|
-
): Vector3Data;
|
|
643
|
-
|
|
644
|
-
/**
|
|
645
|
-
* Creates an order-independent regression signature for a manufacturing mesh.
|
|
646
|
-
*
|
|
647
|
-
* The input must be non-empty, closed, consistently wound, and have no unreferenced vertices.
|
|
648
|
-
* Vertex and triangle order do not affect the fingerprint; winding, quantized geometry, and
|
|
649
|
-
* connectivity metrics do. The fingerprint is a regression aid, not a cryptographic digest.
|
|
650
|
-
*
|
|
651
|
-
* @param mesh - Closed oriented mesh to measure without mutation.
|
|
652
|
-
* @param options - Absolute quantization and complexity limits.
|
|
653
|
-
* @returns Compact counts, bounds, volume, topology, tolerances, and canonical fingerprint.
|
|
654
|
-
* @throws {@link GeometryError} When validation, topology, tolerance, or complexity checks fail.
|
|
655
|
-
*/
|
|
656
|
-
export declare function computeTriangleMeshSignature(
|
|
657
|
-
mesh: TriangleMesh,
|
|
658
|
-
options?: TriangleMeshSignatureOptions,
|
|
659
|
-
): TriangleMeshSignature;
|
|
660
|
-
|
|
661
|
-
/** Tests actual XY containment, including touching boundaries; dimensions must match. */
|
|
662
|
-
export declare function containsBounds(
|
|
663
|
-
outer: Bounds2Data,
|
|
664
|
-
inner: Bounds2Data,
|
|
665
|
-
): boolean;
|
|
666
|
-
|
|
667
|
-
/** Tests actual XYZ containment, including touching boundaries; dimensions must match. */
|
|
668
|
-
export declare function containsBounds(
|
|
669
|
-
outer: Bounds3Data,
|
|
670
|
-
inner: Bounds3Data,
|
|
671
|
-
): boolean;
|
|
672
|
-
|
|
673
647
|
/**
|
|
674
648
|
* A sampled closed two-dimensional boundary whose first point is not repeated at the end.
|
|
675
649
|
*
|
|
@@ -854,7 +828,7 @@ export declare interface CylinderAnchorOptions {
|
|
|
854
828
|
/** Centers the cylinder along Z; defaults to true, matching cylinder(). */
|
|
855
829
|
readonly center?: boolean;
|
|
856
830
|
/** Construction origin; centered-axis midpoint or noncentered bottom axis. Defaults to zero. */
|
|
857
|
-
readonly origin?:
|
|
831
|
+
readonly origin?: Vector3Input;
|
|
858
832
|
}
|
|
859
833
|
|
|
860
834
|
/**
|
|
@@ -1091,13 +1065,13 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
|
|
|
1091
1065
|
(
|
|
1092
1066
|
| {
|
|
1093
1067
|
/** Positive XY radii in millimetres; mutually exclusive with size. */
|
|
1094
|
-
readonly radius:
|
|
1068
|
+
readonly radius: Vector2Input;
|
|
1095
1069
|
/** Full XY extents are unavailable when radius is supplied. */
|
|
1096
1070
|
readonly size?: never;
|
|
1097
1071
|
}
|
|
1098
1072
|
| {
|
|
1099
1073
|
/** Positive full XY extents in millimetres; mutually exclusive with radius. */
|
|
1100
|
-
readonly size:
|
|
1074
|
+
readonly size: Vector2Input;
|
|
1101
1075
|
/** XY radii are unavailable when size is supplied. */
|
|
1102
1076
|
readonly radius?: never;
|
|
1103
1077
|
}
|
|
@@ -1129,28 +1103,17 @@ export declare function eulerTransform3(
|
|
|
1129
1103
|
): Transform3Data;
|
|
1130
1104
|
|
|
1131
1105
|
/**
|
|
1132
|
-
*
|
|
1133
|
-
* Path2 profiles must be closed; raw point collections have an implicit closing edge.
|
|
1134
|
-
*
|
|
1135
|
-
* @example Extrude point data without an engine
|
|
1136
|
-
* ```ts
|
|
1137
|
-
* const outline = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
|
|
1138
|
-
* extrudeMesh(outline, { height: 8 });
|
|
1139
|
-
* ```
|
|
1106
|
+
* Dimensions and sampling for pure +Z mesh extrusion, without end treatments.
|
|
1140
1107
|
*/
|
|
1141
|
-
export declare
|
|
1142
|
-
input: Path2Input,
|
|
1143
|
-
options: ExtrudeOptions,
|
|
1144
|
-
): TriangleMesh;
|
|
1145
|
-
|
|
1146
|
-
/**
|
|
1147
|
-
* Dimensions and sampling shared by native and pure +Z extrusion.
|
|
1148
|
-
*/
|
|
1149
|
-
export declare interface ExtrudeOptions extends ExtrusionSamplingOptions {
|
|
1108
|
+
export declare interface ExtrudeMeshOptions extends ExtrusionSamplingOptions {
|
|
1150
1109
|
/** Positive extrusion height in millimetres. */
|
|
1151
1110
|
readonly height: number;
|
|
1152
1111
|
/** Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false. */
|
|
1153
1112
|
readonly center?: boolean;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
/** Native +Z extrusion with optional inward end treatments. */
|
|
1116
|
+
export declare interface ExtrudeOptions extends ExtrudeMeshOptions {
|
|
1154
1117
|
/** Independent inward end treatments on straight convex single-contour extrusions. */
|
|
1155
1118
|
readonly ends?: EndTreatments;
|
|
1156
1119
|
}
|
|
@@ -1370,28 +1333,6 @@ export declare function gridPatternTransforms(
|
|
|
1370
1333
|
options: GridPatternOptions,
|
|
1371
1334
|
): readonly Transform3Data[];
|
|
1372
1335
|
|
|
1373
|
-
/**
|
|
1374
|
-
* Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base.
|
|
1375
|
-
*
|
|
1376
|
-
* Heights run once per grid point after preflight; center-error adds one evaluation per cell.
|
|
1377
|
-
* Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit
|
|
1378
|
-
* Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks.
|
|
1379
|
-
*
|
|
1380
|
-
* @see {@link preflightHeightfield}
|
|
1381
|
-
*
|
|
1382
|
-
* @example Sample a closed wavy mesh
|
|
1383
|
-
* ```ts
|
|
1384
|
-
* heightfieldMesh({
|
|
1385
|
-
* size: [30, 20], segments: [24, 16],
|
|
1386
|
-
* height: ([x, y]) => 3 + Math.cos(x / 5) * Math.cos(y / 5),
|
|
1387
|
-
* });
|
|
1388
|
-
* ```
|
|
1389
|
-
*/
|
|
1390
|
-
export declare function heightfieldMesh(
|
|
1391
|
-
options: HeightfieldOptions,
|
|
1392
|
-
limits?: HeightfieldMeshLimits,
|
|
1393
|
-
): TriangleMesh;
|
|
1394
|
-
|
|
1395
1336
|
/** Trusted output ceilings for pure construction; omitted fields use engine defaults. */
|
|
1396
1337
|
export declare type HeightfieldMeshLimits = Partial<
|
|
1397
1338
|
Pick<ModelingLimits, "maxVertices" | "maxTriangles" | "maxBytes">
|
|
@@ -1421,11 +1362,11 @@ export declare type HeightfieldOptions = {
|
|
|
1421
1362
|
} & (
|
|
1422
1363
|
| {
|
|
1423
1364
|
/** Positive XY footprint for uniform sampling. */
|
|
1424
|
-
readonly size:
|
|
1365
|
+
readonly size: Vector2Input;
|
|
1425
1366
|
/** Exact positive integer X/Y interval counts. */
|
|
1426
1367
|
readonly segments: readonly [x: number, y: number];
|
|
1427
1368
|
/** Lower-left footprint XY. Omitted centers the footprint on XY. */
|
|
1428
|
-
readonly origin?:
|
|
1369
|
+
readonly origin?: Vector2Input;
|
|
1429
1370
|
/** Explicit coordinates cannot be combined with uniform sampling. */
|
|
1430
1371
|
readonly coordinates?: never;
|
|
1431
1372
|
}
|
|
@@ -1461,93 +1402,55 @@ export declare interface HeightfieldPreflight {
|
|
|
1461
1402
|
readonly byteCount: number;
|
|
1462
1403
|
}
|
|
1463
1404
|
|
|
1464
|
-
/**
|
|
1465
|
-
|
|
1466
|
-
* shaft's radial/axial frame. The mesh is intended for union with its
|
|
1467
|
-
* minor-envelope cylinder and never owns WASM objects.
|
|
1468
|
-
*/
|
|
1469
|
-
export declare function helicalThreadRidgeMesh(
|
|
1470
|
-
options: HelicalThreadRidgeMeshOptions,
|
|
1471
|
-
): TriangleMesh;
|
|
1405
|
+
/** Identity transform, safe to share because it is frozen. */
|
|
1406
|
+
export declare const IDENTITY_TRANSFORM3: Transform3Data;
|
|
1472
1407
|
|
|
1473
|
-
/**
|
|
1474
|
-
export declare interface
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
/** Helix direction. Default: `right`. */
|
|
1481
|
-
readonly handedness?: ThreadHandedness;
|
|
1482
|
-
/** Total threaded axial length in millimetres. */
|
|
1408
|
+
/** Owned immutable numeric data. Iterate without copying; use copy() for mutable storage. */
|
|
1409
|
+
export declare interface ImmutableBuffer<
|
|
1410
|
+
T extends NumericArray,
|
|
1411
|
+
> extends Iterable<number> {
|
|
1412
|
+
/** Opaque element-storage brand; construct buffers with immutableBuffer(). */
|
|
1413
|
+
readonly [immutableBufferBrand]: T;
|
|
1414
|
+
/** Number of numeric elements, independent of their byte width. */
|
|
1483
1415
|
readonly length: number;
|
|
1484
|
-
/**
|
|
1485
|
-
|
|
1486
|
-
/**
|
|
1487
|
-
|
|
1488
|
-
/**
|
|
1489
|
-
|
|
1490
|
-
/** Validated periodic profile repeated around the shaft. */
|
|
1491
|
-
readonly profile: ThreadProfile;
|
|
1492
|
-
/** Optional circular-resolution policy. */
|
|
1493
|
-
readonly resolution?: GeometryResolution;
|
|
1494
|
-
/** Number of evenly phased starts. Default: `1`. */
|
|
1495
|
-
readonly starts?: number;
|
|
1496
|
-
/** Optional numerical tolerance overrides. */
|
|
1497
|
-
readonly tolerance?: GeometryToleranceOptions;
|
|
1416
|
+
/** Reads an integer offset; negative offsets count from the end. Invalid offsets return undefined. */
|
|
1417
|
+
at(this: void, index: number): number | undefined;
|
|
1418
|
+
/** Returns a fresh mutable array of the original numeric type; never exposes cached storage. */
|
|
1419
|
+
copy(this: void): T;
|
|
1420
|
+
/** Returns an independent read-only iterator over the numeric elements without copying them. */
|
|
1421
|
+
[Symbol.iterator](this: void): IterableIterator<number>;
|
|
1498
1422
|
}
|
|
1499
1423
|
|
|
1500
1424
|
/**
|
|
1501
|
-
*
|
|
1502
|
-
*
|
|
1503
|
-
*
|
|
1504
|
-
*
|
|
1505
|
-
*
|
|
1506
|
-
*
|
|
1507
|
-
*
|
|
1425
|
+
* Copies numeric data once into private storage. This pure helper needs no active generation.
|
|
1426
|
+
* @example
|
|
1427
|
+
* ```ts
|
|
1428
|
+
* import { immutableBuffer } from "@metamesh/modeling";
|
|
1429
|
+
* const heights = immutableBuffer(new Float32Array([2, 4, 6]));
|
|
1430
|
+
* const count = heights.length;
|
|
1431
|
+
* const first = heights.at(0);
|
|
1432
|
+
* const doubled = Array.from(heights, (height) => height * 2);
|
|
1433
|
+
* const editable = heights.copy();
|
|
1434
|
+
* editable[0] = 8; // heights still contains 2, 4, 6.
|
|
1435
|
+
* ```
|
|
1508
1436
|
*/
|
|
1509
|
-
export declare function
|
|
1510
|
-
|
|
1511
|
-
):
|
|
1437
|
+
export declare function immutableBuffer<T extends NumericArray>(
|
|
1438
|
+
source: T,
|
|
1439
|
+
): ImmutableBuffer<T>;
|
|
1512
1440
|
|
|
1513
|
-
|
|
1514
|
-
export declare interface HelicalThreadSolidMeshOptions extends HelicalThreadRidgeMeshOptions {
|
|
1515
|
-
/** Apply a 45-degree radial bevel at the lower target face. */
|
|
1516
|
-
readonly bevelBottom?: boolean;
|
|
1517
|
-
/** Lower bevel size override. Takes precedence over `bevelSize`. */
|
|
1518
|
-
readonly bevelBottomSize?: number;
|
|
1519
|
-
/** Distance of each bevel target face inward from the corresponding mesh end. */
|
|
1520
|
-
readonly bevelOffset?: number;
|
|
1521
|
-
/** `inset` trims an external rod; `outset` expands an internal cutter. */
|
|
1522
|
-
readonly bevelMode?: "inset" | "outset";
|
|
1523
|
-
/** Axial and radial bevel size. Defaults to the profile depth. */
|
|
1524
|
-
readonly bevelSize?: number;
|
|
1525
|
-
/** Apply a 45-degree radial bevel at the upper target face. */
|
|
1526
|
-
readonly bevelTop?: boolean;
|
|
1527
|
-
/** Upper bevel size override. Takes precedence over `bevelSize`. */
|
|
1528
|
-
readonly bevelTopSize?: number;
|
|
1529
|
-
}
|
|
1441
|
+
declare const immutableBufferBrand: unique symbol;
|
|
1530
1442
|
|
|
1531
|
-
/**
|
|
1532
|
-
export declare interface
|
|
1533
|
-
/**
|
|
1534
|
-
readonly
|
|
1535
|
-
/**
|
|
1536
|
-
readonly
|
|
1537
|
-
/** Conservative surface-row count across profile breaks, ends, and bevel stations. */
|
|
1538
|
-
readonly estimatedRows: number;
|
|
1539
|
-
/** Conservative triangle count used by the selected output allocation policy. */
|
|
1540
|
-
readonly estimatedTriangles: number;
|
|
1443
|
+
/** Immutable local XYZ positions and triangle indices, suitable for a computed value or part. */
|
|
1444
|
+
export declare interface ImmutableTriangleMesh {
|
|
1445
|
+
/** Packed XYZ coordinates in millimetres. */
|
|
1446
|
+
readonly positions: ImmutableBuffer<Float32Array>;
|
|
1447
|
+
/** Zero-based vertex indices, three per triangle. */
|
|
1448
|
+
readonly indices: ImmutableBuffer<Uint32Array>;
|
|
1541
1449
|
}
|
|
1542
1450
|
|
|
1543
|
-
/** Identity transform, safe to share because it is frozen. */
|
|
1544
|
-
export declare const IDENTITY_TRANSFORM3: Transform3Data;
|
|
1545
|
-
|
|
1546
1451
|
/** Options for a compensated internal-thread subtraction tool along +Z. */
|
|
1547
1452
|
export declare interface InternalThreadCutterOptions
|
|
1548
|
-
extends
|
|
1549
|
-
Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
|
|
1550
|
-
ThreadBevelOptions {
|
|
1453
|
+
extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
|
|
1551
1454
|
/** Printable fit or caller-calibrated allowances. Default: `normal`. */
|
|
1552
1455
|
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
1553
1456
|
/** Nominal major diameter before female compensation and faceting correction. */
|
|
@@ -1572,19 +1475,6 @@ export declare function inverseTransform3(
|
|
|
1572
1475
|
*/
|
|
1573
1476
|
export declare function isGeometryError(value: unknown): value is GeometryError;
|
|
1574
1477
|
|
|
1575
|
-
/**
|
|
1576
|
-
* Concatenates meshes into one indexed mesh without welding coincident vertices.
|
|
1577
|
-
*
|
|
1578
|
-
* Inputs are validated and never mutated. Face order and winding remain stable.
|
|
1579
|
-
*
|
|
1580
|
-
* @param meshes - One or more meshes to concatenate.
|
|
1581
|
-
* @returns Fresh typed arrays with indices offset to their source vertex ranges.
|
|
1582
|
-
* @throws {@link GeometryError} When no mesh is supplied or an input is invalid.
|
|
1583
|
-
*/
|
|
1584
|
-
export declare function joinTriangleMeshes(
|
|
1585
|
-
meshes: readonly TriangleMesh[],
|
|
1586
|
-
): TriangleMesh;
|
|
1587
|
-
|
|
1588
1478
|
/** Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. */
|
|
1589
1479
|
export declare interface KnuckleHingeBaseSpec {
|
|
1590
1480
|
/** Total extent along the +X pin axis, centered at the origin. */
|
|
@@ -1783,28 +1673,6 @@ export declare interface LineCurve3 {
|
|
|
1783
1673
|
export declare type LoftCorrespondence =
|
|
1784
1674
|
"direct" | "reindex" | "fast-distance" | "distance";
|
|
1785
1675
|
|
|
1786
|
-
/**
|
|
1787
|
-
* Lofts simple point loops at z heights or explicit right-handed frames, in input order.
|
|
1788
|
-
*
|
|
1789
|
-
* An explicit correspondence method is required. CCW-normalized loops retain their
|
|
1790
|
-
* seam and original vertices; unequal counts gain subdivisions or repeated fan slots.
|
|
1791
|
-
* Both ends use ear-clipped caps, supporting concave profiles without center fans.
|
|
1792
|
-
* Intermediate slices interpolate placed world vertices, never frame axes.
|
|
1793
|
-
* Transformed coordinates must fit finite Float32 mesh storage.
|
|
1794
|
-
* Path2 profiles must be closed; raw point collections are interpreted as closed.
|
|
1795
|
-
*
|
|
1796
|
-
* @example Loft with explicit point correspondence
|
|
1797
|
-
* ```ts
|
|
1798
|
-
* const bottom = rectangleContour({ size: [20, 12] });
|
|
1799
|
-
* const top = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
|
|
1800
|
-
* loftMesh([{ profile: bottom, z: 0 }, { profile: top, z: 30 }], { correspondence: "reindex" });
|
|
1801
|
-
* ```
|
|
1802
|
-
*/
|
|
1803
|
-
export declare function loftMesh(
|
|
1804
|
-
stations: readonly LoftMeshStation[],
|
|
1805
|
-
options: LoftOptions,
|
|
1806
|
-
): TriangleMesh;
|
|
1807
|
-
|
|
1808
1676
|
/** One point-data profile at a height or explicit right-handed spatial frame. */
|
|
1809
1677
|
export declare type LoftMeshStation = LoftPlacement & {
|
|
1810
1678
|
/** Closed Path2 or ordered finite XY boundary points with an implicit closing edge. */
|
|
@@ -1812,10 +1680,10 @@ export declare type LoftMeshStation = LoftPlacement & {
|
|
|
1812
1680
|
};
|
|
1813
1681
|
|
|
1814
1682
|
/**
|
|
1815
|
-
* Shared controls for native and pure lofts. Point data and arbitrary Sections
|
|
1683
|
+
* Shared controls for native and pure lofts. Point data and arbitrary Sections default to direct correspondence.
|
|
1816
1684
|
*/
|
|
1817
1685
|
export declare interface LoftOptions {
|
|
1818
|
-
/** One method or one per consecutive station gap. Omitted preserves known landmarks, including circle/ellipse-to-rectangle corners,
|
|
1686
|
+
/** 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. */
|
|
1819
1687
|
readonly correspondence?: LoftCorrespondence | readonly LoftCorrespondence[];
|
|
1820
1688
|
/** 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. */
|
|
1821
1689
|
readonly distribution?: "perimeter" | "segments";
|
|
@@ -1889,15 +1757,6 @@ export declare function measureInternalCylindricalGearPairMotion(
|
|
|
1889
1757
|
options?: CylindricalGearPairMotionOptions,
|
|
1890
1758
|
): CylindricalGearPairMotionReport;
|
|
1891
1759
|
|
|
1892
|
-
/**
|
|
1893
|
-
* Computes axis-aligned bounds for a non-empty mesh.
|
|
1894
|
-
*
|
|
1895
|
-
* @param mesh - Mesh whose finite complete vertices will be measured.
|
|
1896
|
-
* @returns Fresh immutable minimum and maximum XYZ tuples.
|
|
1897
|
-
* @throws {@link GeometryError} When the mesh is structurally invalid.
|
|
1898
|
-
*/
|
|
1899
|
-
export declare const meshBounds: (mesh: TriangleMesh) => Bounds3Data;
|
|
1900
|
-
|
|
1901
1760
|
/**
|
|
1902
1761
|
* Curated metric modeling dimensions for clearance holes, regular hex nuts,
|
|
1903
1762
|
* and socket-head cap screws.
|
|
@@ -2042,23 +1901,9 @@ export declare function normalizeRegion(
|
|
|
2042
1901
|
tolerance?: GeometryToleranceOptions,
|
|
2043
1902
|
): RegionData;
|
|
2044
1903
|
|
|
2045
|
-
/**
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
* The operation changes indices only: it never moves, adds, welds, or removes vertices; never
|
|
2049
|
-
* crosses a coplanar-patch boundary; and never changes the face count. Each accepted flip improves
|
|
2050
|
-
* a deterministic ordering of triangle angles, aspect ratio, diagonal locality, and local
|
|
2051
|
-
* incidence/valence concentration. Unsupported input or a failed final integrity check returns the
|
|
2052
|
-
* exact original mesh object. Malformed buffers and the configured analysis complexity limit throw.
|
|
2053
|
-
*
|
|
2054
|
-
* @param mesh - Closed, consistently wound indexed triangle mesh in arbitrary consistent units.
|
|
2055
|
-
* @param options - Patch eligibility, numeric tolerance, and deterministic work bounds.
|
|
2056
|
-
* @returns Optimized connectivity and before/after diagnostics, or an unchanged safe fallback.
|
|
2057
|
-
*/
|
|
2058
|
-
export declare function optimizePlanarPatches(
|
|
2059
|
-
mesh: TriangleMesh,
|
|
2060
|
-
options?: PlanarMeshOptimizationOptions,
|
|
2061
|
-
): PlanarMeshOptimizationResult;
|
|
1904
|
+
/** Numeric storage supported by immutable generation buffers. */
|
|
1905
|
+
export declare type NumericArray =
|
|
1906
|
+
Float32Array | Float64Array | Uint32Array | Uint8Array | Int32Array;
|
|
2062
1907
|
|
|
2063
1908
|
/** Immutable directed XY polyline. Closure is explicit and does not imply a filled Section. */
|
|
2064
1909
|
export declare interface Path2 {
|
|
@@ -2360,33 +2205,6 @@ export declare interface PolylineResamplingOptions extends CurveSamplingOptions
|
|
|
2360
2205
|
readonly closed?: boolean;
|
|
2361
2206
|
}
|
|
2362
2207
|
|
|
2363
|
-
/**
|
|
2364
|
-
* Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts.
|
|
2365
|
-
*
|
|
2366
|
-
* This pure operation needs no engine and neither evaluates `height` nor allocates mesh buffers.
|
|
2367
|
-
* Successful preflight leaves height values, Float32 base storage, and generated mesh validity to
|
|
2368
|
-
* construction. `byteCount` covers position and index buffers, not total working memory.
|
|
2369
|
-
*
|
|
2370
|
-
* @see {@link heightfieldMesh}
|
|
2371
|
-
*/
|
|
2372
|
-
export declare function preflightHeightfield(
|
|
2373
|
-
options: HeightfieldOptions,
|
|
2374
|
-
limits?: HeightfieldMeshLimits,
|
|
2375
|
-
): HeightfieldPreflight;
|
|
2376
|
-
|
|
2377
|
-
/**
|
|
2378
|
-
* Checks thread dimensions, profile, end treatments, sampling, and conservative estimates against output limits.
|
|
2379
|
-
*
|
|
2380
|
-
* This pure operation needs no engine and constructs planning data without vertex or index buffers.
|
|
2381
|
-
* `circularSegments` is the selected count; row and triangle counts are conservative estimates.
|
|
2382
|
-
* Successful preflight leaves generated coordinate and topology checks to mesh construction.
|
|
2383
|
-
*
|
|
2384
|
-
* @see {@link helicalThreadSolidMesh}
|
|
2385
|
-
*/
|
|
2386
|
-
export declare function preflightHelicalThreadSolidMesh(
|
|
2387
|
-
options: HelicalThreadSolidMeshOptions,
|
|
2388
|
-
): HelicalThreadSolidMeshPreflight;
|
|
2389
|
-
|
|
2390
2208
|
/**
|
|
2391
2209
|
* Resolves compensated cutter dimensions and checks extended mesh estimates against output limits.
|
|
2392
2210
|
*
|
|
@@ -2395,20 +2213,23 @@ export declare function preflightHelicalThreadSolidMesh(
|
|
|
2395
2213
|
* creates planning data without mesh buffers or native objects. Row and triangle counts are
|
|
2396
2214
|
* estimates; mesh validity and native construction are checked later.
|
|
2397
2215
|
*
|
|
2398
|
-
*
|
|
2399
|
-
*
|
|
2216
|
+
* See `mesh.preflightThreadSolid` for standalone mesh estimates.
|
|
2217
|
+
* See `mesh.threadSolid` for standalone mesh construction.
|
|
2400
2218
|
*/
|
|
2401
2219
|
export declare function preflightInternalThreadCutter(
|
|
2402
2220
|
options: InternalThreadCutterOptions,
|
|
2403
|
-
):
|
|
2221
|
+
): ThreadSolidPreflight;
|
|
2404
2222
|
|
|
2405
2223
|
/**
|
|
2406
2224
|
* Parses and validates bounded SVG input, constructing its normalized sampled region and diagnostics.
|
|
2407
2225
|
*
|
|
2408
2226
|
* This pure operation performs curve flattening, fill and stroke construction, and polygon union;
|
|
2409
2227
|
* it needs no browser or engine. Geometry counts measure the returned region at the selected
|
|
2410
|
-
* resolution, rather than predicting later mesh allocation.
|
|
2411
|
-
*
|
|
2228
|
+
* resolution, rather than predicting later mesh allocation. With `fit`, painted bounds are
|
|
2229
|
+
* uniformly centered inside the target and adaptive sampling remains in final millimetres.
|
|
2230
|
+
* Refinement runs at most eight bounded import passes; exact circular counts retain precedence.
|
|
2231
|
+
* Without `fit` the region may be empty. Tiny-island and short-edge indicators do not establish
|
|
2232
|
+
* manufacturability or later solid validity.
|
|
2412
2233
|
*
|
|
2413
2234
|
* @param svg - Complete SVG XML source, limited to 256 KiB of UTF-8.
|
|
2414
2235
|
* @param options - Physical flattening and viewport-origin controls.
|
|
@@ -2428,7 +2249,7 @@ export declare function preflightSvgRegion(
|
|
|
2428
2249
|
* `thread` contains conservative cutter estimates, excluding the body and Boolean result.
|
|
2429
2250
|
* Successful preflight leaves mesh validity, native construction, and manufacturing fit to later checks.
|
|
2430
2251
|
*
|
|
2431
|
-
*
|
|
2252
|
+
* See `mesh.preflightThreadSolid` for standalone mesh estimates.
|
|
2432
2253
|
*/
|
|
2433
2254
|
export declare function preflightThreadedNut(
|
|
2434
2255
|
options: ThreadedNutOptions,
|
|
@@ -2441,12 +2262,12 @@ export declare function preflightThreadedNut(
|
|
|
2441
2262
|
* host execution. It creates planning data without mesh buffers or native objects; returned row
|
|
2442
2263
|
* and triangle counts are estimates. Mesh validity and native construction are checked later.
|
|
2443
2264
|
*
|
|
2444
|
-
*
|
|
2445
|
-
*
|
|
2265
|
+
* See `mesh.preflightThreadSolid` for standalone mesh estimates.
|
|
2266
|
+
* See `mesh.threadSolid` for standalone mesh construction.
|
|
2446
2267
|
*/
|
|
2447
2268
|
export declare function preflightThreadedRod(
|
|
2448
2269
|
options: ThreadedRodOptions,
|
|
2449
|
-
):
|
|
2270
|
+
): ThreadSolidPreflight;
|
|
2450
2271
|
|
|
2451
2272
|
/** Anchor attachment shared by solid and filled-section factories. */
|
|
2452
2273
|
export declare interface PrimitiveAttachment {
|
|
@@ -2672,7 +2493,11 @@ export declare interface RadialSizingOptions {
|
|
|
2672
2493
|
}
|
|
2673
2494
|
|
|
2674
2495
|
/**
|
|
2675
|
-
* Creates an immutable sampled CCW rectangle boundary.
|
|
2496
|
+
* Creates an immutable sampled CCW rectangle boundary.
|
|
2497
|
+
*
|
|
2498
|
+
* @remarks
|
|
2499
|
+
* A zero round radius leaves square corners. When rounded corners meet, their shared endpoints
|
|
2500
|
+
* appear once.
|
|
2676
2501
|
*
|
|
2677
2502
|
* Use [rectangle](/docs/reference/model/rectangle) for a filled Section.
|
|
2678
2503
|
*
|
|
@@ -2692,7 +2517,7 @@ export declare function rectangleContour(
|
|
|
2692
2517
|
*/
|
|
2693
2518
|
export declare interface RectangleContourOptions {
|
|
2694
2519
|
/** Positive uniform size or explicit XY extents in millimetres. */
|
|
2695
|
-
readonly size: number |
|
|
2520
|
+
readonly size: number | Vector2Input;
|
|
2696
2521
|
/** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
|
|
2697
2522
|
readonly center?: boolean;
|
|
2698
2523
|
/** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
|
|
@@ -2764,7 +2589,7 @@ export declare function regionBounds(region: RegionData): Bounds2Data;
|
|
|
2764
2589
|
export declare type RegionData = readonly PolygonData[];
|
|
2765
2590
|
|
|
2766
2591
|
/**
|
|
2767
|
-
* Creates
|
|
2592
|
+
* Creates an immutable centered CCW point loop with vertex or face radial sizing and an implicit seam.
|
|
2768
2593
|
*
|
|
2769
2594
|
* @example Hexagon sized to its faces
|
|
2770
2595
|
* ```ts
|
|
@@ -2865,6 +2690,25 @@ export declare function resolveArcSegments(
|
|
|
2865
2690
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2866
2691
|
): number;
|
|
2867
2692
|
|
|
2693
|
+
/**
|
|
2694
|
+
* Resolves circular sampling and its actual radial envelopes without allocating boundary points.
|
|
2695
|
+
*
|
|
2696
|
+
* Vertex sizing retains the nominal vertex radius; face sizing retains the nominal face radius.
|
|
2697
|
+
* Exact `segments` override resolution, while allocation ceilings still apply. Adaptive sampling
|
|
2698
|
+
* uses the same count calculation as `resolveCircularSegments` and `circleContour` and rejects
|
|
2699
|
+
* exhausted limits rather than coarsening. The returned record is immutable and needs no engine.
|
|
2700
|
+
*
|
|
2701
|
+
* @example Check a nominal 8 mm face-sized bore
|
|
2702
|
+
* ```ts
|
|
2703
|
+
* const bore = resolveCircularSampling({ diameter: 8, segments: 64, sizing: "face" });
|
|
2704
|
+
* bore.faceRadius; // 4 mm
|
|
2705
|
+
* bore.vertexRadius; // slightly larger than 4 mm
|
|
2706
|
+
* ```
|
|
2707
|
+
*/
|
|
2708
|
+
export declare function resolveCircularSampling(
|
|
2709
|
+
options: CircularSamplingOptions,
|
|
2710
|
+
): CircularSampling;
|
|
2711
|
+
|
|
2868
2712
|
/**
|
|
2869
2713
|
* Resolves a deterministic full-circle segment count for one radius.
|
|
2870
2714
|
*
|
|
@@ -3007,40 +2851,6 @@ export declare function resolveThreadCircularSegments(
|
|
|
3007
2851
|
options: ThreadCircularSegmentsOptions,
|
|
3008
2852
|
): number;
|
|
3009
2853
|
|
|
3010
|
-
/**
|
|
3011
|
-
* Returns a copy of a mesh with every triangle winding reversed.
|
|
3012
|
-
*
|
|
3013
|
-
* @param mesh - Mesh to copy and reverse.
|
|
3014
|
-
* @returns Fresh position and index buffers; the input remains unchanged.
|
|
3015
|
-
*/
|
|
3016
|
-
export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
|
|
3017
|
-
|
|
3018
|
-
/**
|
|
3019
|
-
* Revolves a non-duplicated closed `[radius, z]` profile around +Z.
|
|
3020
|
-
*
|
|
3021
|
-
* The profile is ordered counter-clockwise when radius points right and Z
|
|
3022
|
-
* points up. Angular and profile seams wrap by index. A profile point on the
|
|
3023
|
-
* axis is emitted once and joined as a triangle fan, avoiding coincident seam
|
|
3024
|
-
* vertices and zero-area quads. Profile edges that lie entirely on the axis
|
|
3025
|
-
* collapse to the solid's interior and are intentionally omitted.
|
|
3026
|
-
* Profile coordinates must fit finite Float32 mesh storage.
|
|
3027
|
-
* Path2 profiles must be closed; raw point collections have an implicit closing edge.
|
|
3028
|
-
*
|
|
3029
|
-
* @param profile - Closed CCW `[radius, z]` profile without a duplicated seam point.
|
|
3030
|
-
* @param options - Optional physical or exact circumferential sampling controls. Defaults to `{}`.
|
|
3031
|
-
* @returns A closed indexed triangle mesh revolved counter-clockwise around +Z.
|
|
3032
|
-
*
|
|
3033
|
-
* @example Partial revolution with end caps
|
|
3034
|
-
* ```ts
|
|
3035
|
-
* // Each point is [radius, Z]; the profile seam is implicit.
|
|
3036
|
-
* revolveMesh([[0, 0], [12, 0], [8, 20], [0, 20]], { degrees: 270 });
|
|
3037
|
-
* ```
|
|
3038
|
-
*/
|
|
3039
|
-
export declare const revolveMesh: (
|
|
3040
|
-
input: Path2Input,
|
|
3041
|
-
options?: RevolveOptions,
|
|
3042
|
-
) => TriangleMesh;
|
|
3043
|
-
|
|
3044
2854
|
/**
|
|
3045
2855
|
* Circumferential sampling and degree sweep shared by pure and filled revolution.
|
|
3046
2856
|
*/
|
|
@@ -3050,7 +2860,7 @@ export declare interface RevolveOptions extends CircularPrimitiveOptions {
|
|
|
3050
2860
|
* smaller sweeps form partial revolutions with end caps.
|
|
3051
2861
|
* Segment counts describe a complete circle and scale to this angular span. Native filled
|
|
3052
2862
|
* revolutions require at least three sweep intervals: adaptive sampling refines to that floor,
|
|
3053
|
-
* while exact counts that imply fewer intervals reject. Pure
|
|
2863
|
+
* while exact counts that imply fewer intervals reject. Pure mesh.revolve supports one interval.
|
|
3054
2864
|
* @defaultValue `360`
|
|
3055
2865
|
*/
|
|
3056
2866
|
readonly degrees?: number;
|
|
@@ -3473,20 +3283,31 @@ export declare interface SquareThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
3473
3283
|
}
|
|
3474
3284
|
|
|
3475
3285
|
/**
|
|
3476
|
-
* Creates
|
|
3286
|
+
* Creates an immutable centered CCW alternating-radius star within the selected profile sampling ceiling.
|
|
3477
3287
|
*
|
|
3478
3288
|
* @example Five-point outline
|
|
3479
3289
|
* ```ts
|
|
3480
|
-
* starContour(12,
|
|
3290
|
+
* starContour({ outerRadius: 12, innerRadius: 6, points: 5 });
|
|
3481
3291
|
* ```
|
|
3482
3292
|
*/
|
|
3483
3293
|
export declare const starContour: (
|
|
3484
|
-
|
|
3485
|
-
points: number,
|
|
3486
|
-
innerRadius?: number,
|
|
3487
|
-
limits?: Partial<GeometrySamplingLimits>,
|
|
3294
|
+
options: StarContourOptions,
|
|
3488
3295
|
) => readonly Vector2Data[];
|
|
3489
3296
|
|
|
3297
|
+
/** Alternating vertex radii and exact point count for a centered XY star. */
|
|
3298
|
+
export declare interface StarContourOptions {
|
|
3299
|
+
/** Positive outer vertex radius in millimetres. */
|
|
3300
|
+
readonly outerRadius: number;
|
|
3301
|
+
/** Positive inner vertex radius in millimetres, smaller than the outer radius. */
|
|
3302
|
+
readonly innerRadius: number;
|
|
3303
|
+
/** Integer outer point count, at least three; output contains twice as many vertices. */
|
|
3304
|
+
readonly points: number;
|
|
3305
|
+
/** Counterclockwise rotation in degrees; defaults to zero with an outer vertex on +X. */
|
|
3306
|
+
readonly rotation?: number;
|
|
3307
|
+
/** Explicit sampling ceilings, bounded by the host policy during modeling. */
|
|
3308
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
3309
|
+
}
|
|
3310
|
+
|
|
3490
3311
|
/** End-cap treatment for an open stroked path. */
|
|
3491
3312
|
export declare type StrokeCap = "butt" | "round" | "square";
|
|
3492
3313
|
|
|
@@ -3536,6 +3357,12 @@ export declare const subtract3: (a: Vector3Data, b: Vector3Data) => Vector3Data;
|
|
|
3536
3357
|
|
|
3537
3358
|
/** Sampling controls for deterministic SVG-to-region conversion. */
|
|
3538
3359
|
export declare interface SvgImportOptions {
|
|
3360
|
+
/**
|
|
3361
|
+
* Uniformly fit painted bounds inside this positioned XY target in millimetres.
|
|
3362
|
+
* Adaptive resolution describes the fitted size; exact circular counts retain precedence.
|
|
3363
|
+
* Empty painted geometry cannot be fitted. Omitted preserves the document's physical size.
|
|
3364
|
+
*/
|
|
3365
|
+
readonly fit?: Bounds2Input;
|
|
3539
3366
|
/** Explicit profile and circular allocation ceilings; bounded SVG source/work limits remain fixed. */
|
|
3540
3367
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
3541
3368
|
/** Exact segments for a complete ellipse or round stroke feature. */
|
|
@@ -3551,6 +3378,12 @@ export declare interface SvgImportOptions {
|
|
|
3551
3378
|
|
|
3552
3379
|
/** Normalized sampled SVG region plus bounded source, geometry, and safe-repair diagnostics. */
|
|
3553
3380
|
export declare interface SvgRegionPreflight {
|
|
3381
|
+
/**
|
|
3382
|
+
* Applied scale and translation from origin-normalized SVG millimetres to final model
|
|
3383
|
+
* millimetres, present only when a fit target was supplied. Reuse it for registered layers
|
|
3384
|
+
* imported with the same origin and document coordinate system.
|
|
3385
|
+
*/
|
|
3386
|
+
readonly fit?: BoundsFit2;
|
|
3554
3387
|
/** Physical and final-topology measurements of `region`. */
|
|
3555
3388
|
readonly geometry: SvgRegionPreflightGeometryMetrics;
|
|
3556
3389
|
/** Appearance-preserving cleanup observed during parsing and normalization. */
|
|
@@ -3609,23 +3442,6 @@ export declare interface SvgRegionPreflightSourceMetrics {
|
|
|
3609
3442
|
readonly parsedVertexCount: number;
|
|
3610
3443
|
}
|
|
3611
3444
|
|
|
3612
|
-
/**
|
|
3613
|
-
* Sweeps one explicitly ordered point loop, with caps or a geometrically matching closed seam.
|
|
3614
|
-
*
|
|
3615
|
-
* @example Sweep point data along a bent path
|
|
3616
|
-
* ```ts
|
|
3617
|
-
* const profile = rectangleContour({ size: [6, 3] });
|
|
3618
|
-
* sweepMesh(profile, [[0, 0, 0], [0, 0, 15], [10, 0, 25]], {
|
|
3619
|
-
* orientation: { kind: "transport", initialNormal: [0, 1, 0] },
|
|
3620
|
-
* });
|
|
3621
|
-
* ```
|
|
3622
|
-
*/
|
|
3623
|
-
export declare function sweepMesh(
|
|
3624
|
-
profile: Path2Input,
|
|
3625
|
-
path: Path3Input,
|
|
3626
|
-
options?: SweepOptions,
|
|
3627
|
-
): TriangleMesh;
|
|
3628
|
-
|
|
3629
3445
|
/**
|
|
3630
3446
|
* Controls shared by pure mesh construction and filled modeling sweeps.
|
|
3631
3447
|
*/
|
|
@@ -3675,17 +3491,11 @@ export declare type SweepOrientation =
|
|
|
3675
3491
|
readonly kind: "frenet";
|
|
3676
3492
|
};
|
|
3677
3493
|
|
|
3678
|
-
/**
|
|
3494
|
+
/** 45-degree end bevels for compensated rods and cutters. */
|
|
3679
3495
|
export declare interface ThreadBevelOptions {
|
|
3680
|
-
/**
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
* Axial bevel extent in millimetres. Active blunt ends default to one sixth of the compensated
|
|
3684
|
-
* male minor radius or female major radius; other ends default to the profile depth.
|
|
3685
|
-
*/
|
|
3686
|
-
readonly bevelSize?: number;
|
|
3687
|
-
/** Apply a 45-degree bevel at Z=length. */
|
|
3688
|
-
readonly bevelTop?: boolean;
|
|
3496
|
+
/** Bottom/top sizes in millimetres. Omitted disables both. Auto uses profile depth for standard/tapered ends,
|
|
3497
|
+
* or one sixth of the compensated male minor/female major radius for blunt ends. */
|
|
3498
|
+
readonly bevel?: Bevel;
|
|
3689
3499
|
}
|
|
3690
3500
|
|
|
3691
3501
|
/** Inputs for resolving one shared circular facet count for a mating thread pair. */
|
|
@@ -3724,25 +3534,20 @@ export declare interface ThreadCompensationOptions {
|
|
|
3724
3534
|
readonly tolerance?: GeometryToleranceOptions;
|
|
3725
3535
|
}
|
|
3726
3536
|
|
|
3727
|
-
/** Nut-edge bevel selection. */
|
|
3728
|
-
export declare type ThreadedNutBevel =
|
|
3729
|
-
"automatic" | "both" | "inside" | "none" | "outside";
|
|
3730
|
-
|
|
3731
3537
|
/**
|
|
3732
3538
|
* Options for a compensated nut with an internal thread.
|
|
3733
3539
|
*/
|
|
3734
3540
|
export declare interface ThreadedNutOptions extends Omit<
|
|
3735
3541
|
InternalThreadCutterOptions,
|
|
3736
|
-
"
|
|
3542
|
+
"bevel" | "length"
|
|
3737
3543
|
> {
|
|
3738
|
-
/**
|
|
3739
|
-
readonly
|
|
3544
|
+
/** Opening bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4); zero disables. */
|
|
3545
|
+
readonly innerBevel?: Bevel;
|
|
3546
|
+
/** Body bevels in [bottom, top] order. Omitted or auto uses min(profile.depth, thickness/4).
|
|
3547
|
+
* Use [0, "auto"] to keep the outside bottom flat without disabling its inner opening bevel. */
|
|
3548
|
+
readonly outerBevel?: Bevel;
|
|
3740
3549
|
/** Optional physical policy for a round body, independent of the thread's matched facet grid. */
|
|
3741
3550
|
readonly bodyResolution?: GeometryResolution;
|
|
3742
|
-
/** 45-degree body chamfer extent. Default: `min(profile.depth, thickness/4)`. */
|
|
3743
|
-
readonly chamferSize?: number;
|
|
3744
|
-
/** Leave the bottom outside edge flat for build-plate adhesion. Default: `false`. */
|
|
3745
|
-
readonly flushBuildPlateBottom?: boolean;
|
|
3746
3551
|
/** Nut body shape. */
|
|
3747
3552
|
readonly shape: ThreadedNutShape;
|
|
3748
3553
|
/** Nut thickness along +Z in millimetres. */
|
|
@@ -3755,8 +3560,10 @@ export declare interface ThreadedNutOptions extends Omit<
|
|
|
3755
3560
|
export declare interface ThreadedNutPreflight {
|
|
3756
3561
|
/** Polygon segment count used by the nut body. */
|
|
3757
3562
|
readonly bodySegments: number;
|
|
3758
|
-
/**
|
|
3759
|
-
readonly
|
|
3563
|
+
/** Resolved opening bevel sizes in millimetres, [bottom, top]. */
|
|
3564
|
+
readonly innerBevel: readonly [bottom: number, top: number];
|
|
3565
|
+
/** Resolved body bevel sizes in millimetres, [bottom, top]. */
|
|
3566
|
+
readonly outerBevel: readonly [bottom: number, top: number];
|
|
3760
3567
|
/** Maximum compensated cutter radius at either requested face. */
|
|
3761
3568
|
readonly cutterFaceRadius: number;
|
|
3762
3569
|
/** Minimum nut-body inradius across the requested top and bottom faces. */
|
|
@@ -3764,7 +3571,7 @@ export declare interface ThreadedNutPreflight {
|
|
|
3764
3571
|
/** Smallest radial wall left between the body and cutter at either requested face. */
|
|
3765
3572
|
readonly minimumFaceWall: number;
|
|
3766
3573
|
/** Conservative allocation estimates for the extended cutter; excludes the body and Boolean result. */
|
|
3767
|
-
readonly thread:
|
|
3574
|
+
readonly thread: ThreadSolidPreflight;
|
|
3768
3575
|
/** Start-aligned circular facet count used by the compensated thread cutter. */
|
|
3769
3576
|
readonly threadCircularSegments: number;
|
|
3770
3577
|
}
|
|
@@ -3778,9 +3585,7 @@ export declare type ThreadedNutShape = "hex" | "round" | "square";
|
|
|
3778
3585
|
* Options for a compensated external threaded rod along +Z.
|
|
3779
3586
|
*/
|
|
3780
3587
|
export declare interface ThreadedRodOptions
|
|
3781
|
-
extends
|
|
3782
|
-
Omit<HelicalThreadRidgeMeshOptions, "majorDiameter">,
|
|
3783
|
-
ThreadBevelOptions {
|
|
3588
|
+
extends Omit<ThreadRidgeOptions, "majorDiameter">, ThreadBevelOptions {
|
|
3784
3589
|
/** Printable fit or caller-calibrated allowances. Default: `normal`. */
|
|
3785
3590
|
readonly fit?: PrintableThreadFit | PrintableThreadFitPolicy;
|
|
3786
3591
|
/** Nominal major diameter before male compensation. */
|
|
@@ -3911,9 +3716,58 @@ export declare type ThreadProfileSpec =
|
|
|
3911
3716
|
| TrapezoidalThreadProfileSpec
|
|
3912
3717
|
| TriangularThreadProfileSpec;
|
|
3913
3718
|
|
|
3719
|
+
/** Runtime-neutral options for the dedicated helical ridge mesher. */
|
|
3720
|
+
export declare interface ThreadRidgeOptions {
|
|
3721
|
+
/**
|
|
3722
|
+
* Optional bottom/top ridge-end treatments. Standalone ridges honor the requested boundaries;
|
|
3723
|
+
* BOSL2-style non-cut lead-in scaling is available on complete thread solids.
|
|
3724
|
+
*/
|
|
3725
|
+
readonly ends?: ThreadEndTreatmentOptions;
|
|
3726
|
+
/** Helix direction. Default: `right`. */
|
|
3727
|
+
readonly handedness?: ThreadHandedness;
|
|
3728
|
+
/** Total threaded axial length in millimetres. */
|
|
3729
|
+
readonly length: number;
|
|
3730
|
+
/** Explicit output and circular allocation ceilings. */
|
|
3731
|
+
readonly limits?: Partial<ModelingLimits>;
|
|
3732
|
+
/** Nominal major diameter before any caller-owned fit compensation. */
|
|
3733
|
+
readonly majorDiameter: number;
|
|
3734
|
+
/** Angular offset of the first start in degrees. Default: `0`. */
|
|
3735
|
+
readonly phase?: number;
|
|
3736
|
+
/** Validated periodic profile repeated around the shaft. */
|
|
3737
|
+
readonly profile: ThreadProfile;
|
|
3738
|
+
/** Optional circular-resolution policy. */
|
|
3739
|
+
readonly resolution?: GeometryResolution;
|
|
3740
|
+
/** Number of evenly phased starts. Default: `1`. */
|
|
3741
|
+
readonly starts?: number;
|
|
3742
|
+
/** Optional numerical tolerance overrides. */
|
|
3743
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
3744
|
+
}
|
|
3745
|
+
|
|
3914
3746
|
/** Whether compensation is being applied to an external or internal thread. */
|
|
3915
3747
|
export declare type ThreadRole = "male" | "female";
|
|
3916
3748
|
|
|
3749
|
+
/** Options for a complete threaded-cylinder mesh; base semantics match the ridge builder. */
|
|
3750
|
+
export declare interface ThreadSolidOptions extends ThreadRidgeOptions {
|
|
3751
|
+
/** Independent 45-degree bottom/top bevels; omitted disables both. Auto uses profile depth. */
|
|
3752
|
+
readonly bevel?: Bevel;
|
|
3753
|
+
/** Distance of each bevel target face inward from the corresponding mesh end. */
|
|
3754
|
+
readonly bevelOffset?: number;
|
|
3755
|
+
/** `inset` trims an external rod; `outset` expands an internal cutter. */
|
|
3756
|
+
readonly bevelMode?: "inset" | "outset";
|
|
3757
|
+
}
|
|
3758
|
+
|
|
3759
|
+
/** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
|
|
3760
|
+
export declare interface ThreadSolidPreflight {
|
|
3761
|
+
/** Uniform axial intervals required only by a requested physical segment-length limit. */
|
|
3762
|
+
readonly axialIntervals: number;
|
|
3763
|
+
/** Start-aligned full-circle segment count used by the surface mesh. */
|
|
3764
|
+
readonly circularSegments: number;
|
|
3765
|
+
/** Conservative surface-row count across profile breaks, ends, and bevel stations. */
|
|
3766
|
+
readonly estimatedRows: number;
|
|
3767
|
+
/** Conservative triangle count used by the selected output allocation policy. */
|
|
3768
|
+
readonly estimatedTriangles: number;
|
|
3769
|
+
}
|
|
3770
|
+
|
|
3917
3771
|
/**
|
|
3918
3772
|
* Dimensions and independent ring/profile tessellation for a torus around the Z axis.
|
|
3919
3773
|
*/
|
|
@@ -4091,21 +3945,6 @@ export declare function transformRegionData(
|
|
|
4091
3945
|
tolerance?: GeometryToleranceOptions,
|
|
4092
3946
|
): RegionData;
|
|
4093
3947
|
|
|
4094
|
-
/**
|
|
4095
|
-
* Applies an affine transform to a mesh and preserves outward face orientation.
|
|
4096
|
-
*
|
|
4097
|
-
* A transform with a negative linear determinant reflects space, so this helper
|
|
4098
|
-
* automatically reverses every triangle. Singular transforms are rejected.
|
|
4099
|
-
*
|
|
4100
|
-
* @param mesh - Mesh to transform without mutation.
|
|
4101
|
-
* @param placement - Immutable spatial placement or canonical row-major affine matrix.
|
|
4102
|
-
* @returns A mesh with fresh transformed positions and copied or reversed indices.
|
|
4103
|
-
*/
|
|
4104
|
-
export declare function transformTriangleMesh(
|
|
4105
|
-
mesh: TriangleMesh,
|
|
4106
|
-
placement: Transform3Input,
|
|
4107
|
-
): TriangleMesh;
|
|
4108
|
-
|
|
4109
3948
|
/**
|
|
4110
3949
|
* Creates an immutable translation transform.
|
|
4111
3950
|
*
|
|
@@ -4133,13 +3972,11 @@ export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseS
|
|
|
4133
3972
|
readonly includedAngle?: number;
|
|
4134
3973
|
}
|
|
4135
3974
|
|
|
4136
|
-
/**
|
|
4137
|
-
* A topology-preserving indexed triangle mesh with XYZ vertex positions.
|
|
4138
|
-
*/
|
|
3975
|
+
/** A topology-preserving indexed triangle mesh with mutable owned XYZ buffers. */
|
|
4139
3976
|
export declare interface TriangleMesh {
|
|
4140
3977
|
/** Three unsigned vertex indices per triangle. */
|
|
4141
3978
|
readonly indices: Uint32Array;
|
|
4142
|
-
/** Flat XYZ coordinates
|
|
3979
|
+
/** Flat XYZ coordinates in millimetres. */
|
|
4143
3980
|
readonly positions: Float32Array;
|
|
4144
3981
|
}
|
|
4145
3982
|
|
|
@@ -4147,8 +3984,9 @@ export declare interface TriangleMesh {
|
|
|
4147
3984
|
* Measurements and optional edge-connected topology from one validated mesh traversal.
|
|
4148
3985
|
*/
|
|
4149
3986
|
export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
|
|
4150
|
-
/** Number of
|
|
4151
|
-
|
|
3987
|
+
/** Number of surface shells connected by shared indexed edges when includeTopology is requested.
|
|
3988
|
+
* Cavities count separately; shells may be open unless requireClosed is enabled. Coordinates are not welded. */
|
|
3989
|
+
readonly shellCount?: number;
|
|
4152
3990
|
/** Number of distinct indexed undirected edges when `includeTopology` is requested. */
|
|
4153
3991
|
readonly edgeCount?: number;
|
|
4154
3992
|
}
|
|
@@ -4157,10 +3995,13 @@ export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
|
|
|
4157
3995
|
* Validation and optional connectivity controls for a shared mesh analysis.
|
|
4158
3996
|
*/
|
|
4159
3997
|
export declare interface TriangleMeshAnalysisOptions extends TriangleMeshValidationOptions {
|
|
4160
|
-
/** Compute indexed edge/
|
|
3998
|
+
/** Compute indexed edge/shell counts and reject unreferenced vertices; defaults to false. */
|
|
4161
3999
|
readonly includeTopology?: boolean;
|
|
4162
4000
|
}
|
|
4163
4001
|
|
|
4002
|
+
/** Raw construction buffers or immutable captured geometry accepted by mesh utilities. */
|
|
4003
|
+
export declare type TriangleMeshInput = TriangleMesh | ImmutableTriangleMesh;
|
|
4004
|
+
|
|
4164
4005
|
/**
|
|
4165
4006
|
* Geometric measurements derived from a validated, non-empty triangle mesh.
|
|
4166
4007
|
*/
|
|
@@ -4224,7 +4065,7 @@ export declare interface TriangleMeshSignature {
|
|
|
4224
4065
|
/** Axis-aligned bounds quantized by `tolerances.position`. */
|
|
4225
4066
|
readonly bounds: Bounds3Data;
|
|
4226
4067
|
/** Number of edge-connected closed boundary shells; cavities count separately. */
|
|
4227
|
-
readonly
|
|
4068
|
+
readonly shellCount: number;
|
|
4228
4069
|
/** Total orientable genus across all connected components. */
|
|
4229
4070
|
readonly genus: number;
|
|
4230
4071
|
/** Order-independent hash of quantized vertices and oriented triangles. */
|
|
@@ -4257,6 +4098,14 @@ export declare interface TriangleMeshSignatureTolerances {
|
|
|
4257
4098
|
readonly signedVolume: number;
|
|
4258
4099
|
}
|
|
4259
4100
|
|
|
4101
|
+
/** Mesh measurements with the indexed surface-shell and edge counts requested by includeTopology. */
|
|
4102
|
+
export declare interface TriangleMeshTopologyAnalysis extends TriangleMeshAnalysis {
|
|
4103
|
+
/** Number of surface shells connected by shared indexed edges; cavities count separately. */
|
|
4104
|
+
readonly shellCount: number;
|
|
4105
|
+
/** Number of distinct indexed undirected edges. */
|
|
4106
|
+
readonly edgeCount: number;
|
|
4107
|
+
}
|
|
4108
|
+
|
|
4260
4109
|
/** Options controlling structural and manufacturing validation of a mesh. */
|
|
4261
4110
|
export declare interface TriangleMeshValidationOptions {
|
|
4262
4111
|
/** Permit an empty position and index buffer. Defaults to `false`. */
|
|
@@ -4291,40 +4140,52 @@ export declare function triangulateContour(loop: Contour): Uint32Array;
|
|
|
4291
4140
|
/**
|
|
4292
4141
|
* Dimensions, placement, and tessellation for a hollow Z-axis tube.
|
|
4293
4142
|
*/
|
|
4294
|
-
export declare
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
}
|
|
4143
|
+
export declare type TubeOptions = CircularPrimitiveOptions &
|
|
4144
|
+
PrimitiveAttachment & {
|
|
4145
|
+
/**
|
|
4146
|
+
* Centers the tube on the Z origin when `true`; otherwise its bottom is at `Z = 0`.
|
|
4147
|
+
* @defaultValue `true`
|
|
4148
|
+
*/
|
|
4149
|
+
readonly center?: boolean;
|
|
4150
|
+
/** Total height along Z in millimetres. */
|
|
4151
|
+
readonly height: number;
|
|
4152
|
+
/** Inner nominal dimension meets polygon vertices or faces; defaults to vertex. */
|
|
4153
|
+
readonly innerSizing?: RadialSizing;
|
|
4154
|
+
/** Outer nominal dimension meets polygon vertices or faces; defaults to vertex. */
|
|
4155
|
+
readonly outerSizing?: RadialSizing;
|
|
4156
|
+
} & (
|
|
4157
|
+
| {
|
|
4158
|
+
/** Positive nominal inner radius in millimetres. */
|
|
4159
|
+
readonly innerRadius: number;
|
|
4160
|
+
/** Nominal outer radius in millimetres, greater than innerRadius. */
|
|
4161
|
+
readonly outerRadius: number;
|
|
4162
|
+
/** Diameter dimensions cannot be combined with radius dimensions. */
|
|
4163
|
+
readonly innerDiameter?: never;
|
|
4164
|
+
/** Diameter dimensions cannot be combined with radius dimensions. */
|
|
4165
|
+
readonly outerDiameter?: never;
|
|
4166
|
+
}
|
|
4167
|
+
| {
|
|
4168
|
+
/** Positive nominal inner diameter in millimetres. */
|
|
4169
|
+
readonly innerDiameter: number;
|
|
4170
|
+
/** Nominal outer diameter in millimetres, greater than innerDiameter. */
|
|
4171
|
+
readonly outerDiameter: number;
|
|
4172
|
+
/** Radius dimensions cannot be combined with diameter dimensions. */
|
|
4173
|
+
readonly innerRadius?: never;
|
|
4174
|
+
/** Radius dimensions cannot be combined with diameter dimensions. */
|
|
4175
|
+
readonly outerRadius?: never;
|
|
4176
|
+
}
|
|
4177
|
+
);
|
|
4308
4178
|
|
|
4309
4179
|
/**
|
|
4310
|
-
*
|
|
4311
|
-
*
|
|
4312
|
-
*
|
|
4313
|
-
* intersect, or overlap as material. Indexed neighbours may share their own vertex or edge.
|
|
4180
|
+
* Validates a proper rigid transform: finite translation and a right-handed orthonormal rotation.
|
|
4181
|
+
* Scale, shear, reflection, and perspective are rejected within the default angular tolerance.
|
|
4182
|
+
* Returns the original row-major 4x4 matrix without copying or normalizing it.
|
|
4314
4183
|
*
|
|
4315
|
-
*
|
|
4316
|
-
* tolerance reject conservatively. At most 200,000 triangles and 2,000,000 spatial/containment tests
|
|
4317
|
-
* are supported; exhausting a ceiling throws COMPLEXITY_LIMIT rather than claiming validity.
|
|
4318
|
-
* Input buffers are freshly inspected and never modified; units are millimetres.
|
|
4319
|
-
*
|
|
4320
|
-
* @param mesh - Closed triangle mesh to inspect.
|
|
4321
|
-
* @param options - Optional lower work ceiling and numeric comparison policy.
|
|
4322
|
-
* @returns The original mesh after every requested check succeeds.
|
|
4184
|
+
* @throws {@link GeometryError} For a malformed, non-finite, or non-rigid matrix.
|
|
4323
4185
|
*/
|
|
4324
|
-
export declare function
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
): TriangleMesh;
|
|
4186
|
+
export declare function validateRigidTransform3(
|
|
4187
|
+
transform: Transform3Data,
|
|
4188
|
+
): Transform3Data;
|
|
4328
4189
|
|
|
4329
4190
|
/**
|
|
4330
4191
|
* Validates that a transform is finite, affine, and non-singular.
|
|
@@ -4339,23 +4200,6 @@ export declare function validateTransform3(
|
|
|
4339
4200
|
tolerance?: GeometryToleranceOptions,
|
|
4340
4201
|
): Transform3Data;
|
|
4341
4202
|
|
|
4342
|
-
/**
|
|
4343
|
-
* Validates mesh buffers, indices, triangle area, and optionally closed topology.
|
|
4344
|
-
*
|
|
4345
|
-
* Closed validation requires exactly two oppositely directed uses per edge, rejecting boundary
|
|
4346
|
-
* and non-manifold edges. It establishes edge connectivity without detecting geometric
|
|
4347
|
-
* self-intersections between faces. The mesh is neither mutated nor copied.
|
|
4348
|
-
*
|
|
4349
|
-
* @param mesh - Mesh to inspect.
|
|
4350
|
-
* @param options - Empty-mesh, topology, and tolerance policy.
|
|
4351
|
-
* @returns The original mesh after successful validation.
|
|
4352
|
-
* @throws {@link GeometryError} When any requested invariant fails.
|
|
4353
|
-
*/
|
|
4354
|
-
export declare function validateTriangleMesh(
|
|
4355
|
-
mesh: TriangleMesh,
|
|
4356
|
-
options?: TriangleMeshValidationOptions,
|
|
4357
|
-
): TriangleMesh;
|
|
4358
|
-
|
|
4359
4203
|
/** Immutable XY arithmetic; vector operations return new values and measurements return numbers. */
|
|
4360
4204
|
export declare interface Vector2 {
|
|
4361
4205
|
/** X coordinate in the vector's coordinate units. */
|