@metamesh/modeling 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +34 -18
- package/dist/api/engine.d.ts +217 -121
- package/dist/api/export.d.ts +123 -79
- package/dist/api/geometry.d.ts +406 -2102
- package/dist/api/index.d.ts +472 -1798
- package/dist/api/math.d.ts +315 -0
- package/dist/api/mechanical.d.ts +1041 -0
- package/dist/api/mesh.d.ts +360 -88
- package/dist/api/text.d.ts +24 -44
- package/dist/docs/guides/concepts.md +67 -33
- package/dist/docs/guides/exporting.md +88 -0
- package/dist/docs/guides/fonts.md +5 -3
- package/dist/docs/guides/fundamentals.md +12 -24
- package/dist/docs/guides/generation.md +24 -16
- package/dist/docs/guides/geometry-values.md +192 -134
- package/dist/docs/guides/hosting.md +51 -96
- package/dist/docs/guides/profiles-and-extrusion.md +159 -11
- package/dist/docs/guides/recipes.md +121 -28
- package/dist/docs/guides/resolution-and-inspection.md +43 -23
- package/dist/docs/guides/solid-joins.md +12 -2
- package/dist/docs/guides/standalone-model.md +4 -2
- package/dist/docs/guides/svg-and-text.md +76 -39
- package/dist/docs/guides/sweeps-and-lofts.md +88 -44
- package/dist/docs/guides/transforms-and-placement.md +113 -103
- package/dist/docs/guides/workers.md +166 -0
- package/dist/docs/manifest.json +4133 -4153
- package/dist/docs/reference/engine/GenerationOptions.md +2 -3
- package/dist/docs/reference/engine/GeometryResource.md +6 -6
- package/dist/docs/reference/engine/ModelDependencies.md +2 -2
- package/dist/docs/reference/engine/ModelEngine.md +2 -3
- package/dist/docs/reference/engine/ModelEngineOptions.md +2 -7
- package/dist/docs/reference/engine/ModelPart.md +6 -6
- package/dist/docs/reference/engine/ModelResult.md +2 -2
- package/dist/docs/reference/engine/ModelRunArguments.md +2 -2
- package/dist/docs/reference/engine/ModelRunOptions.md +2 -3
- package/dist/docs/reference/engine/ModelSession.md +2 -2
- package/dist/docs/reference/engine/SessionOptions.md +2 -3
- package/dist/docs/reference/engine/categories/host-lifecycle.md +9 -3
- package/dist/docs/reference/engine/checkModel.md +6 -2
- package/dist/docs/reference/engine/createModelEngine.md +5 -3
- package/dist/docs/reference/engine/defaultModelingLimits.md +4 -11
- package/dist/docs/reference/engine/modelingWasmUrl.md +2 -2
- package/dist/docs/reference/engine.md +7 -1
- package/dist/docs/reference/export/Export3mfOptions.md +2 -6
- package/dist/docs/reference/export/ExportDiagnostic.md +2 -14
- package/dist/docs/reference/export/ExportFormat.md +2 -14
- package/dist/docs/reference/export/ExportGeometry.md +3 -15
- package/dist/docs/reference/export/ExportGlbOptions.md +14 -18
- package/dist/docs/reference/export/ExportLimits.md +2 -14
- package/dist/docs/reference/export/ExportMaterial.md +2 -14
- package/dist/docs/reference/export/ExportOptions.md +2 -14
- package/dist/docs/reference/export/ExportPart.md +2 -14
- package/dist/docs/reference/export/ExportReport.md +2 -14
- package/dist/docs/reference/export/ExportSink.md +5 -15
- package/dist/docs/reference/export/ExportStlOptions.md +2 -6
- package/dist/docs/reference/export/ExportedFile.md +14 -26
- package/dist/docs/reference/export/categories/mesh-serialization.md +9 -3
- package/dist/docs/reference/export/defaultExportLimits.md +2 -2
- package/dist/docs/reference/export/export3mf.md +4 -6
- package/dist/docs/reference/export/exportGlb.md +8 -10
- package/dist/docs/reference/export/exportStl.md +4 -6
- package/dist/docs/reference/export/write3mf.md +6 -6
- package/dist/docs/reference/export/writeGlb.md +10 -10
- package/dist/docs/reference/export/writeStl.md +6 -6
- package/dist/docs/reference/export.md +9 -3
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +4 -4
- package/dist/docs/reference/geometry/Anchor3-type.md +3 -7
- package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
- package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
- package/dist/docs/reference/geometry/ArcCurve3.md +3 -3
- package/dist/docs/reference/geometry/AttachOptions.md +4 -9
- package/dist/docs/reference/geometry/Bounds2-type.md +9 -30
- package/dist/docs/reference/geometry/Bounds2Data.md +2 -19
- package/dist/docs/reference/geometry/Bounds2Input.md +2 -10
- package/dist/docs/reference/geometry/Bounds2Options.md +2 -6
- package/dist/docs/reference/geometry/Bounds3-type.md +9 -30
- package/dist/docs/reference/geometry/Bounds3Data.md +2 -15
- package/dist/docs/reference/geometry/Bounds3Input.md +2 -10
- package/dist/docs/reference/geometry/Bounds3Options.md +2 -6
- package/dist/docs/reference/geometry/BoundsFit2.md +2 -2
- package/dist/docs/reference/geometry/BoundsFit3.md +2 -2
- package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -2
- package/dist/docs/reference/geometry/BoxAnchorFace.md +3 -3
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +3 -3
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +3 -7
- package/dist/docs/reference/geometry/CircleContourOptions.md +3 -7
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +3 -12
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +2 -2
- package/dist/docs/reference/geometry/CircularSampling.md +2 -2
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +2 -2
- package/dist/docs/reference/geometry/Contour.md +4 -9
- package/dist/docs/reference/geometry/ContourCurve.md +3 -3
- package/dist/docs/reference/geometry/ContourPoint.md +3 -3
- package/dist/docs/reference/geometry/ContourSegment.md +3 -3
- package/dist/docs/reference/geometry/CorrespondingComponent.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingContour.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingProfile.md +3 -7
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +4 -8
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +3 -3
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +3 -3
- package/dist/docs/reference/geometry/Curve2.md +3 -3
- package/dist/docs/reference/geometry/Curve3.md +3 -3
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +3 -11
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +3 -3
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -4
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +2 -2
- package/dist/docs/reference/geometry/EdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -7
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +9 -18
- package/dist/docs/reference/geometry/FittedTextLayout.md +2 -2
- package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +4 -11
- package/dist/docs/reference/geometry/Frame3Options.md +69 -0
- package/dist/docs/reference/geometry/GeometryError.md +2 -6
- package/dist/docs/reference/geometry/GeometryErrorCode.md +2 -6
- package/dist/docs/reference/geometry/GeometryErrorContext.md +2 -6
- package/dist/docs/reference/geometry/GeometryResolution.md +2 -10
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +3 -11
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +3 -11
- package/dist/docs/reference/geometry/GridPatternOptions.md +7 -9
- package/dist/docs/reference/geometry/ImmutableBuffer-type.md +2 -10
- package/dist/docs/reference/geometry/LineCurve2.md +3 -3
- package/dist/docs/reference/geometry/LineCurve3.md +3 -3
- package/dist/docs/reference/geometry/LinearPatternOptions.md +2 -6
- package/dist/docs/reference/geometry/LoftPlacement.md +13 -21
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +3 -7
- package/dist/docs/reference/geometry/ModelingLimits.md +2 -14
- package/dist/docs/reference/geometry/NumericArray.md +2 -10
- package/dist/docs/reference/geometry/Path2-type.md +153 -12
- package/dist/docs/reference/geometry/Path2Data.md +3 -11
- package/dist/docs/reference/geometry/Path2Input.md +3 -11
- package/dist/docs/reference/geometry/Path3-type.md +153 -12
- package/dist/docs/reference/geometry/Path3Data.md +3 -11
- package/dist/docs/reference/geometry/Path3Input.md +3 -11
- package/dist/docs/reference/geometry/PathFrame.md +3 -3
- package/dist/docs/reference/geometry/PathLocation.md +3 -11
- package/dist/docs/reference/geometry/PathNormalGuide.md +4 -12
- package/dist/docs/reference/geometry/PathOptions.md +3 -7
- package/dist/docs/reference/geometry/PathPatternOptions.md +3 -7
- package/dist/docs/reference/geometry/PathPlacement.md +5 -5
- package/dist/docs/reference/geometry/PathResamplingOptions.md +3 -11
- package/dist/docs/reference/geometry/PathStation.md +87 -0
- package/dist/docs/reference/geometry/PathSubdivisionOptions.md +44 -0
- package/dist/docs/reference/geometry/Pivot2Options.md +3 -11
- package/dist/docs/reference/geometry/Pivot3Options.md +3 -11
- package/dist/docs/reference/geometry/PolygonData.md +4 -8
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +3 -3
- package/dist/docs/reference/geometry/Profile.md +3 -4
- package/dist/docs/reference/geometry/ProfileComponent2.md +3 -7
- package/dist/docs/reference/geometry/ProfileContour2.md +3 -7
- package/dist/docs/reference/geometry/ProfileSpan2.md +3 -7
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +5 -8
- package/dist/docs/reference/geometry/RadialPatternOptions.md +2 -6
- package/dist/docs/reference/geometry/RadialSizing.md +2 -6
- package/dist/docs/reference/geometry/RadialSizingOptions.md +2 -6
- package/dist/docs/reference/geometry/RectangleContourOptions.md +4 -7
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +3 -7
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +3 -7
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/RegionData.md +3 -7
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +3 -3
- package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +2 -2
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -2
- package/dist/docs/reference/geometry/SampleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleHelixOptions.md +3 -3
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve2.md +3 -3
- package/dist/docs/reference/geometry/SampledCurve3.md +3 -3
- package/dist/docs/reference/geometry/SideProfileCurve.md +3 -3
- package/dist/docs/reference/geometry/SideProfilePoint.md +3 -3
- package/dist/docs/reference/geometry/SideProfileSegment.md +3 -3
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +2 -6
- package/dist/docs/reference/geometry/SplineOptions.md +69 -0
- package/dist/docs/reference/geometry/StarContourOptions.md +7 -7
- package/dist/docs/reference/geometry/StrokeCap.md +2 -6
- package/dist/docs/reference/geometry/StrokeJoin.md +2 -6
- package/dist/docs/reference/geometry/StrokeOptions.md +3 -7
- package/dist/docs/reference/geometry/SvgImportOptions.md +4 -4
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +2 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +2 -2
- package/dist/docs/reference/geometry/Transform2-type.md +3 -11
- package/dist/docs/reference/geometry/Transform2Data.md +3 -11
- package/dist/docs/reference/geometry/Transform2Input.md +3 -11
- package/dist/docs/reference/geometry/Transform3-type.md +4 -12
- package/dist/docs/reference/geometry/Transform3Data.md +3 -11
- package/dist/docs/reference/geometry/Transform3Input.md +6 -13
- package/dist/docs/reference/geometry/Vector2-type.md +3 -11
- package/dist/docs/reference/geometry/Vector2Data.md +3 -15
- package/dist/docs/reference/geometry/Vector2Input.md +3 -11
- package/dist/docs/reference/geometry/Vector3-type.md +27 -11
- package/dist/docs/reference/geometry/Vector3Data.md +3 -11
- package/dist/docs/reference/geometry/Vector3Input.md +3 -11
- package/dist/docs/reference/geometry/VectorTextLayout.md +2 -10
- package/dist/docs/reference/geometry/VectorTextMetrics.md +3 -11
- package/dist/docs/reference/geometry/anchor3.md +17 -26
- package/dist/docs/reference/geometry/anchorFrame3.md +6 -6
- package/dist/docs/reference/geometry/attachmentTransform3.md +8 -8
- package/dist/docs/reference/geometry/bounds2.md +6 -8
- package/dist/docs/reference/geometry/bounds3.md +4 -6
- package/dist/docs/reference/geometry/boundsCenter.md +2 -2
- package/dist/docs/reference/geometry/boundsSize.md +2 -2
- package/dist/docs/reference/geometry/boxAnchor3.md +3 -3
- package/dist/docs/reference/geometry/categories/bounds-layout.md +9 -3
- package/dist/docs/reference/geometry/categories/curves-paths.md +24 -13
- package/dist/docs/reference/geometry/categories/immutable-data.md +40 -0
- package/dist/docs/reference/geometry/categories/pattern-placement.md +10 -4
- package/dist/docs/reference/geometry/categories/primitive-options.md +8 -13
- package/dist/docs/reference/geometry/categories/profiles-regions.md +11 -5
- package/dist/docs/reference/geometry/categories/resolution-errors.md +8 -1
- package/dist/docs/reference/geometry/categories/transforms-math.md +20 -51
- package/dist/docs/reference/geometry/categories/vector-import.md +7 -4
- package/dist/docs/reference/geometry/circleContour.md +3 -3
- package/dist/docs/reference/geometry/closeToAxis.md +7 -3
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +9 -6
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +13 -6
- package/dist/docs/reference/geometry/contourContainsPoint.md +7 -3
- package/dist/docs/reference/geometry/cylinderAnchor3.md +5 -5
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +3 -3
- package/dist/docs/reference/geometry/distributeAlongPath.md +16 -11
- package/dist/docs/reference/geometry/ellipseContour.md +3 -3
- package/dist/docs/reference/geometry/fitBounds.md +10 -2
- package/dist/docs/reference/geometry/fitTextLayout.md +5 -5
- package/dist/docs/reference/geometry/frame3.md +66 -0
- package/dist/docs/reference/geometry/gridPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/immutableBuffer.md +5 -7
- package/dist/docs/reference/geometry/isGeometryError.md +2 -6
- package/dist/docs/reference/geometry/layoutRow.md +4 -2
- package/dist/docs/reference/geometry/linearPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/matchProfiles.md +5 -3
- package/dist/docs/reference/geometry/normalizeContour.md +8 -4
- package/dist/docs/reference/geometry/normalizePolygon.md +5 -3
- package/dist/docs/reference/geometry/normalizeRegion.md +5 -3
- package/dist/docs/reference/geometry/path2.md +7 -7
- package/dist/docs/reference/geometry/path3.md +7 -7
- package/dist/docs/reference/geometry/pathPatternTransforms.md +12 -8
- package/dist/docs/reference/geometry/preflightSvgRegion.md +5 -5
- package/dist/docs/reference/geometry/radialPatternTransforms.md +5 -5
- package/dist/docs/reference/geometry/rectangleContour.md +3 -3
- package/dist/docs/reference/geometry/rectangleProfile.md +3 -4
- package/dist/docs/reference/geometry/regionArea.md +3 -3
- package/dist/docs/reference/geometry/regionBounds.md +6 -4
- package/dist/docs/reference/geometry/regularPolygonContour.md +3 -3
- package/dist/docs/reference/geometry/resamplePolyline2.md +7 -3
- package/dist/docs/reference/geometry/resamplePolyline3.md +7 -3
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -5
- package/dist/docs/reference/geometry/resolveArcSegments.md +8 -6
- package/dist/docs/reference/geometry/resolveCircularSampling.md +2 -2
- package/dist/docs/reference/geometry/resolveCircularSegments.md +5 -3
- package/dist/docs/reference/geometry/{resolveExtrusionDivisions.md → resolveExtrusionSlices.md} +16 -15
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -3
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +3 -3
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +12 -5
- package/dist/docs/reference/geometry/sampleContour.md +5 -5
- package/dist/docs/reference/geometry/sampleCurve2.md +7 -3
- package/dist/docs/reference/geometry/sampleCurve3.md +7 -3
- package/dist/docs/reference/geometry/sampleHelix.md +3 -3
- package/dist/docs/reference/geometry/sampleSideProfile.md +5 -5
- package/dist/docs/reference/geometry/sampleTextContours.md +3 -3
- package/dist/docs/reference/geometry/signedContourArea.md +5 -3
- package/dist/docs/reference/geometry/spline2.md +68 -0
- package/dist/docs/reference/geometry/spline3.md +62 -0
- package/dist/docs/reference/geometry/starContour.md +3 -3
- package/dist/docs/reference/geometry/strokeRegionData.md +8 -5
- package/dist/docs/reference/geometry/transform2.md +5 -7
- package/dist/docs/reference/geometry/transform3.md +23 -10
- package/dist/docs/reference/geometry/transformRegionData.md +7 -3
- package/dist/docs/reference/geometry/triangulateContour.md +6 -4
- package/dist/docs/reference/geometry/vector2.md +6 -8
- package/dist/docs/reference/geometry/vector3.md +8 -8
- package/dist/docs/reference/geometry.md +13 -18
- package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +4 -5
- package/dist/docs/reference/math/IDENTITY_TRANSFORM3.md +20 -0
- package/dist/docs/reference/math/add2.md +38 -0
- package/dist/docs/reference/math/add3.md +46 -0
- package/dist/docs/reference/math/applyTransformDirection3.md +46 -0
- package/dist/docs/reference/math/applyTransformPoint3.md +44 -0
- package/dist/docs/reference/math/categories/tuple-matrix.md +67 -0
- package/dist/docs/reference/math/cross2.md +38 -0
- package/dist/docs/reference/math/cross3.md +44 -0
- package/dist/docs/reference/math/distance2.md +38 -0
- package/dist/docs/reference/math/distance3.md +38 -0
- package/dist/docs/reference/math/dot2.md +38 -0
- package/dist/docs/reference/math/dot3.md +44 -0
- package/dist/docs/reference/math/eulerTransform3.md +43 -0
- package/dist/docs/reference/math/inverseTransform3.md +36 -0
- package/dist/docs/reference/math/length2.md +32 -0
- package/dist/docs/reference/math/length3.md +32 -0
- package/dist/docs/reference/math/lerp2.md +46 -0
- package/dist/docs/reference/math/lerp3.md +46 -0
- package/dist/docs/reference/math/multiplyTransform3.md +46 -0
- package/dist/docs/reference/math/normalize2.md +45 -0
- package/dist/docs/reference/math/normalize3.md +45 -0
- package/dist/docs/reference/math/projectOntoPlane3.md +40 -0
- package/dist/docs/reference/math/rotate2.md +40 -0
- package/dist/docs/reference/math/rotationTransform3.md +56 -0
- package/dist/docs/reference/math/scale2.md +38 -0
- package/dist/docs/reference/math/scale3.md +44 -0
- package/dist/docs/reference/math/scaleTransform3.md +39 -0
- package/dist/docs/reference/math/subtract2.md +38 -0
- package/dist/docs/reference/math/subtract3.md +44 -0
- package/dist/docs/reference/math/transformDeterminant3.md +38 -0
- package/dist/docs/reference/math/translationTransform3.md +36 -0
- package/dist/docs/reference/math/validateRigidTransform3.md +38 -0
- package/dist/docs/reference/math/validateTransform3.md +48 -0
- package/dist/docs/reference/math.md +22 -0
- package/dist/docs/reference/{geometry → mechanical}/AcmeThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/Bevel.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +5 -15
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +5 -10
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +6 -13
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +4 -5
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +5 -14
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +4 -8
- package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +5 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +4 -5
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +5 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfile-type.md +5 -17
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +7 -18
- package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +8 -15
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +3 -11
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +7 -14
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutShape.md +3 -7
- package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +6 -13
- package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +4 -13
- package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +4 -4
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +12 -6
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +13 -3
- package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +3 -3
- package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +9 -7
- package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +5 -3
- package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +7 -5
- package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +10 -8
- package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +7 -3
- package/dist/docs/reference/mechanical.md +19 -0
- package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +128 -0
- package/dist/docs/reference/{geometry → mesh}/HeightfieldMeshLimits.md +5 -13
- package/dist/docs/reference/{geometry → mesh}/HeightfieldPreflight.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/ImmutableTriangleMesh.md +5 -17
- package/dist/docs/reference/mesh/LoftMeshStation.md +32 -0
- package/dist/docs/reference/mesh/MeshRenderOptions.md +3 -3
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationFallbackReason.md +4 -8
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/PlanarMeshOptimizationResult.md +4 -8
- package/dist/docs/reference/{geometry → mesh}/PlanarPatchQuality.md +4 -12
- package/dist/docs/reference/mesh/RenderMesh.md +19 -19
- package/dist/docs/reference/{geometry → mesh}/SolidMeshValidationOptions.md +4 -12
- package/dist/docs/reference/{geometry → mesh}/TriangleMesh.md +8 -12
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysis.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshAnalysisOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshInput.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshMeasurements.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityOptions.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshQualityReport.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignature.md +4 -9
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureOptions.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshSignatureTolerances.md +3 -7
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshTopologyAnalysis.md +5 -14
- package/dist/docs/reference/{geometry → mesh}/TriangleMeshValidationOptions.md +4 -9
- package/dist/docs/reference/mesh/analyze.md +26 -18
- package/dist/docs/reference/mesh/analyzeQuality.md +12 -12
- package/dist/docs/reference/mesh/bounds.md +5 -6
- package/dist/docs/reference/mesh/categories/operations.md +37 -4
- package/dist/docs/reference/mesh/centroid.md +5 -6
- package/dist/docs/reference/mesh/extrude.md +21 -20
- package/dist/docs/reference/mesh/heightfield.md +8 -8
- package/dist/docs/reference/mesh/immutable.md +7 -5
- package/dist/docs/reference/mesh/join.md +7 -7
- package/dist/docs/reference/mesh/loft.md +19 -18
- package/dist/docs/reference/mesh/optimizePlanarPatches.md +21 -21
- package/dist/docs/reference/mesh/preflightHeightfield.md +8 -8
- package/dist/docs/reference/mesh/preflightThreadSolid.md +22 -25
- package/dist/docs/reference/mesh/render.md +7 -5
- package/dist/docs/reference/mesh/reverse.md +7 -7
- package/dist/docs/reference/mesh/revolve.md +12 -14
- package/dist/docs/reference/mesh/signature.md +12 -12
- package/dist/docs/reference/mesh/sweep.md +96 -25
- package/dist/docs/reference/mesh/threadRidge.md +19 -18
- package/dist/docs/reference/mesh/threadSolid.md +23 -22
- package/dist/docs/reference/mesh/transform.md +8 -9
- package/dist/docs/reference/mesh/validate.md +11 -11
- package/dist/docs/reference/mesh/validateSolid.md +10 -10
- package/dist/docs/reference/mesh.md +8 -2
- package/dist/docs/reference/model/BoxEdge.md +23 -0
- package/dist/docs/reference/model/BoxEdgeSelection.md +27 -0
- package/dist/docs/reference/model/BoxEdgeTreatments.md +27 -0
- package/dist/docs/reference/{geometry → model}/BoxOptions.md +12 -12
- package/dist/docs/reference/model/CircleOptions.md +4 -5
- package/dist/docs/reference/model/CornerCutterOptions.md +93 -0
- package/dist/docs/reference/model/CornerCutterTreatment.md +53 -0
- package/dist/docs/reference/model/{HoleCutterOverrun.md → CutterOverrun.md} +8 -7
- package/dist/docs/reference/model/CylinderOptions.md +64 -0
- package/dist/docs/reference/model/DiagnosticOptions.md +2 -2
- package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
- package/dist/docs/reference/model/EllipseOptions.md +4 -5
- package/dist/docs/reference/model/EndTreatments.md +43 -0
- package/dist/docs/reference/model/ExtrudeOptions.md +153 -0
- package/dist/docs/reference/model/GenerateCallback.md +2 -2
- package/dist/docs/reference/model/GenerateContext.md +27 -3
- package/dist/docs/reference/model/GenerationDiagnostic.md +2 -2
- package/dist/docs/reference/model/GenerationError.md +2 -2
- package/dist/docs/reference/{geometry → model}/HeightfieldOptions.md +5 -23
- package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
- package/dist/docs/reference/model/HoleCutterOptions.md +9 -22
- package/dist/docs/reference/model/HoleCutterRecess.md +5 -4
- package/dist/docs/reference/model/HullOptions.md +2 -3
- package/dist/docs/reference/model/ImmutableValue.md +2 -2
- package/dist/docs/reference/model/ImplicitOptions.md +3 -9
- package/dist/docs/reference/model/JoinOptions.md +2 -5
- package/dist/docs/reference/model/JoinTransition.md +2 -2
- package/dist/docs/reference/model/KnuckleHinge-type.md +2 -3
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +2 -2
- package/dist/docs/reference/model/KnuckleHingeOptions.md +3 -5
- package/dist/docs/reference/model/KnuckleHingeWeb.md +2 -2
- package/dist/docs/reference/{geometry → model}/LoftCorrespondence.md +8 -11
- package/dist/docs/reference/{geometry → model}/LoftOptions.md +11 -16
- package/dist/docs/reference/model/LoftStation.md +4 -5
- package/dist/docs/reference/model/Memo.md +2 -2
- package/dist/docs/reference/model/ModelProgram.md +2 -2
- package/dist/docs/reference/model/PartDeclaration.md +4 -5
- package/dist/docs/reference/model/PartGeometry.md +3 -5
- package/dist/docs/reference/model/PartOptions.md +4 -5
- package/dist/docs/reference/model/PatternSource.md +4 -4
- package/dist/docs/reference/model/PlaneOptions.md +3 -7
- package/dist/docs/reference/model/PolygonOptions.md +2 -7
- package/dist/docs/reference/model/PrimitiveAttachment.md +50 -0
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +111 -0
- package/dist/docs/reference/model/RectangleOptions.md +21 -26
- package/dist/docs/reference/model/RegularPolygonOptions.md +4 -37
- package/dist/docs/reference/{geometry → model}/RevolveOptions.md +15 -24
- package/dist/docs/reference/model/Section.md +115 -53
- package/dist/docs/reference/model/SectionHullOptions.md +2 -3
- package/dist/docs/reference/model/SectionInspection.md +2 -6
- package/dist/docs/reference/model/SectionOffsetJoin.md +2 -2
- package/dist/docs/reference/model/SectionOffsetOptions.md +2 -3
- package/dist/docs/reference/model/Solid.md +24 -12
- package/dist/docs/reference/model/SolidInspection.md +2 -6
- package/dist/docs/reference/model/SolidSegmentHit.md +2 -6
- package/dist/docs/reference/model/SphereOptions.md +27 -0
- package/dist/docs/reference/model/StarOptions.md +21 -23
- package/dist/docs/reference/model/SvgOrigin.md +2 -2
- package/dist/docs/reference/model/SvgPathSectionOptions.md +3 -5
- package/dist/docs/reference/model/SvgSectionOptions.md +3 -6
- package/dist/docs/reference/model/SweepOptions.md +109 -0
- package/dist/docs/reference/model/SweepOrientation.md +119 -0
- package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
- package/dist/docs/reference/model/TextSectionOptions.md +2 -7
- package/dist/docs/reference/{geometry → model}/TorusOptions.md +11 -10
- package/dist/docs/reference/model/TubeOptions.md +84 -0
- package/dist/docs/reference/model/box.md +11 -10
- package/dist/docs/reference/model/categories/boolean-operations.md +9 -3
- package/dist/docs/reference/model/categories/bounded-surfaces.md +13 -1
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +26 -7
- package/dist/docs/reference/model/categories/generation.md +11 -3
- package/dist/docs/reference/model/categories/hinges.md +7 -1
- package/dist/docs/reference/model/categories/mesh-inspection.md +7 -1
- package/dist/docs/reference/model/categories/primitives.md +34 -6
- package/dist/docs/reference/model/categories/sections.md +8 -2
- package/dist/docs/reference/model/categories/threads.md +8 -5
- package/dist/docs/reference/model/categories/transforms-placement.md +15 -10
- package/dist/docs/reference/model/circle.md +7 -3
- package/dist/docs/reference/model/cornerCutter.md +88 -0
- package/dist/docs/reference/model/cylinder.md +6 -5
- package/dist/docs/reference/model/edgeCutter.md +91 -0
- package/dist/docs/reference/model/ellipse.md +7 -3
- package/dist/docs/reference/model/extrude.md +29 -23
- package/dist/docs/reference/model/generate.md +4 -2
- package/dist/docs/reference/model/gridPattern.md +11 -4
- package/dist/docs/reference/model/heightfield.md +5 -5
- package/dist/docs/reference/model/holeCutter.md +26 -12
- package/dist/docs/reference/model/hull.md +2 -2
- package/dist/docs/reference/model/implicit.md +3 -3
- package/dist/docs/reference/model/internalThreadCutter.md +32 -21
- package/dist/docs/reference/model/intersect.md +7 -3
- package/dist/docs/reference/model/join.md +6 -2
- package/dist/docs/reference/model/knuckleHinge.md +2 -3
- package/dist/docs/reference/model/linearPattern.md +11 -4
- package/dist/docs/reference/model/loft.md +28 -24
- package/dist/docs/reference/model/minkowskiSum.md +3 -3
- package/dist/docs/reference/model/pathPattern.md +17 -8
- package/dist/docs/reference/model/polygon.md +8 -3
- package/dist/docs/reference/model/radialPattern.md +11 -4
- package/dist/docs/reference/model/rectangle.md +11 -7
- package/dist/docs/reference/model/regularPolygon.md +7 -3
- package/dist/docs/reference/model/revolve.md +18 -12
- package/dist/docs/reference/model/solidFromMesh.md +10 -6
- package/dist/docs/reference/model/sphere.md +7 -6
- package/dist/docs/reference/model/star.md +11 -7
- package/dist/docs/reference/model/stroke.md +12 -8
- package/dist/docs/reference/model/svgPathSection.md +10 -4
- package/dist/docs/reference/model/svgSection.md +10 -4
- package/dist/docs/reference/model/sweep.md +102 -25
- package/dist/docs/reference/model/textSection.md +7 -3
- package/dist/docs/reference/model/threadRidge.md +16 -17
- package/dist/docs/reference/model/threadedNut.md +25 -22
- package/dist/docs/reference/model/threadedRod.md +21 -18
- package/dist/docs/reference/model/torus.md +13 -12
- package/dist/docs/reference/model/tube.md +6 -5
- package/dist/docs/reference/model/union.md +7 -3
- package/dist/docs/reference/model.md +10 -5
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +2 -2
- package/dist/docs/reference/text/VectorFont.md +38 -34
- package/dist/docs/reference/text/VectorFontOptions.md +2 -2
- package/dist/docs/reference/{geometry → text}/VectorTextArcBaseline.md +2 -11
- package/dist/docs/reference/{geometry → text}/VectorTextLayoutOptions.md +3 -11
- package/dist/docs/reference/{geometry → text}/VectorTextOptions.md +2 -10
- package/dist/docs/reference/text/categories/font-preparation.md +10 -1
- package/dist/docs/reference/text/prepareVectorFont.md +4 -2
- package/dist/docs/reference/text.md +7 -1
- package/dist/engine/execution.js +5 -3
- package/dist/engine/finalization.js +5 -5
- package/dist/engine/index.js +9 -4
- package/dist/engine/native/adapter.js +1 -1
- package/dist/engine/native/construction-mesh.js +15 -5
- package/dist/engine/native/context.js +10 -7
- package/dist/engine/native/index.js +1 -1
- package/dist/engine/native/material-components.js +2 -2
- package/dist/engine/native/mesh-observation.js +1 -1
- package/dist/engine/native/regions.js +44 -24
- package/dist/engine/native/scoped-primitives.js +3 -3
- package/dist/engine/native/scoped-threads.js +1 -13
- package/dist/engine/native/threads.js +2 -2
- package/dist/engine/native/transforms.js +2 -2
- package/dist/engine/operations/construction.js +77 -27
- package/dist/engine/operations/context.js +13 -6
- package/dist/engine/operations/cutters.js +112 -0
- package/dist/engine/operations/environment.js +2 -2
- package/dist/engine/operations/extrusion-finishing.js +42 -16
- package/dist/engine/operations/hole-cutter.js +125 -114
- package/dist/engine/operations/join-collar-profile.js +19 -19
- package/dist/engine/operations/join.js +86 -73
- package/dist/engine/operations/knuckle-hinge.js +25 -20
- package/dist/engine/operations/loft.js +9 -16
- package/dist/engine/operations/mechanical.js +4 -15
- package/dist/engine/operations/primitives/anchors.js +23 -19
- package/dist/engine/operations/primitives/construction.js +38 -12
- package/dist/engine/operations/primitives/correspondence.js +2 -2
- package/dist/engine/operations/primitives/profile-mesh.js +41 -80
- package/dist/engine/operations/primitives/profiles.js +5 -5
- package/dist/engine/operations/sections.js +8 -8
- package/dist/engine/operations/transforms.js +19 -39
- package/dist/engine/placement.js +3 -3
- package/dist/engine/recipe-realization.js +86 -30
- package/dist/engine/session/declarations.js +98 -0
- package/dist/engine/session/dependencies.js +81 -28
- package/dist/engine/session/graph.js +39 -137
- package/dist/engine/session/parameters.js +78 -0
- package/dist/engine/session/session.js +2 -2
- package/dist/engine/session/snapshot-cache.js +2 -2
- package/dist/engine/shape-anchors.js +13 -6
- package/dist/export/3mf.js +9 -2
- package/dist/export/capture.js +10 -6
- package/dist/export/glb.js +7 -2
- package/dist/export/stl.js +21 -6
- package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
- package/dist/geometry/{bounds-value.js → bounds/value.js} +20 -16
- package/dist/geometry/curves/evaluation.js +5 -6
- package/dist/geometry/curves/sampling.js +30 -6
- package/dist/geometry/{extrusion.js → extrusion/controls.js} +58 -35
- package/dist/geometry/extrusion/mesh.js +92 -0
- package/dist/geometry/extrusion/stations.js +35 -0
- package/dist/geometry/extrusion/twisted-chamfer.js +265 -0
- package/dist/geometry/immutable-buffer.js +7 -1
- package/dist/geometry/index.js +24 -32
- package/dist/geometry/{model-limits.js → limits.js} +1 -1
- package/dist/geometry/loft/{loft-correspondence.js → correspondence.js} +31 -20
- package/dist/geometry/loft/{loft-geometry.js → geometry.js} +15 -17
- package/dist/geometry/loft/mesh.js +53 -0
- package/dist/geometry/loft/{loft-options.js → options.js} +13 -11
- package/dist/geometry/loft/{loft-simple-mesh.js → simple-mesh.js} +26 -17
- package/dist/geometry/math/interpolation.js +9 -0
- package/dist/geometry/math/vector-value.js +12 -3
- package/dist/geometry/math/vector2.js +18 -5
- package/dist/geometry/math/vector3.js +28 -5
- package/dist/geometry/math-api.js +4 -0
- package/dist/geometry/mechanical/gear-motion.js +7 -5
- package/dist/geometry/mechanical/gears.js +21 -4
- package/dist/geometry/mechanical/knuckle-hinge.js +7 -5
- package/dist/geometry/mechanical/threads/fit.js +8 -2
- package/dist/geometry/mechanical/threads/helices.js +4 -2
- package/dist/geometry/mechanical/threads/mesh-plan.js +4 -2
- package/dist/geometry/mechanical/threads/mesh.js +12 -9
- package/dist/geometry/mechanical/threads/profiles.js +18 -4
- package/dist/geometry/mechanical/threads/solids.js +11 -2
- package/dist/geometry/mechanical-api.js +10 -0
- package/dist/geometry/mesh/{mesh-centroid.js → centroid.js} +2 -1
- package/dist/geometry/{heightfield.js → mesh/heightfield.js} +9 -5
- package/dist/geometry/{join-geometry.js → mesh/join-layers.js} +53 -59
- package/dist/geometry/mesh/{mesh.js → operations.js} +11 -18
- package/dist/geometry/mesh/{mesh-planar.js → planar.js} +8 -18
- package/dist/geometry/mesh/{mesh-quality.js → quality.js} +10 -42
- package/dist/geometry/mesh/{mesh-render.js → render-buffers.js} +22 -7
- package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
- package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +2 -0
- package/dist/geometry/mesh/{mesh-solid.js → solid.js} +4 -4
- package/dist/geometry/mesh/triangle-quality.js +42 -0
- package/dist/geometry/mesh/winding.js +11 -0
- package/dist/geometry/{numeric.js → mesh/write-vertex.js} +1 -1
- package/dist/geometry/mesh-api.js +12 -11
- package/dist/geometry/paths/distribution.js +43 -0
- package/dist/geometry/paths/editing.js +76 -0
- package/dist/geometry/paths/frames.js +16 -11
- package/dist/geometry/paths/helix.js +1 -1
- package/dist/geometry/paths/resampling.js +46 -61
- package/dist/geometry/paths/{planar.js → rounding.js} +8 -67
- package/dist/geometry/paths/spline.js +116 -0
- package/dist/geometry/paths/traversal.js +107 -0
- package/dist/geometry/paths/{path-value.js → value.js} +97 -18
- package/dist/geometry/patterns/placements.js +20 -29
- package/dist/geometry/{patterns.js → patterns/transforms.js} +11 -7
- package/dist/geometry/primitives/cutters.js +70 -0
- package/dist/geometry/{cylinder.js → primitives/cylinder.js} +4 -4
- package/dist/geometry/{edge-finishing.js → primitives/edges.js} +5 -5
- package/dist/geometry/{primitive-resolvers.js → primitives/resolvers.js} +9 -9
- package/dist/geometry/primitives/sampling.js +41 -0
- package/dist/geometry/profiles/contour.js +19 -7
- package/dist/geometry/profiles/{match-profiles.js → matching.js} +9 -6
- package/dist/geometry/profiles/primitives/circle.js +1 -1
- package/dist/geometry/profiles/primitives/ellipse.js +2 -2
- package/dist/geometry/profiles/primitives/rectangle.js +8 -8
- package/dist/geometry/profiles/primitives/star.js +1 -1
- package/dist/geometry/profiles/side-profile.js +8 -5
- package/dist/geometry/profiles/validation.js +1 -1
- package/dist/geometry/{polygon-clipping.js → regions/clipping.js} +1 -1
- package/dist/geometry/{convex-offset.js → regions/convex-offset.js} +1 -1
- package/dist/geometry/{region-offset.js → regions/offset.js} +7 -5
- package/dist/geometry/{regions.js → regions/operations.js} +59 -22
- package/dist/geometry/{stroke-path.js → regions/stroke.js} +46 -20
- package/dist/geometry/{loft/loft-triangulation.js → regions/triangulation.js} +35 -2
- package/dist/geometry/revolve/{revolve-mesh.js → mesh.js} +9 -10
- package/dist/geometry/{circular-sampling.js → sampling/circular.js} +3 -3
- package/dist/geometry/{sampling-limits.js → sampling/limits.js} +6 -2
- package/dist/geometry/{resolution.js → sampling/resolution.js} +15 -14
- package/dist/geometry/svg/fill.js +4 -3
- package/dist/geometry/svg/import.js +47 -64
- package/dist/geometry/svg/path.js +3 -3
- package/dist/geometry/sweep/closed.js +55 -0
- package/dist/geometry/sweep/mesh.js +30 -0
- package/dist/geometry/{sweeps/sweep-open.js → sweep/open.js} +9 -24
- package/dist/geometry/{sweeps → sweep}/orientation.js +14 -11
- package/dist/geometry/sweep/seam.js +30 -0
- package/dist/geometry/{sweeps → sweep}/stations.js +75 -10
- package/dist/geometry/sweep/transforms.js +30 -0
- package/dist/geometry/{sweeps → sweep}/validation.js +4 -4
- package/dist/geometry/{text-contours.js → text/contours.js} +3 -3
- package/dist/geometry/{text-fitting.js → text/fitting.js} +4 -3
- package/dist/geometry/text/layout.js +1 -0
- package/dist/geometry/{transform3.js → transforms/affine3.js} +31 -46
- package/dist/geometry/{anchors.js → transforms/anchors.js} +43 -24
- package/dist/geometry/{transform-geometry.js → transforms/apply.js} +8 -5
- package/dist/geometry/{transform2.js → transforms/dimensions.js} +23 -19
- package/dist/geometry/transforms/frame.js +64 -0
- package/dist/geometry/{transform-matrix.js → transforms/matrix-input.js} +8 -1
- package/dist/geometry/{transform-value.js → transforms/value.js} +29 -11
- package/dist/index.js +3 -9
- package/dist/model/cutters.js +1 -0
- package/dist/model/execution-binding.js +3 -3
- package/dist/model/generation.js +2 -0
- package/dist/model/immutable-generation-data.js +2 -0
- package/dist/model/operations.js +130 -94
- package/dist/model/recipe-declaration.js +5 -7
- package/dist/text/index.js +3 -0
- package/dist/text/vector-text-layout.js +1 -0
- package/package.json +15 -17
- package/dist/api/export-3mf.d.ts +0 -2
- package/dist/api/export-glb.d.ts +0 -2
- package/dist/api/export-stl.d.ts +0 -2
- package/dist/docs/reference/geometry/BoxEdge.md +0 -17
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -24
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -25
- package/dist/docs/reference/geometry/CylinderOptions.md +0 -63
- package/dist/docs/reference/geometry/EndTreatments.md +0 -44
- package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -144
- package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -156
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -25
- package/dist/docs/reference/geometry/LoftMeshStation.md +0 -41
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -39
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -114
- package/dist/docs/reference/geometry/SphereOptions.md +0 -25
- package/dist/docs/reference/geometry/SweepOptions.md +0 -127
- package/dist/docs/reference/geometry/SweepOrientation.md +0 -127
- package/dist/docs/reference/geometry/TubeOptions.md +0 -72
- package/dist/docs/reference/geometry/add2.md +0 -43
- package/dist/docs/reference/geometry/add3.md +0 -49
- package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -52
- package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -50
- package/dist/docs/reference/geometry/categories/meshes.md +0 -68
- package/dist/docs/reference/geometry/composeTransform3.md +0 -51
- package/dist/docs/reference/geometry/cross2.md +0 -43
- package/dist/docs/reference/geometry/cross3.md +0 -49
- package/dist/docs/reference/geometry/distance2.md +0 -43
- package/dist/docs/reference/geometry/distance3.md +0 -43
- package/dist/docs/reference/geometry/dot2.md +0 -43
- package/dist/docs/reference/geometry/dot3.md +0 -49
- package/dist/docs/reference/geometry/eulerTransform3.md +0 -49
- package/dist/docs/reference/geometry/frameTransform3.md +0 -55
- package/dist/docs/reference/geometry/inverseTransform3.md +0 -41
- package/dist/docs/reference/geometry/length2.md +0 -37
- package/dist/docs/reference/geometry/length3.md +0 -37
- package/dist/docs/reference/geometry/lerp2.md +0 -49
- package/dist/docs/reference/geometry/lerp3.md +0 -49
- package/dist/docs/reference/geometry/normalize2.md +0 -46
- package/dist/docs/reference/geometry/normalize3.md +0 -46
- package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -43
- package/dist/docs/reference/geometry/rotate2.md +0 -43
- package/dist/docs/reference/geometry/rotationTransform3.md +0 -60
- package/dist/docs/reference/geometry/scale2.md +0 -43
- package/dist/docs/reference/geometry/scale3.md +0 -49
- package/dist/docs/reference/geometry/scaleTransform3.md +0 -45
- package/dist/docs/reference/geometry/subtract2.md +0 -43
- package/dist/docs/reference/geometry/subtract3.md +0 -49
- package/dist/docs/reference/geometry/transformDeterminant3.md +0 -43
- package/dist/docs/reference/geometry/translationTransform3.md +0 -42
- package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -41
- package/dist/docs/reference/geometry/validateTransform3.md +0 -54
- package/dist/docs/reference/model/Profile.md +0 -30
- package/dist/docs/reference/model/categories/explicit-profiles.md +0 -21
- package/dist/docs/reference/model/matchProfiles.md +0 -48
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -93
- package/dist/docs/reference/model/preflightThreadedNut.md +0 -109
- package/dist/docs/reference/model/preflightThreadedRod.md +0 -93
- package/dist/engine/operations/patterns.js +0 -47
- package/dist/geometry/loft/loft.js +0 -105
- package/dist/geometry/mechanical/index.js +0 -14
- package/dist/geometry/primitive-resolution.js +0 -20
- package/dist/geometry/svg/index.js +0 -1
- package/dist/geometry/sweeps/options.js +0 -29
- package/dist/geometry/sweeps/sweep-closed.js +0 -96
- package/dist/geometry/sweeps/sweep-mesh.js +0 -32
- /package/dist/geometry/mechanical/{standards.js → fastener-standards.js} +0 -0
- /package/dist/geometry/mesh/{mesh-edge-table.js → edge-table.js} +0 -0
- /package/dist/geometry/mesh/{mesh-types.js → types.js} +0 -0
- /package/dist/geometry/mesh/{mesh-view-cache.js → view-cache.js} +0 -0
- /package/dist/geometry/{primitive-options.js → primitives/options.js} +0 -0
- /package/dist/geometry/{text-layout.js → sweep/options.js} +0 -0
package/dist/api/mesh.d.ts
CHANGED
|
@@ -1,64 +1,40 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
Bounds3Data,
|
|
3
|
-
ExtrudeMeshOptions,
|
|
4
|
-
HeightfieldMeshLimits,
|
|
5
|
-
HeightfieldOptions,
|
|
6
|
-
HeightfieldPreflight,
|
|
7
|
-
ImmutableTriangleMesh,
|
|
8
|
-
LoftMeshStation,
|
|
9
|
-
LoftOptions,
|
|
10
|
-
Path2Input,
|
|
11
|
-
Path3Input,
|
|
12
|
-
PlanarMeshOptimizationOptions,
|
|
13
|
-
PlanarMeshOptimizationResult,
|
|
14
|
-
RevolveOptions,
|
|
15
|
-
SolidMeshValidationOptions,
|
|
16
|
-
SweepOptions,
|
|
17
|
-
ThreadRidgeOptions,
|
|
18
|
-
ThreadSolidOptions,
|
|
19
|
-
ThreadSolidPreflight,
|
|
20
|
-
Transform3Input,
|
|
21
|
-
TriangleMesh,
|
|
22
|
-
TriangleMeshAnalysis,
|
|
23
|
-
TriangleMeshAnalysisOptions,
|
|
24
|
-
TriangleMeshInput,
|
|
25
|
-
TriangleMeshQualityOptions,
|
|
26
|
-
TriangleMeshQualityReport,
|
|
27
|
-
TriangleMeshSignature,
|
|
28
|
-
TriangleMeshSignatureOptions,
|
|
29
|
-
TriangleMeshTopologyAnalysis,
|
|
30
|
-
TriangleMeshValidationOptions,
|
|
31
|
-
Vector3Data,
|
|
32
|
-
} from "@metamesh/modeling/geometry";
|
|
33
|
-
export type {
|
|
34
2
|
AcmeThreadProfileSpec,
|
|
35
3
|
Bevel,
|
|
36
4
|
BevelSize,
|
|
5
|
+
ButtressPressureFlankSide,
|
|
6
|
+
ButtressThreadProfileSpec,
|
|
7
|
+
CustomThreadProfileSpec,
|
|
8
|
+
SquareThreadProfileSpec,
|
|
9
|
+
ThreadEndStyle,
|
|
10
|
+
ThreadEndTreatmentOptions,
|
|
11
|
+
ThreadHandedness,
|
|
12
|
+
ThreadLeadInEnvelope,
|
|
13
|
+
ThreadLeadInShape,
|
|
14
|
+
ThreadProfile,
|
|
15
|
+
ThreadProfileBaseSpec,
|
|
16
|
+
ThreadProfileSpec,
|
|
17
|
+
ThreadRidgeOptions,
|
|
18
|
+
ThreadSolidOptions,
|
|
19
|
+
ThreadSolidPreflight,
|
|
20
|
+
TrapezoidalThreadProfileSpec,
|
|
21
|
+
TriangularThreadProfileSpec,
|
|
22
|
+
} from "@metamesh/modeling/geometry/mechanical";
|
|
23
|
+
import type {
|
|
37
24
|
Bounds2,
|
|
38
25
|
Bounds2Data,
|
|
39
26
|
Bounds2Input,
|
|
40
27
|
Bounds3,
|
|
41
28
|
Bounds3Data,
|
|
42
29
|
Bounds3Input,
|
|
43
|
-
ButtressPressureFlankSide,
|
|
44
|
-
ButtressThreadProfileSpec,
|
|
45
30
|
CircularPrimitiveOptions,
|
|
46
31
|
CurveSamplingOptions,
|
|
47
|
-
CustomThreadProfileSpec,
|
|
48
|
-
ExtrudeMeshOptions,
|
|
49
32
|
ExtrusionSamplingOptions,
|
|
50
33
|
Frame3,
|
|
51
34
|
GeometryResolution,
|
|
52
35
|
GeometrySamplingLimits,
|
|
53
36
|
GeometryToleranceOptions,
|
|
54
|
-
HeightfieldMeshLimits,
|
|
55
|
-
HeightfieldOptions,
|
|
56
|
-
HeightfieldPreflight,
|
|
57
37
|
ImmutableBuffer,
|
|
58
|
-
ImmutableTriangleMesh,
|
|
59
|
-
LoftCorrespondence,
|
|
60
|
-
LoftMeshStation,
|
|
61
|
-
LoftOptions,
|
|
62
38
|
LoftPlacement,
|
|
63
39
|
ModelingLimits,
|
|
64
40
|
NumericArray,
|
|
@@ -71,48 +47,16 @@ export type {
|
|
|
71
47
|
PathLocation,
|
|
72
48
|
PathNormalGuide,
|
|
73
49
|
PathResamplingOptions,
|
|
50
|
+
PathStation,
|
|
51
|
+
PathSubdivisionOptions,
|
|
74
52
|
Pivot2Options,
|
|
75
53
|
Pivot3Options,
|
|
76
|
-
PlanarMeshOptimizationFallbackReason,
|
|
77
|
-
PlanarMeshOptimizationOptions,
|
|
78
|
-
PlanarMeshOptimizationResult,
|
|
79
|
-
PlanarPatchQuality,
|
|
80
|
-
RevolveOptions,
|
|
81
|
-
SolidMeshValidationOptions,
|
|
82
|
-
SquareThreadProfileSpec,
|
|
83
|
-
SweepOptions,
|
|
84
|
-
SweepOrientation,
|
|
85
|
-
ThreadEndStyle,
|
|
86
|
-
ThreadEndTreatmentOptions,
|
|
87
|
-
ThreadHandedness,
|
|
88
|
-
ThreadLeadInEnvelope,
|
|
89
|
-
ThreadLeadInShape,
|
|
90
|
-
ThreadProfile,
|
|
91
|
-
ThreadProfileBaseSpec,
|
|
92
|
-
ThreadProfileSpec,
|
|
93
|
-
ThreadRidgeOptions,
|
|
94
|
-
ThreadSolidOptions,
|
|
95
|
-
ThreadSolidPreflight,
|
|
96
54
|
Transform2,
|
|
97
55
|
Transform2Data,
|
|
98
56
|
Transform2Input,
|
|
99
57
|
Transform3,
|
|
100
58
|
Transform3Data,
|
|
101
59
|
Transform3Input,
|
|
102
|
-
TrapezoidalThreadProfileSpec,
|
|
103
|
-
TriangleMesh,
|
|
104
|
-
TriangleMeshAnalysis,
|
|
105
|
-
TriangleMeshAnalysisOptions,
|
|
106
|
-
TriangleMeshInput,
|
|
107
|
-
TriangleMeshMeasurements,
|
|
108
|
-
TriangleMeshQualityOptions,
|
|
109
|
-
TriangleMeshQualityReport,
|
|
110
|
-
TriangleMeshSignature,
|
|
111
|
-
TriangleMeshSignatureOptions,
|
|
112
|
-
TriangleMeshSignatureTolerances,
|
|
113
|
-
TriangleMeshTopologyAnalysis,
|
|
114
|
-
TriangleMeshValidationOptions,
|
|
115
|
-
TriangularThreadProfileSpec,
|
|
116
60
|
Vector2,
|
|
117
61
|
Vector2Data,
|
|
118
62
|
Vector2Input,
|
|
@@ -120,6 +64,15 @@ export type {
|
|
|
120
64
|
Vector3Data,
|
|
121
65
|
Vector3Input,
|
|
122
66
|
} from "@metamesh/modeling/geometry";
|
|
67
|
+
import type {
|
|
68
|
+
HeightfieldOptions,
|
|
69
|
+
LoftCorrespondence,
|
|
70
|
+
LoftOptions,
|
|
71
|
+
RevolveOptions,
|
|
72
|
+
SweepOptions,
|
|
73
|
+
SweepOrientation,
|
|
74
|
+
SweepTransformOptions,
|
|
75
|
+
} from "@metamesh/modeling";
|
|
123
76
|
|
|
124
77
|
/**
|
|
125
78
|
* Validates and measures a mesh with one pass over positions and one over triangles.
|
|
@@ -130,6 +83,9 @@ export type {
|
|
|
130
83
|
* every position vertex to be referenced and do not establish freedom from self-intersections.
|
|
131
84
|
* Results and nested bounds are immutable snapshots. Caller-owned mutable meshes are freshly
|
|
132
85
|
* inspected on every call, never cached.
|
|
86
|
+
*
|
|
87
|
+
* @param mesh - Indexed triangle buffers in consistent units; source buffers remain unchanged.
|
|
88
|
+
* @param options - Validation policy with indexed edge and shell counts explicitly requested.
|
|
133
89
|
*/
|
|
134
90
|
export declare function analyze(
|
|
135
91
|
mesh: TriangleMeshInput,
|
|
@@ -138,7 +94,12 @@ export declare function analyze(
|
|
|
138
94
|
},
|
|
139
95
|
): TriangleMeshTopologyAnalysis;
|
|
140
96
|
|
|
141
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* Measures a mesh; topology fields are present only when includeTopology is enabled.
|
|
99
|
+
*
|
|
100
|
+
* @param mesh - Indexed triangle buffers in consistent units; source buffers remain unchanged.
|
|
101
|
+
* @param options - Validation policy and optional indexed edge and shell counts.
|
|
102
|
+
*/
|
|
142
103
|
export declare function analyze(
|
|
143
104
|
mesh: TriangleMeshInput,
|
|
144
105
|
options?: TriangleMeshAnalysisOptions,
|
|
@@ -151,7 +112,7 @@ export declare function analyze(
|
|
|
151
112
|
* Degenerate triangles are reported rather than rejected, while malformed buffers, non-finite
|
|
152
113
|
* positions, missing vertex references, and the configured complexity limit throw.
|
|
153
114
|
*
|
|
154
|
-
* @param mesh - Indexed triangle mesh in
|
|
115
|
+
* @param mesh - Indexed triangle mesh in consistent units.
|
|
155
116
|
* @param options - Scale-aware tolerance and analysis budget.
|
|
156
117
|
* @returns A deterministic report without mutating or copying the mesh.
|
|
157
118
|
*/
|
|
@@ -186,6 +147,8 @@ export declare function centroid(mesh: TriangleMeshInput): Vector3Data;
|
|
|
186
147
|
* Path2 profiles must be closed; raw point collections have an implicit closing edge.
|
|
187
148
|
* End treatments are unsupported and reject at runtime. Use Section.extrude for finished ends.
|
|
188
149
|
*
|
|
150
|
+
* @param input - Closed XY path or simple contour, in millimetres.
|
|
151
|
+
*
|
|
189
152
|
* @example Extrude point data without an engine
|
|
190
153
|
* ```ts
|
|
191
154
|
* const outline = rectangleContour({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
|
|
@@ -197,6 +160,14 @@ export declare function extrude(
|
|
|
197
160
|
options: ExtrudeMeshOptions,
|
|
198
161
|
): TriangleMesh;
|
|
199
162
|
|
|
163
|
+
/** Dimensions and sampling for pure +Z mesh extrusion, without end treatments. */
|
|
164
|
+
export declare interface ExtrudeMeshOptions extends ExtrusionSamplingOptions {
|
|
165
|
+
/** Positive extrusion height in millimetres. */
|
|
166
|
+
readonly height: number;
|
|
167
|
+
/** Center the extrusion on Z; otherwise its bottom is at zero. Defaults to false. */
|
|
168
|
+
readonly center?: boolean;
|
|
169
|
+
}
|
|
170
|
+
|
|
200
171
|
/**
|
|
201
172
|
* Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base.
|
|
202
173
|
*
|
|
@@ -204,6 +175,8 @@ export declare function extrude(
|
|
|
204
175
|
* Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit
|
|
205
176
|
* Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks.
|
|
206
177
|
*
|
|
178
|
+
* @param options - Grid and absolute height callback in millimetres.
|
|
179
|
+
*
|
|
207
180
|
* @see `mesh.preflightHeightfield`
|
|
208
181
|
*
|
|
209
182
|
* @example Sample a closed wavy mesh
|
|
@@ -219,8 +192,28 @@ export declare function heightfield(
|
|
|
219
192
|
limits?: HeightfieldMeshLimits,
|
|
220
193
|
): TriangleMesh;
|
|
221
194
|
|
|
195
|
+
/** Trusted output ceilings for pure construction; omitted fields use package defaults. */
|
|
196
|
+
export declare type HeightfieldMeshLimits = Partial<
|
|
197
|
+
Pick<ModelingLimits, "maxVertices" | "maxTriangles" | "maxBytes">
|
|
198
|
+
>;
|
|
199
|
+
|
|
200
|
+
/** Exact grid and mesh buffer allocation counts resolved without evaluating the height callback. */
|
|
201
|
+
export declare interface HeightfieldPreflight {
|
|
202
|
+
/** Number of top grid points; excludes the extra per-cell height evaluations for center-error. */
|
|
203
|
+
readonly sampleCount: number;
|
|
204
|
+
/** Number of allocated XYZ vertices. */
|
|
205
|
+
readonly vertexCount: number;
|
|
206
|
+
/** Number of allocated indexed triangles. */
|
|
207
|
+
readonly triangleCount: number;
|
|
208
|
+
/** Total bytes of Float32 positions and Uint32 indices, excluding temporary storage. */
|
|
209
|
+
readonly byteCount: number;
|
|
210
|
+
}
|
|
211
|
+
|
|
222
212
|
/**
|
|
223
213
|
* Copies mesh buffers into immutable data; geometric validation still occurs when modeling or finalizing.
|
|
214
|
+
*
|
|
215
|
+
* @param mesh - Triangle buffers to copy; the consumer validates topology.
|
|
216
|
+
*
|
|
224
217
|
* @example
|
|
225
218
|
* ```ts
|
|
226
219
|
* import { generate } from "@metamesh/modeling";
|
|
@@ -236,6 +229,16 @@ export declare function immutable(mesh: {
|
|
|
236
229
|
readonly indices: Uint32Array;
|
|
237
230
|
}): ImmutableTriangleMesh;
|
|
238
231
|
|
|
232
|
+
declare const immutableBufferBrand: unique symbol;
|
|
233
|
+
|
|
234
|
+
/** Immutable local XYZ positions and triangle indices, suitable for a memo result or part. */
|
|
235
|
+
export declare interface ImmutableTriangleMesh {
|
|
236
|
+
/** Packed XYZ coordinates in millimetres. */
|
|
237
|
+
readonly positions: ImmutableBuffer<Float32Array>;
|
|
238
|
+
/** Zero-based vertex indices, three per triangle. */
|
|
239
|
+
readonly indices: ImmutableBuffer<Uint32Array>;
|
|
240
|
+
}
|
|
241
|
+
|
|
239
242
|
/**
|
|
240
243
|
* Concatenates meshes into one indexed mesh without welding coincident vertices.
|
|
241
244
|
*
|
|
@@ -250,15 +253,17 @@ export declare function join(
|
|
|
250
253
|
): TriangleMesh;
|
|
251
254
|
|
|
252
255
|
/**
|
|
253
|
-
* Lofts simple point
|
|
256
|
+
* Lofts simple point contours at z heights or explicit affine transforms, in input order.
|
|
254
257
|
*
|
|
255
|
-
* Correspondence defaults to direct. CCW-normalized
|
|
258
|
+
* Correspondence defaults to direct. CCW-normalized contours retain their
|
|
256
259
|
* seam and original vertices; unequal counts gain subdivisions or repeated fan slots.
|
|
257
260
|
* Both ends use ear-clipped caps, supporting concave profiles without center fans.
|
|
258
261
|
* Intermediate slices interpolate placed world vertices, never frame axes.
|
|
259
262
|
* Transformed coordinates must fit finite Float32 mesh storage.
|
|
260
263
|
* Path2 profiles must be closed; raw point collections are interpreted as closed.
|
|
261
264
|
*
|
|
265
|
+
* @param stations - At least two XY profiles in connection order, each with Z height or affine placement.
|
|
266
|
+
*
|
|
262
267
|
* @example Loft with explicit point correspondence
|
|
263
268
|
* ```ts
|
|
264
269
|
* const bottom = rectangleContour({ size: [20, 12] });
|
|
@@ -271,6 +276,12 @@ export declare function loft(
|
|
|
271
276
|
options?: LoftOptions,
|
|
272
277
|
): TriangleMesh;
|
|
273
278
|
|
|
279
|
+
/** One point-data profile at a horizontal height or explicit affine transform. */
|
|
280
|
+
export declare type LoftMeshStation = LoftPlacement & {
|
|
281
|
+
/** Closed Path2 or ordered finite XY boundary points with an implicit closing edge. */
|
|
282
|
+
readonly profile: Path2Input;
|
|
283
|
+
};
|
|
284
|
+
|
|
274
285
|
/** Shading policy for a render copy; manufacturing positions and triangle order never change. */
|
|
275
286
|
export declare interface MeshRenderOptions {
|
|
276
287
|
/** Maximum angle between averaged face normals, in degrees. Defaults to `20`; `0` is flat. */
|
|
@@ -287,7 +298,7 @@ export declare interface MeshRenderOptions {
|
|
|
287
298
|
* original raw mesh object. Immutable inputs produce owned raw output buffers, including unchanged
|
|
288
299
|
* results. Malformed buffers and the configured analysis complexity limit throw.
|
|
289
300
|
*
|
|
290
|
-
* @param mesh - Closed, consistently wound
|
|
301
|
+
* @param mesh - Closed, consistently wound mesh in consistent units.
|
|
291
302
|
* @param options - Patch eligibility, numeric tolerance, and deterministic work bounds.
|
|
292
303
|
* @returns Optimized connectivity and before/after diagnostics, or an unchanged safe fallback.
|
|
293
304
|
*/
|
|
@@ -296,6 +307,95 @@ export declare function optimizePlanarPatches(
|
|
|
296
307
|
options?: PlanarMeshOptimizationOptions,
|
|
297
308
|
): PlanarMeshOptimizationResult;
|
|
298
309
|
|
|
310
|
+
/** Stable reason why planar optimization preserved the original connectivity. */
|
|
311
|
+
export declare type PlanarMeshOptimizationFallbackReason =
|
|
312
|
+
| "candidate-boundary-changed"
|
|
313
|
+
| "candidate-measurements-changed"
|
|
314
|
+
| "candidate-not-closed-oriented-manifold"
|
|
315
|
+
| "candidate-quality-regressed"
|
|
316
|
+
| "input-not-closed-oriented-manifold";
|
|
317
|
+
|
|
318
|
+
/** Options controlling bounded, connectivity-only optimization of planar triangle patches. */
|
|
319
|
+
export declare interface PlanarMeshOptimizationOptions extends TriangleMeshQualityOptions {
|
|
320
|
+
/**
|
|
321
|
+
* Maximum attempted edge evaluations. By default this is twenty times the initial candidate
|
|
322
|
+
* edge count, capped at `1000000`.
|
|
323
|
+
*/
|
|
324
|
+
readonly maxFlipAttempts?: number;
|
|
325
|
+
/** Maximum times one edge may be reconsidered after neighbouring flips. Defaults to `12`. */
|
|
326
|
+
readonly maxEdgeRevisits?: number;
|
|
327
|
+
/** Maximum triangles allowed in one selected patch. Defaults to `50000`. */
|
|
328
|
+
readonly maxPatchTriangles?: number;
|
|
329
|
+
/** Maximum cumulative triangles across selected patches. Defaults to `200000`. */
|
|
330
|
+
readonly maxProcessedTriangles?: number;
|
|
331
|
+
/** Minimum triangles required before a planar patch is eligible. Defaults to `8`. */
|
|
332
|
+
readonly minPatchTriangles?: number;
|
|
333
|
+
/** Select patches whose worst normalized aspect ratio exceeds this value. Defaults to `12`. */
|
|
334
|
+
readonly triggerMaxAspectRatio?: number;
|
|
335
|
+
/** Select patches whose largest per-vertex triangle share exceeds this ratio. Defaults to `0.2`. */
|
|
336
|
+
readonly triggerMaxFanRatio?: number;
|
|
337
|
+
/** Select patches whose largest vertex triangle incidence exceeds this value. Defaults to `16`. */
|
|
338
|
+
readonly triggerMaxVertexTriangleIncidence?: number;
|
|
339
|
+
/** Select patches whose smallest interior angle is below this many degrees. Defaults to `8`. */
|
|
340
|
+
readonly triggerMinAngleDegrees?: number;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/** Outcome of bounded planar-patch optimization, including before/after diagnostics. */
|
|
344
|
+
export declare interface PlanarMeshOptimizationResult {
|
|
345
|
+
/** Quality report for the returned mesh; equal to `before` on unchanged or fallback results. */
|
|
346
|
+
readonly after: TriangleMeshQualityReport;
|
|
347
|
+
/** Quality report for the supplied mesh. */
|
|
348
|
+
readonly before: TriangleMeshQualityReport;
|
|
349
|
+
/** Whether a work bound stopped evaluation while eligible work remained. */
|
|
350
|
+
readonly budgetExhausted: boolean;
|
|
351
|
+
/** Whether the returned mesh has different triangle connectivity. */
|
|
352
|
+
readonly changed: boolean;
|
|
353
|
+
/** Safety reason when candidate validation rejected optimization or input topology was unsupported. */
|
|
354
|
+
readonly fallbackReason?: PlanarMeshOptimizationFallbackReason;
|
|
355
|
+
/** Number of accepted legal diagonal flips. */
|
|
356
|
+
readonly flipCount: number;
|
|
357
|
+
/** Returned mesh; unchanged raw inputs retain their identity, while immutable inputs produce owned buffers. */
|
|
358
|
+
readonly mesh: TriangleMesh;
|
|
359
|
+
/** Number of planar patches in which at least one edge was flipped. */
|
|
360
|
+
readonly optimizedPatchCount: number;
|
|
361
|
+
/** Number of triggered patches omitted because a configured triangle bound would be exceeded. */
|
|
362
|
+
readonly skippedPatchCount: number;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/** Quality measurements for one edge-connected coplanar triangle patch. */
|
|
366
|
+
export declare interface PlanarPatchQuality {
|
|
367
|
+
/** Number of edges separating this patch from another plane or the mesh boundary. */
|
|
368
|
+
readonly boundaryEdgeCount: number;
|
|
369
|
+
/** Number of connected boundary loops; holes contribute additional loops. */
|
|
370
|
+
readonly boundaryLoopCount: number;
|
|
371
|
+
/** Maximum ratio of one vertex's incident patch triangles to the patch triangle count. */
|
|
372
|
+
readonly fanRatio: number;
|
|
373
|
+
/** Lowest source triangle index in this deterministic patch. */
|
|
374
|
+
readonly firstTriangleIndex: number;
|
|
375
|
+
/** Stable zero-based patch identifier in first-triangle order. */
|
|
376
|
+
readonly id: number;
|
|
377
|
+
/** Number of edges shared by two triangles within this patch. */
|
|
378
|
+
readonly internalEdgeCount: number;
|
|
379
|
+
/** Largest normalized triangle aspect ratio; an equilateral triangle has ratio `1`. */
|
|
380
|
+
readonly maximumTriangleAspectRatio: number;
|
|
381
|
+
/** Largest number of patch triangles incident to one vertex. */
|
|
382
|
+
readonly maximumVertexTriangleIncidence: number;
|
|
383
|
+
/** Largest number of distinct patch neighbours connected to one vertex. */
|
|
384
|
+
readonly maximumVertexValence: number;
|
|
385
|
+
/** Smallest interior triangle angle in degrees. */
|
|
386
|
+
readonly minimumTriangleAngleDegrees: number;
|
|
387
|
+
/** Consistently wound unit normal for the patch plane. */
|
|
388
|
+
readonly normal: Vector3Data;
|
|
389
|
+
/** Plane offset in `dot(normal, position) = planeOffset` form, in model units. */
|
|
390
|
+
readonly planeOffset: number;
|
|
391
|
+
/** Total patch area in squared model units. */
|
|
392
|
+
readonly surfaceArea: number;
|
|
393
|
+
/** Number of triangles in this patch. */
|
|
394
|
+
readonly triangleCount: number;
|
|
395
|
+
/** Number of distinct indexed vertices referenced by this patch. */
|
|
396
|
+
readonly vertexCount: number;
|
|
397
|
+
}
|
|
398
|
+
|
|
299
399
|
/**
|
|
300
400
|
* Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts.
|
|
301
401
|
*
|
|
@@ -303,6 +403,8 @@ export declare function optimizePlanarPatches(
|
|
|
303
403
|
* Successful preflight leaves height values, Float32 base storage, and generated mesh validity to
|
|
304
404
|
* construction. `byteCount` covers position and index buffers, not total working memory.
|
|
305
405
|
*
|
|
406
|
+
* @param options - Grid in millimetres; the height callback is not evaluated.
|
|
407
|
+
*
|
|
306
408
|
* @see `mesh.heightfield`
|
|
307
409
|
*/
|
|
308
410
|
export declare function preflightHeightfield(
|
|
@@ -318,6 +420,8 @@ export declare function preflightHeightfield(
|
|
|
318
420
|
* Successful preflight leaves generated coordinate and topology checks to mesh construction.
|
|
319
421
|
*
|
|
320
422
|
* See `mesh.threadSolid` for standalone mesh construction.
|
|
423
|
+
*
|
|
424
|
+
* @param options - Dimensions in millimetres and a validated profile; apply any fit compensation first.
|
|
321
425
|
*/
|
|
322
426
|
export declare function preflightThreadSolid(
|
|
323
427
|
options: ThreadSolidOptions,
|
|
@@ -329,6 +433,8 @@ export declare function preflightThreadSolid(
|
|
|
329
433
|
* Returns owned buffers; every triangle retains its coordinates, order and winding.
|
|
330
434
|
* Pathological vertex fans exceeding 50 million normal comparisons reject with a complexity error.
|
|
331
435
|
*
|
|
436
|
+
* @param input - Indexed mesh to copy; source buffers remain unchanged.
|
|
437
|
+
*
|
|
332
438
|
* @example
|
|
333
439
|
* ```ts
|
|
334
440
|
* import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
@@ -367,8 +473,7 @@ export declare function reverse(mesh: TriangleMeshInput): TriangleMesh;
|
|
|
367
473
|
* Profile coordinates must fit finite Float32 mesh storage.
|
|
368
474
|
* Path2 profiles must be closed; raw point collections have an implicit closing edge.
|
|
369
475
|
*
|
|
370
|
-
* @param
|
|
371
|
-
* @param options - Optional physical or exact circumferential sampling controls. Defaults to `{}`.
|
|
476
|
+
* @param input - Closed `[radius, Z]` profile in millimetres; radii must be non-negative.
|
|
372
477
|
* @returns A closed indexed triangle mesh revolved counter-clockwise around +Z.
|
|
373
478
|
*
|
|
374
479
|
* @example Partial revolution with end caps
|
|
@@ -399,8 +504,21 @@ export declare function signature(
|
|
|
399
504
|
options?: TriangleMeshSignatureOptions,
|
|
400
505
|
): TriangleMeshSignature;
|
|
401
506
|
|
|
507
|
+
/** Bounded floating-point intersection and shell-orientation validation settings. */
|
|
508
|
+
export declare interface SolidMeshValidationOptions {
|
|
509
|
+
/** Work ceiling for spatial comparisons and containment tests; defaults to 2,000,000 and may only lower it. */
|
|
510
|
+
readonly maxTests?: number;
|
|
511
|
+
/** Distance comparison policy in millimetres; near contacts reject conservatively. */
|
|
512
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
513
|
+
}
|
|
514
|
+
|
|
402
515
|
/**
|
|
403
|
-
* Sweeps one
|
|
516
|
+
* Sweeps one ordered point loop along a path or explicit affine placements.
|
|
517
|
+
* Path mode computes orientation and deformation, automatically matching compatible closed seams.
|
|
518
|
+
* Transform mode connects only the supplied stations, preserving profile indices without refinement.
|
|
519
|
+
*
|
|
520
|
+
* @param profile - Closed XY path or simple contour, in millimetres.
|
|
521
|
+
* @param path - Ordered XYZ path in millimetres; a Path3 supplies its closure.
|
|
404
522
|
*
|
|
405
523
|
* @example Sweep point data along a bent path
|
|
406
524
|
* ```ts
|
|
@@ -416,10 +534,24 @@ export declare function sweep(
|
|
|
416
534
|
options?: SweepOptions,
|
|
417
535
|
): TriangleMesh;
|
|
418
536
|
|
|
537
|
+
/**
|
|
538
|
+
* Connects one point loop through exactly the supplied affine placements.
|
|
539
|
+
*
|
|
540
|
+
* @param profile - Closed XY path or simple contour, in millimetres.
|
|
541
|
+
* @param transforms - Affine placements in connection order; at least two when open, three when closed.
|
|
542
|
+
*/
|
|
543
|
+
export declare function sweep(
|
|
544
|
+
profile: Path2Input,
|
|
545
|
+
transforms: readonly Transform3Input[],
|
|
546
|
+
options?: SweepTransformOptions,
|
|
547
|
+
): TriangleMesh;
|
|
548
|
+
|
|
419
549
|
/**
|
|
420
550
|
* Builds closed thread-ridge components with every profile locked to the
|
|
421
551
|
* shaft's radial/axial frame. The mesh is intended for union with its
|
|
422
552
|
* minor-envelope cylinder and never owns WASM objects.
|
|
553
|
+
*
|
|
554
|
+
* @param options - Dimensions in millimetres and a validated profile; apply any fit compensation first.
|
|
423
555
|
*/
|
|
424
556
|
export declare function threadRidge(options: ThreadRidgeOptions): TriangleMesh;
|
|
425
557
|
|
|
@@ -431,6 +563,8 @@ export declare function threadRidge(options: ThreadRidgeOptions): TriangleMesh;
|
|
|
431
563
|
* monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
|
|
432
564
|
* conservative pre-allocation estimate rejects excessive meshes before constructing position
|
|
433
565
|
* arrays.
|
|
566
|
+
*
|
|
567
|
+
* @param options - Dimensions in millimetres and a validated profile; apply any fit compensation first.
|
|
434
568
|
*/
|
|
435
569
|
export declare function threadSolid(options: ThreadSolidOptions): TriangleMesh;
|
|
436
570
|
|
|
@@ -441,7 +575,7 @@ export declare function threadSolid(options: ThreadSolidOptions): TriangleMesh;
|
|
|
441
575
|
* automatically reverses every triangle. Singular transforms are rejected.
|
|
442
576
|
*
|
|
443
577
|
* @param mesh - Mesh to transform without mutation.
|
|
444
|
-
* @param placement -
|
|
578
|
+
* @param placement - Frame, fluent transform, or row-major affine matrix.
|
|
445
579
|
* @returns A mesh with fresh transformed positions and copied or reversed indices.
|
|
446
580
|
*/
|
|
447
581
|
export declare function transform(
|
|
@@ -449,6 +583,144 @@ export declare function transform(
|
|
|
449
583
|
placement: Transform3Input,
|
|
450
584
|
): TriangleMesh;
|
|
451
585
|
|
|
586
|
+
/** A topology-preserving indexed triangle mesh with mutable owned XYZ buffers. */
|
|
587
|
+
export declare interface TriangleMesh {
|
|
588
|
+
/** Three unsigned vertex indices per triangle. */
|
|
589
|
+
readonly indices: Uint32Array;
|
|
590
|
+
/** Flat XYZ coordinates in millimetres. */
|
|
591
|
+
readonly positions: Float32Array;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/** Measurements and optional edge-connected topology from one validated mesh traversal. */
|
|
595
|
+
export declare interface TriangleMeshAnalysis extends TriangleMeshMeasurements {
|
|
596
|
+
/** Number of surface shells connected by shared indexed edges when includeTopology is requested.
|
|
597
|
+
* Cavities count separately; shells may be open unless requireClosed is enabled. Coordinates are not welded. */
|
|
598
|
+
readonly shellCount?: number;
|
|
599
|
+
/** Number of distinct indexed undirected edges when `includeTopology` is requested. */
|
|
600
|
+
readonly edgeCount?: number;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
/** Validation and optional connectivity controls for a shared mesh analysis. */
|
|
604
|
+
export declare interface TriangleMeshAnalysisOptions extends TriangleMeshValidationOptions {
|
|
605
|
+
/** Compute indexed edge/shell counts and reject unreferenced vertices; defaults to false. */
|
|
606
|
+
readonly includeTopology?: boolean;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/** Raw construction buffers or immutable captured geometry accepted by mesh utilities. */
|
|
610
|
+
export declare type TriangleMeshInput = TriangleMesh | ImmutableTriangleMesh;
|
|
611
|
+
|
|
612
|
+
/** Geometric measurements derived from a validated, non-empty triangle mesh. */
|
|
613
|
+
export declare interface TriangleMeshMeasurements {
|
|
614
|
+
/** Axis-aligned bounds. */
|
|
615
|
+
readonly bounds: Bounds3Data;
|
|
616
|
+
/** Signed enclosed volume in cubic model units; positive values correspond to outward winding. */
|
|
617
|
+
readonly signedVolume: number;
|
|
618
|
+
/** Sum of all triangle areas in squared model units. */
|
|
619
|
+
readonly surfaceArea: number;
|
|
620
|
+
/** Number of indexed triangles. */
|
|
621
|
+
readonly triangleCount: number;
|
|
622
|
+
/** Number of distinct entries in the position buffer. */
|
|
623
|
+
readonly vertexCount: number;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
/** Options controlling bounded triangle-mesh quality analysis. */
|
|
627
|
+
export declare interface TriangleMeshQualityOptions {
|
|
628
|
+
/** Maximum number of triangles inspected. Defaults to `200000`. */
|
|
629
|
+
readonly maxTriangles?: number;
|
|
630
|
+
/** Numeric comparison overrides; model coordinates are interpreted in their existing units. */
|
|
631
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
/** Structural, topological, and planar-patch measurements for one indexed triangle mesh. */
|
|
635
|
+
export declare interface TriangleMeshQualityReport {
|
|
636
|
+
/** Number of duplicate triangles beyond their first unordered occurrence. */
|
|
637
|
+
readonly duplicateTriangleCount: number;
|
|
638
|
+
/** Number of two-face edges whose incident triangles use the same direction. */
|
|
639
|
+
readonly inconsistentWindingEdgeCount: number;
|
|
640
|
+
/** Whether the mesh has valid faces and exactly two oppositely wound faces at every edge. */
|
|
641
|
+
readonly isClosedOrientedManifold: boolean;
|
|
642
|
+
/** Largest normalized triangle aspect ratio; an equilateral triangle has ratio `1`. */
|
|
643
|
+
readonly maximumTriangleAspectRatio: number;
|
|
644
|
+
/** Largest number of triangles incident to one indexed vertex. */
|
|
645
|
+
readonly maximumVertexTriangleIncidence: number;
|
|
646
|
+
/** Largest number of distinct neighbours connected to one indexed vertex. */
|
|
647
|
+
readonly maximumVertexValence: number;
|
|
648
|
+
/** Smallest interior triangle angle in degrees. */
|
|
649
|
+
readonly minimumTriangleAngleDegrees: number;
|
|
650
|
+
/** Number of triangles at or below the scale-aware zero-area threshold. */
|
|
651
|
+
readonly nearZeroAreaTriangleCount: number;
|
|
652
|
+
/** Number of edges with more than two incident triangles. */
|
|
653
|
+
readonly nonManifoldEdgeCount: number;
|
|
654
|
+
/** Number of edges with exactly one incident triangle. */
|
|
655
|
+
readonly openEdgeCount: number;
|
|
656
|
+
/** Edge-connected coplanar patches in deterministic first-triangle order. */
|
|
657
|
+
readonly planarPatches: readonly PlanarPatchQuality[];
|
|
658
|
+
/** Signed enclosed volume in cubic model units; positive values indicate outward winding. */
|
|
659
|
+
readonly signedVolume: number;
|
|
660
|
+
/** Total triangle area in squared model units. */
|
|
661
|
+
readonly surfaceArea: number;
|
|
662
|
+
/** Number of indexed triangles. */
|
|
663
|
+
readonly triangleCount: number;
|
|
664
|
+
/** Number of entries in the position buffer. */
|
|
665
|
+
readonly vertexCount: number;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/** Immutable deterministic measurements for a closed, oriented triangle mesh. */
|
|
669
|
+
export declare interface TriangleMeshSignature {
|
|
670
|
+
/** Axis-aligned bounds quantized by `tolerances.position`. */
|
|
671
|
+
readonly bounds: Bounds3Data;
|
|
672
|
+
/** Number of edge-connected closed boundary shells; cavities count separately. */
|
|
673
|
+
readonly shellCount: number;
|
|
674
|
+
/** Total orientable genus across all connected components. */
|
|
675
|
+
readonly genus: number;
|
|
676
|
+
/** Order-independent hash of quantized vertices and oriented triangles. */
|
|
677
|
+
readonly fingerprint: string;
|
|
678
|
+
/** Signed enclosed volume quantized by `tolerances.signedVolume`. */
|
|
679
|
+
readonly signedVolume: number;
|
|
680
|
+
/** Quantization used to make the signature stable across insignificant numeric drift. */
|
|
681
|
+
readonly tolerances: TriangleMeshSignatureTolerances;
|
|
682
|
+
/** Number of indexed triangles. */
|
|
683
|
+
readonly triangleCount: number;
|
|
684
|
+
/** Number of referenced position-buffer vertices. */
|
|
685
|
+
readonly vertexCount: number;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
/** Options controlling deterministic triangle-mesh regression signatures. */
|
|
689
|
+
export declare interface TriangleMeshSignatureOptions {
|
|
690
|
+
/** Maximum accepted triangle count. Defaults to 200,000. */
|
|
691
|
+
readonly maxTriangles?: number;
|
|
692
|
+
/** Position and bounds quantization in model units. Defaults to `1e-5`. */
|
|
693
|
+
readonly positionTolerance?: number;
|
|
694
|
+
/** Signed-volume quantization in cubic model units. Defaults to `1e-4`. */
|
|
695
|
+
readonly volumeTolerance?: number;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
/** Absolute tolerances recorded in a triangle-mesh regression signature. */
|
|
699
|
+
export declare interface TriangleMeshSignatureTolerances {
|
|
700
|
+
/** Position and bounds quantization in model units. */
|
|
701
|
+
readonly position: number;
|
|
702
|
+
/** Signed-volume quantization in cubic model units. */
|
|
703
|
+
readonly signedVolume: number;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
/** Mesh measurements with the indexed surface-shell and edge counts requested by includeTopology. */
|
|
707
|
+
export declare interface TriangleMeshTopologyAnalysis extends TriangleMeshAnalysis {
|
|
708
|
+
/** Number of surface shells connected by shared indexed edges; cavities count separately. */
|
|
709
|
+
readonly shellCount: number;
|
|
710
|
+
/** Number of distinct indexed undirected edges. */
|
|
711
|
+
readonly edgeCount: number;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
/** Options controlling structural and manufacturing validation of a mesh. */
|
|
715
|
+
export declare interface TriangleMeshValidationOptions {
|
|
716
|
+
/** Permit an empty position and index buffer. Defaults to `false`. */
|
|
717
|
+
readonly allowEmpty?: boolean;
|
|
718
|
+
/** Require two oppositely wound faces per edge; geometric self-intersections are not detected. */
|
|
719
|
+
readonly requireClosed?: boolean;
|
|
720
|
+
/** Numeric comparison overrides used for zero-area triangle detection. */
|
|
721
|
+
readonly tolerance?: GeometryToleranceOptions;
|
|
722
|
+
}
|
|
723
|
+
|
|
452
724
|
/**
|
|
453
725
|
* Validates mesh buffers, indices, triangle area, and optionally closed topology.
|
|
454
726
|
*
|
|
@@ -456,7 +728,7 @@ export declare function transform(
|
|
|
456
728
|
* and non-manifold edges. It establishes edge connectivity without detecting geometric
|
|
457
729
|
* self-intersections between faces. The mesh is neither mutated nor copied.
|
|
458
730
|
*
|
|
459
|
-
* @param mesh -
|
|
731
|
+
* @param mesh - Raw or captured indexed buffers with complete finite XYZ vertices.
|
|
460
732
|
* @param options - Empty-mesh, topology, and tolerance policy.
|
|
461
733
|
* @returns The original mesh after successful validation.
|
|
462
734
|
* @throws `GeometryError` When any requested invariant fails.
|
|
@@ -478,7 +750,7 @@ export declare function validate<T extends TriangleMeshInput>(
|
|
|
478
750
|
* Input buffers are freshly inspected and never modified; units are millimetres.
|
|
479
751
|
*
|
|
480
752
|
* @param mesh - Closed triangle mesh to inspect.
|
|
481
|
-
* @param options -
|
|
753
|
+
* @param options - Lower work limit and tolerance for numeric comparisons.
|
|
482
754
|
* @returns The original mesh after every requested check succeeds.
|
|
483
755
|
*/
|
|
484
756
|
export declare function validateSolid<T extends TriangleMeshInput>(
|