@metamesh/modeling 0.18.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 +82 -0
- package/README.md +96 -64
- package/dist/api/engine.d.ts +216 -160
- package/dist/api/export.d.ts +204 -0
- package/dist/api/geometry.d.ts +410 -2106
- package/dist/api/index.d.ts +545 -1821
- package/dist/api/math.d.ts +315 -0
- package/dist/api/mechanical.d.ts +1041 -0
- package/dist/api/mesh.d.ts +395 -94
- package/dist/api/text.d.ts +24 -44
- package/dist/docs/guides/concepts.md +54 -523
- package/dist/docs/guides/exporting.md +88 -0
- package/dist/docs/guides/fonts.md +7 -5
- package/dist/docs/guides/fundamentals.md +12 -24
- package/dist/docs/guides/generation.md +76 -61
- package/dist/docs/guides/geometry-values.md +251 -0
- package/dist/docs/guides/hosting.md +58 -80
- package/dist/docs/guides/profiles-and-extrusion.md +400 -0
- package/dist/docs/guides/recipes.md +52 -706
- package/dist/docs/guides/resolution-and-inspection.md +153 -0
- package/dist/docs/guides/solid-joins.md +136 -0
- package/dist/docs/guides/standalone-model.md +5 -3
- package/dist/docs/guides/svg-and-text.md +252 -0
- package/dist/docs/guides/sweeps-and-lofts.md +223 -0
- package/dist/docs/guides/transforms-and-placement.md +323 -0
- package/dist/docs/guides/workers.md +166 -0
- package/dist/docs/manifest.json +5539 -8603
- package/dist/docs/reference/engine/GenerationOptions.md +9 -4
- package/dist/docs/reference/engine/GeometryResource.md +11 -5
- package/dist/docs/reference/engine/ModelDependencies.md +9 -3
- package/dist/docs/reference/engine/ModelEngine.md +8 -3
- package/dist/docs/reference/engine/ModelEngineOptions.md +6 -5
- package/dist/docs/reference/engine/ModelPart.md +12 -6
- package/dist/docs/reference/engine/ModelResult.md +8 -2
- package/dist/docs/reference/engine/ModelRunArguments.md +7 -1
- package/dist/docs/reference/engine/ModelRunOptions.md +9 -4
- package/dist/docs/reference/engine/ModelSession.md +7 -1
- package/dist/docs/reference/engine/SessionOptions.md +9 -4
- package/dist/docs/reference/engine/categories/host-lifecycle.md +11 -10
- package/dist/docs/reference/engine/checkModel.md +11 -1
- package/dist/docs/reference/engine/createModelEngine.md +13 -4
- package/dist/docs/reference/engine/defaultModelingLimits.md +7 -8
- package/dist/docs/reference/engine/modelingWasmUrl.md +7 -1
- package/dist/docs/reference/engine.md +13 -7
- package/dist/docs/reference/export/Export3mfOptions.md +20 -0
- package/dist/docs/reference/export/ExportDiagnostic.md +47 -0
- package/dist/docs/reference/export/ExportFormat.md +13 -0
- package/dist/docs/reference/export/ExportGeometry.md +27 -0
- package/dist/docs/reference/export/ExportGlbOptions.md +114 -0
- package/dist/docs/reference/export/ExportLimits.md +71 -0
- package/dist/docs/reference/export/ExportMaterial.md +35 -0
- package/dist/docs/reference/export/ExportOptions.md +82 -0
- package/dist/docs/reference/export/ExportPart.md +76 -0
- package/dist/docs/reference/export/ExportReport.md +70 -0
- package/dist/docs/reference/export/ExportSink.md +29 -0
- package/dist/docs/reference/export/ExportStlOptions.md +20 -0
- package/dist/docs/reference/export/ExportedFile.md +98 -0
- package/dist/docs/reference/export/categories/mesh-serialization.md +53 -0
- package/dist/docs/reference/export/defaultExportLimits.md +20 -0
- package/dist/docs/reference/export/export3mf.md +62 -0
- package/dist/docs/reference/export/exportGlb.md +66 -0
- package/dist/docs/reference/export/exportStl.md +62 -0
- package/dist/docs/reference/export/write3mf.md +71 -0
- package/dist/docs/reference/export/writeGlb.md +75 -0
- package/dist/docs/reference/export/writeStl.md +71 -0
- package/dist/docs/reference/export.md +27 -0
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +9 -3
- package/dist/docs/reference/geometry/Anchor3-type.md +9 -3
- package/dist/docs/reference/geometry/Anchor3Options.md +70 -0
- package/dist/docs/reference/geometry/ArcCurve2.md +8 -2
- package/dist/docs/reference/geometry/ArcCurve3.md +8 -2
- package/dist/docs/reference/geometry/AttachOptions.md +10 -5
- package/dist/docs/reference/geometry/Bounds2-type.md +17 -24
- package/dist/docs/reference/geometry/Bounds2Data.md +10 -9
- package/dist/docs/reference/geometry/Bounds2Input.md +10 -4
- package/dist/docs/reference/geometry/Bounds2Options.md +10 -4
- package/dist/docs/reference/geometry/Bounds3-type.md +17 -24
- package/dist/docs/reference/geometry/Bounds3Data.md +10 -9
- package/dist/docs/reference/geometry/Bounds3Input.md +10 -4
- package/dist/docs/reference/geometry/Bounds3Options.md +10 -4
- package/dist/docs/reference/geometry/BoundsFit2.md +10 -4
- package/dist/docs/reference/geometry/BoundsFit3.md +10 -4
- package/dist/docs/reference/geometry/BoundsFitOptions.md +10 -4
- package/dist/docs/reference/geometry/BoxAnchorFace.md +9 -3
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +9 -3
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +8 -2
- package/dist/docs/reference/geometry/CircleContourOptions.md +8 -2
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +8 -3
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +7 -1
- package/dist/docs/reference/geometry/CircularSampling.md +7 -1
- package/dist/docs/reference/geometry/CircularSamplingOptions.md +7 -1
- package/dist/docs/reference/geometry/Contour.md +9 -4
- package/dist/docs/reference/geometry/ContourCurve.md +8 -2
- package/dist/docs/reference/geometry/ContourPoint.md +8 -2
- package/dist/docs/reference/geometry/ContourSegment.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingComponent.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingContour.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingProfile.md +8 -2
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +9 -3
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +8 -2
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +8 -2
- package/dist/docs/reference/geometry/Curve2.md +8 -2
- package/dist/docs/reference/geometry/Curve3.md +8 -2
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +8 -2
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +9 -3
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +10 -4
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +7 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +7 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +8 -2
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +15 -10
- package/dist/docs/reference/geometry/FittedTextLayout.md +8 -2
- package/dist/docs/reference/geometry/{Frame3.md → Frame3-type.md} +9 -2
- package/dist/docs/reference/geometry/Frame3Options.md +69 -0
- package/dist/docs/reference/geometry/GeometryError.md +7 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +7 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +7 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +7 -1
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +8 -2
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +8 -2
- package/dist/docs/reference/geometry/GridPatternOptions.md +13 -5
- package/dist/docs/reference/geometry/ImmutableBuffer-type.md +8 -14
- package/dist/docs/reference/geometry/LineCurve2.md +8 -2
- package/dist/docs/reference/geometry/LineCurve3.md +8 -2
- package/dist/docs/reference/geometry/LinearPatternOptions.md +8 -2
- package/dist/docs/reference/geometry/LoftPlacement.md +19 -13
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +8 -2
- package/dist/docs/reference/geometry/ModelingLimits.md +7 -1
- package/dist/docs/reference/geometry/NumericArray.md +8 -2
- package/dist/docs/reference/geometry/Path2-type.md +158 -3
- package/dist/docs/reference/geometry/Path2Data.md +8 -2
- package/dist/docs/reference/geometry/Path2Input.md +8 -2
- package/dist/docs/reference/geometry/Path3-type.md +158 -3
- package/dist/docs/reference/geometry/Path3Data.md +8 -2
- package/dist/docs/reference/geometry/Path3Input.md +8 -2
- package/dist/docs/reference/geometry/PathFrame.md +8 -2
- package/dist/docs/reference/geometry/PathLocation.md +8 -2
- package/dist/docs/reference/geometry/PathNormalGuide.md +9 -3
- package/dist/docs/reference/geometry/PathOptions.md +8 -2
- package/dist/docs/reference/geometry/PathPatternOptions.md +9 -3
- package/dist/docs/reference/geometry/PathPlacement.md +10 -4
- package/dist/docs/reference/geometry/PathResamplingOptions.md +8 -2
- 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 +9 -3
- package/dist/docs/reference/geometry/Pivot3Options.md +9 -3
- package/dist/docs/reference/geometry/PolygonData.md +9 -3
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +8 -2
- package/dist/docs/reference/geometry/Profile.md +8 -3
- package/dist/docs/reference/geometry/ProfileComponent2.md +8 -2
- package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
- package/dist/docs/reference/geometry/ProfileSpan2.md +8 -2
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +10 -3
- package/dist/docs/reference/geometry/RadialPatternOptions.md +8 -2
- package/dist/docs/reference/geometry/RadialSizing.md +7 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +7 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +9 -2
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +8 -2
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +8 -2
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +8 -2
- package/dist/docs/reference/geometry/RegionData.md +8 -2
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +8 -2
- package/dist/docs/reference/geometry/ResolvedGeometryResolution.md +71 -0
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +7 -1
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +7 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +10 -4
- package/dist/docs/reference/geometry/SampleContourOptions.md +8 -2
- package/dist/docs/reference/geometry/SampleHelixOptions.md +8 -2
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +8 -2
- package/dist/docs/reference/geometry/SampledCurve2.md +8 -2
- package/dist/docs/reference/geometry/SampledCurve3.md +8 -2
- package/dist/docs/reference/geometry/SideProfileCurve.md +8 -2
- package/dist/docs/reference/geometry/SideProfilePoint.md +8 -2
- package/dist/docs/reference/geometry/SideProfileSegment.md +8 -2
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +7 -1
- package/dist/docs/reference/geometry/SplineOptions.md +69 -0
- package/dist/docs/reference/geometry/StarContourOptions.md +12 -2
- package/dist/docs/reference/geometry/StrokeCap.md +8 -2
- package/dist/docs/reference/geometry/StrokeJoin.md +8 -2
- package/dist/docs/reference/geometry/StrokeOptions.md +9 -3
- package/dist/docs/reference/geometry/SvgImportOptions.md +10 -4
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +8 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +8 -2
- package/dist/docs/reference/geometry/Transform2-type.md +9 -3
- package/dist/docs/reference/geometry/Transform2Data.md +9 -3
- package/dist/docs/reference/geometry/Transform2Input.md +9 -3
- package/dist/docs/reference/geometry/Transform3-type.md +10 -4
- package/dist/docs/reference/geometry/Transform3Data.md +9 -3
- package/dist/docs/reference/geometry/Transform3Input.md +12 -5
- package/dist/docs/reference/geometry/Vector2-type.md +9 -3
- package/dist/docs/reference/geometry/Vector2Data.md +9 -3
- package/dist/docs/reference/geometry/Vector2Input.md +9 -3
- package/dist/docs/reference/geometry/Vector3-type.md +33 -3
- package/dist/docs/reference/geometry/Vector3Data.md +9 -3
- package/dist/docs/reference/geometry/Vector3Input.md +9 -3
- package/dist/docs/reference/geometry/VectorTextLayout.md +8 -2
- package/dist/docs/reference/geometry/VectorTextMetrics.md +9 -3
- package/dist/docs/reference/geometry/anchor3.md +23 -26
- package/dist/docs/reference/geometry/anchorFrame3.md +11 -5
- package/dist/docs/reference/geometry/attachmentTransform3.md +14 -8
- package/dist/docs/reference/geometry/bounds2.md +16 -8
- package/dist/docs/reference/geometry/bounds3.md +14 -6
- package/dist/docs/reference/geometry/boundsCenter.md +10 -4
- package/dist/docs/reference/geometry/boundsSize.md +10 -4
- package/dist/docs/reference/geometry/boxAnchor3.md +9 -3
- package/dist/docs/reference/geometry/categories/bounds-layout.md +12 -6
- 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 +11 -5
- 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 +8 -5
- package/dist/docs/reference/geometry/circleContour.md +8 -2
- package/dist/docs/reference/geometry/closeToAxis.md +12 -2
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +14 -5
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +18 -5
- package/dist/docs/reference/geometry/contourContainsPoint.md +12 -2
- package/dist/docs/reference/geometry/cylinderAnchor3.md +11 -5
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +8 -2
- package/dist/docs/reference/geometry/distributeAlongPath.md +21 -10
- package/dist/docs/reference/geometry/ellipseContour.md +8 -2
- package/dist/docs/reference/geometry/fitBounds.md +18 -4
- package/dist/docs/reference/geometry/fitTextLayout.md +11 -5
- package/dist/docs/reference/geometry/frame3.md +66 -0
- package/dist/docs/reference/geometry/gridPatternTransforms.md +12 -6
- package/dist/docs/reference/geometry/immutableBuffer.md +11 -3
- package/dist/docs/reference/geometry/isGeometryError.md +7 -1
- package/dist/docs/reference/geometry/layoutRow.md +12 -4
- package/dist/docs/reference/geometry/linearPatternTransforms.md +12 -6
- package/dist/docs/reference/geometry/matchProfiles.md +10 -2
- package/dist/docs/reference/geometry/normalizeContour.md +13 -3
- package/dist/docs/reference/geometry/normalizePolygon.md +10 -2
- package/dist/docs/reference/geometry/normalizeRegion.md +10 -2
- package/dist/docs/reference/geometry/path2.md +12 -2
- package/dist/docs/reference/geometry/path3.md +12 -2
- package/dist/docs/reference/geometry/pathPatternTransforms.md +18 -8
- package/dist/docs/reference/geometry/preflightSvgRegion.md +11 -5
- package/dist/docs/reference/geometry/radialPatternTransforms.md +11 -5
- package/dist/docs/reference/geometry/rectangleContour.md +8 -2
- package/dist/docs/reference/geometry/rectangleProfile.md +8 -3
- package/dist/docs/reference/geometry/regionArea.md +8 -2
- package/dist/docs/reference/geometry/regionBounds.md +11 -3
- package/dist/docs/reference/geometry/regularPolygonContour.md +8 -2
- package/dist/docs/reference/geometry/resamplePolyline2.md +12 -2
- package/dist/docs/reference/geometry/resamplePolyline3.md +12 -2
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +10 -4
- package/dist/docs/reference/geometry/resolveArcSegments.md +13 -5
- package/dist/docs/reference/geometry/resolveCircularSampling.md +7 -1
- package/dist/docs/reference/geometry/resolveCircularSegments.md +10 -2
- package/dist/docs/reference/geometry/resolveExtrusionSlices.md +85 -0
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +10 -2
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +8 -2
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +17 -4
- package/dist/docs/reference/geometry/sampleContour.md +10 -4
- package/dist/docs/reference/geometry/sampleCurve2.md +12 -2
- package/dist/docs/reference/geometry/sampleCurve3.md +12 -2
- package/dist/docs/reference/geometry/sampleHelix.md +8 -2
- package/dist/docs/reference/geometry/sampleSideProfile.md +10 -4
- package/dist/docs/reference/geometry/sampleTextContours.md +9 -3
- package/dist/docs/reference/geometry/signedContourArea.md +10 -2
- 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 +8 -2
- package/dist/docs/reference/geometry/strokeRegionData.md +14 -5
- package/dist/docs/reference/geometry/transform2.md +11 -3
- package/dist/docs/reference/geometry/transform3.md +29 -6
- package/dist/docs/reference/geometry/transformRegionData.md +12 -2
- package/dist/docs/reference/geometry/triangulateContour.md +11 -3
- package/dist/docs/reference/geometry/vector2.md +12 -4
- package/dist/docs/reference/geometry/vector3.md +14 -4
- package/dist/docs/reference/geometry.md +13 -18
- package/dist/docs/reference/{geometry → math}/AxisAngleRotation3.md +8 -3
- 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 +9 -4
- package/dist/docs/reference/{geometry → mechanical}/Bevel.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/BevelSize.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ButtressPressureFlankSide.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ButtressThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ClearanceHoleFit.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CompensatedThreadDiameters.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CustomThreadProfileSpec.md +10 -6
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearMeshKind.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearOutlineOptions.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionOptions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairMotionReport.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearPairSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/CylindricalGearSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/InternalThreadCutterOptions.md +11 -8
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeBaseSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeDimensions.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeInterval.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSamplingOptions.md +9 -8
- package/dist/docs/reference/{geometry → mechanical}/KnuckleHingeSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/METRIC_FASTENER_STANDARDS.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerSize.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricFastenerStandard.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricHexNutDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/MetricSocketCapHeadDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/PRINTABLE_THREAD_FIT_POLICIES.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFit.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/PrintableThreadFitPolicy.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/RackPitchDimensions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/RackPitchSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/SampledThreadHelices.md +8 -6
- package/dist/docs/reference/{geometry → mechanical}/SquareThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ThreadBevelOptions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadCircularSegmentsOptions.md +10 -6
- package/dist/docs/reference/{geometry → mechanical}/ThreadCompensationOptions.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndStyle.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadEndTreatmentOptions.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadHandedness.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadHelixOptions.md +10 -6
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInEnvelope.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadLeadInShape.md +8 -2
- package/dist/docs/reference/{mesh/ThreadProfile.md → mechanical/ThreadProfile-type.md} +8 -6
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileBaseSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/ThreadProfileSpec.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadRidgeOptions.md +12 -9
- package/dist/docs/reference/{geometry → mechanical}/ThreadRole.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidOptions.md +13 -10
- package/dist/docs/reference/{geometry → mechanical}/ThreadSolidPreflight.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutOptions.md +12 -9
- package/dist/docs/reference/{geometry → mechanical}/ThreadedNutPreflight.md +8 -2
- package/dist/docs/reference/mechanical/ThreadedNutShape.md +20 -0
- package/dist/docs/reference/{geometry → mechanical}/ThreadedRodOptions.md +11 -8
- package/dist/docs/reference/{geometry → mechanical}/TrapezoidalThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/TriangularThreadProfileSpec.md +9 -4
- package/dist/docs/reference/{geometry → mechanical}/categories/mechanical.md +9 -3
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadDiameters.md +9 -3
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileAxially.md +17 -5
- package/dist/docs/reference/{geometry → mechanical}/compensateThreadProfileForFaceting.md +18 -2
- package/dist/docs/reference/{geometry → mechanical}/getMetricClearanceHoleDiameter.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/getMetricFastenerStandard.md +8 -2
- package/dist/docs/reference/{geometry → mechanical}/measureInternalCylindricalGearPairMotion.md +14 -6
- package/dist/docs/reference/{geometry → mechanical}/minimumCylindricalGearToothCountWithoutUndercut.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/preflightInternalThreadCutter.md +13 -5
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedNut.md +14 -6
- package/dist/docs/reference/{geometry → mechanical}/preflightThreadedRod.md +13 -5
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGear.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveCylindricalGearPair.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveKnuckleHinge.md +14 -6
- package/dist/docs/reference/{geometry → mechanical}/resolvePrintableThreadFitPolicy.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveRackPitch.md +10 -2
- package/dist/docs/reference/{geometry → mechanical}/resolveThreadCircularSegments.md +12 -4
- package/dist/docs/reference/{geometry → mechanical}/sampleCylindricalGearOutline.md +14 -7
- package/dist/docs/reference/{geometry → mechanical}/sampleInternalCylindricalGearSpaceOutline.md +14 -7
- package/dist/docs/reference/{geometry → mechanical}/sampleRackToothPath.md +15 -7
- package/dist/docs/reference/{geometry → mechanical}/sampleThreadHelices.md +13 -5
- package/dist/docs/reference/{geometry → mechanical}/threadProfile.md +12 -2
- package/dist/docs/reference/mechanical.md +19 -0
- package/dist/docs/reference/mesh/ExtrudeMeshOptions.md +39 -40
- package/dist/docs/reference/mesh/HeightfieldMeshLimits.md +8 -6
- package/dist/docs/reference/mesh/HeightfieldPreflight.md +8 -2
- package/dist/docs/reference/mesh/ImmutableTriangleMesh.md +8 -6
- package/dist/docs/reference/mesh/LoftMeshStation.md +8 -7
- package/dist/docs/reference/mesh/MeshRenderOptions.md +28 -0
- package/dist/docs/reference/mesh/PlanarMeshOptimizationFallbackReason.md +9 -3
- package/dist/docs/reference/mesh/PlanarMeshOptimizationOptions.md +11 -6
- package/dist/docs/reference/mesh/PlanarMeshOptimizationResult.md +13 -7
- package/dist/docs/reference/mesh/PlanarPatchQuality.md +7 -5
- package/dist/docs/reference/mesh/RenderMesh.md +68 -0
- package/dist/docs/reference/mesh/SolidMeshValidationOptions.md +7 -5
- package/dist/docs/reference/mesh/TriangleMesh.md +16 -2
- package/dist/docs/reference/mesh/TriangleMeshAnalysis.md +16 -11
- package/dist/docs/reference/mesh/TriangleMeshAnalysisOptions.md +12 -7
- package/dist/docs/reference/mesh/TriangleMeshInput.md +9 -3
- package/dist/docs/reference/mesh/TriangleMeshMeasurements.md +10 -5
- package/dist/docs/reference/mesh/TriangleMeshQualityOptions.md +9 -4
- package/dist/docs/reference/mesh/TriangleMeshQualityReport.md +9 -3
- package/dist/docs/reference/mesh/TriangleMeshSignature.md +9 -4
- package/dist/docs/reference/mesh/TriangleMeshSignatureOptions.md +8 -2
- package/dist/docs/reference/mesh/TriangleMeshSignatureTolerances.md +8 -2
- package/dist/docs/reference/mesh/TriangleMeshTopologyAnalysis.md +17 -12
- package/dist/docs/reference/mesh/TriangleMeshValidationOptions.md +9 -4
- package/dist/docs/reference/mesh/analyze.md +28 -14
- package/dist/docs/reference/mesh/analyzeQuality.md +15 -9
- package/dist/docs/reference/mesh/bounds.md +10 -5
- package/dist/docs/reference/mesh/categories/operations.md +24 -81
- package/dist/docs/reference/mesh/centroid.md +10 -5
- package/dist/docs/reference/mesh/extrude.md +25 -18
- package/dist/docs/reference/mesh/heightfield.md +13 -7
- package/dist/docs/reference/mesh/immutable.md +16 -10
- package/dist/docs/reference/mesh/join.md +11 -5
- package/dist/docs/reference/mesh/loft.md +23 -16
- package/dist/docs/reference/mesh/optimizePlanarPatches.md +24 -18
- package/dist/docs/reference/mesh/preflightHeightfield.md +13 -7
- package/dist/docs/reference/mesh/preflightThreadSolid.md +27 -24
- package/dist/docs/reference/mesh/render.md +59 -0
- package/dist/docs/reference/mesh/reverse.md +11 -5
- package/dist/docs/reference/mesh/revolve.md +17 -13
- package/dist/docs/reference/mesh/signature.md +15 -9
- package/dist/docs/reference/mesh/sweep.md +101 -24
- package/dist/docs/reference/mesh/threadRidge.md +24 -17
- package/dist/docs/reference/mesh/threadSolid.md +28 -21
- package/dist/docs/reference/mesh/transform.md +12 -7
- package/dist/docs/reference/mesh/validate.md +15 -9
- package/dist/docs/reference/mesh/validateSolid.md +14 -8
- package/dist/docs/reference/mesh.md +8 -2
- package/dist/docs/reference/model/BoxEdge.md +11 -3
- package/dist/docs/reference/model/BoxEdgeSelection.md +11 -3
- package/dist/docs/reference/model/BoxEdgeTreatments.md +12 -5
- package/dist/docs/reference/model/BoxOptions.md +14 -9
- package/dist/docs/reference/model/CircleOptions.md +11 -6
- package/dist/docs/reference/model/CornerCutterOptions.md +93 -0
- package/dist/docs/reference/model/CornerCutterTreatment.md +53 -0
- package/dist/docs/reference/model/CutterOverrun.md +43 -0
- package/dist/docs/reference/model/CylinderOptions.md +12 -6
- package/dist/docs/reference/model/DiagnosticOptions.md +7 -1
- package/dist/docs/reference/model/EdgeCutterOptions.md +129 -0
- package/dist/docs/reference/model/EllipseOptions.md +11 -6
- package/dist/docs/reference/model/EndTreatments.md +13 -9
- package/dist/docs/reference/model/ExtrudeOptions.md +48 -44
- package/dist/docs/reference/model/GenerateCallback.md +7 -1
- package/dist/docs/reference/model/GenerateContext.md +23 -24
- package/dist/docs/reference/model/GenerationDiagnostic.md +7 -1
- package/dist/docs/reference/model/GenerationError.md +8 -2
- package/dist/docs/reference/model/HeightfieldOptions.md +8 -8
- package/dist/docs/reference/model/HoleCutterOpening.md +27 -0
- package/dist/docs/reference/model/HoleCutterOptions.md +19 -25
- package/dist/docs/reference/model/HoleCutterRecess.md +13 -5
- package/dist/docs/reference/model/HullOptions.md +12 -6
- package/dist/docs/reference/model/ImmutableValue.md +7 -1
- package/dist/docs/reference/model/ImplicitOptions.md +9 -9
- package/dist/docs/reference/model/JoinOptions.md +73 -0
- package/dist/docs/reference/model/JoinTransition.md +54 -0
- package/dist/docs/reference/model/KnuckleHinge-type.md +8 -3
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +7 -1
- package/dist/docs/reference/model/KnuckleHingeOptions.md +8 -4
- package/dist/docs/reference/model/KnuckleHingeWeb.md +7 -1
- package/dist/docs/reference/model/LoftCorrespondence.md +13 -5
- package/dist/docs/reference/model/LoftOptions.md +16 -10
- package/dist/docs/reference/model/LoftStation.md +16 -10
- package/dist/docs/reference/model/Memo.md +54 -0
- package/dist/docs/reference/model/ModelProgram.md +7 -1
- package/dist/docs/reference/model/PartDeclaration.md +12 -8
- package/dist/docs/reference/model/PartGeometry.md +8 -4
- package/dist/docs/reference/model/PartOptions.md +12 -8
- package/dist/docs/reference/model/PatternSource.md +11 -5
- package/dist/docs/reference/model/PlaneOptions.md +11 -8
- package/dist/docs/reference/model/PolygonOptions.md +17 -16
- package/dist/docs/reference/model/PrimitiveAttachment.md +15 -4
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +18 -17
- package/dist/docs/reference/model/RectangleOptions.md +31 -30
- package/dist/docs/reference/model/RegularPolygonOptions.md +11 -38
- package/dist/docs/reference/model/RevolveOptions.md +19 -17
- package/dist/docs/reference/model/Section.md +128 -72
- package/dist/docs/reference/model/SectionHullOptions.md +12 -6
- package/dist/docs/reference/model/SectionInspection.md +8 -6
- package/dist/docs/reference/model/SectionOffsetJoin.md +10 -4
- package/dist/docs/reference/model/SectionOffsetOptions.md +11 -6
- package/dist/docs/reference/model/Solid.md +113 -53
- package/dist/docs/reference/model/SolidInspection.md +8 -6
- package/dist/docs/reference/model/SolidSegmentHit.md +9 -7
- package/dist/docs/reference/model/SphereOptions.md +12 -5
- package/dist/docs/reference/model/StarOptions.md +33 -29
- package/dist/docs/reference/model/SvgOrigin.md +10 -4
- package/dist/docs/reference/model/SvgPathSectionOptions.md +13 -9
- package/dist/docs/reference/model/SvgSectionOptions.md +14 -11
- package/dist/docs/reference/model/SweepOptions.md +21 -28
- package/dist/docs/reference/model/SweepOrientation.md +19 -16
- package/dist/docs/reference/model/SweepTransformOptions.md +105 -0
- package/dist/docs/reference/model/TextSectionOptions.md +11 -10
- package/dist/docs/reference/model/TorusOptions.md +13 -7
- package/dist/docs/reference/model/TubeOptions.md +25 -8
- package/dist/docs/reference/model/box.md +14 -6
- package/dist/docs/reference/model/categories/boolean-operations.md +16 -4
- package/dist/docs/reference/model/categories/bounded-surfaces.md +7 -1
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +21 -16
- package/dist/docs/reference/model/categories/generation.md +15 -12
- package/dist/docs/reference/model/categories/hinges.md +7 -4
- package/dist/docs/reference/model/categories/mesh-inspection.md +8 -6
- package/dist/docs/reference/model/categories/primitives.md +32 -20
- package/dist/docs/reference/model/categories/sections.md +11 -16
- package/dist/docs/reference/model/categories/threads.md +9 -43
- package/dist/docs/reference/model/categories/transforms-placement.md +17 -41
- package/dist/docs/reference/model/circle.md +15 -5
- package/dist/docs/reference/model/cornerCutter.md +88 -0
- package/dist/docs/reference/model/cylinder.md +11 -3
- package/dist/docs/reference/model/edgeCutter.md +91 -0
- package/dist/docs/reference/model/ellipse.md +15 -5
- package/dist/docs/reference/model/extrude.md +37 -24
- package/dist/docs/reference/model/generate.md +10 -2
- package/dist/docs/reference/model/gridPattern.md +22 -9
- package/dist/docs/reference/model/heightfield.md +7 -1
- package/dist/docs/reference/model/holeCutter.md +34 -13
- package/dist/docs/reference/model/hull.md +9 -2
- package/dist/docs/reference/model/implicit.md +10 -4
- package/dist/docs/reference/model/internalThreadCutter.md +38 -21
- package/dist/docs/reference/model/intersect.md +14 -3
- package/dist/docs/reference/model/join.md +93 -0
- package/dist/docs/reference/model/knuckleHinge.md +7 -2
- package/dist/docs/reference/model/linearPattern.md +22 -9
- package/dist/docs/reference/model/loft.md +27 -16
- package/dist/docs/reference/model/minkowskiSum.md +10 -3
- package/dist/docs/reference/model/pathPattern.md +36 -21
- package/dist/docs/reference/model/polygon.md +18 -7
- package/dist/docs/reference/model/radialPattern.md +22 -9
- package/dist/docs/reference/model/rectangle.md +22 -12
- package/dist/docs/reference/model/regularPolygon.md +15 -5
- package/dist/docs/reference/model/revolve.md +26 -13
- package/dist/docs/reference/model/solidFromMesh.md +16 -6
- package/dist/docs/reference/model/sphere.md +12 -4
- package/dist/docs/reference/model/star.md +20 -10
- package/dist/docs/reference/model/stroke.md +29 -19
- package/dist/docs/reference/model/svgPathSection.md +20 -8
- package/dist/docs/reference/model/svgSection.md +21 -9
- package/dist/docs/reference/model/sweep.md +108 -24
- package/dist/docs/reference/model/textSection.md +19 -9
- package/dist/docs/reference/model/threadRidge.md +22 -17
- package/dist/docs/reference/model/threadedNut.md +31 -22
- package/dist/docs/reference/model/threadedRod.md +27 -18
- package/dist/docs/reference/model/torus.md +13 -5
- package/dist/docs/reference/model/tube.md +11 -3
- package/dist/docs/reference/model/union.md +14 -3
- package/dist/docs/reference/model.md +11 -11
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +7 -1
- package/dist/docs/reference/text/VectorFont.md +22 -12
- package/dist/docs/reference/text/VectorFontOptions.md +7 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +7 -1
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +8 -2
- package/dist/docs/reference/text/VectorTextOptions.md +7 -1
- package/dist/docs/reference/text/categories/font-preparation.md +7 -10
- package/dist/docs/reference/text/prepareVectorFont.md +9 -1
- package/dist/docs/reference/text.md +7 -1
- package/dist/engine/execution.js +5 -3
- package/dist/engine/finalization.js +6 -78
- package/dist/engine/index.js +11 -6
- package/dist/engine/native/adapter.js +1 -1
- package/dist/engine/native/construction-mesh.js +51 -0
- package/dist/engine/native/context.js +10 -7
- package/dist/engine/native/index.js +1 -1
- package/dist/engine/native/material-components.js +4 -53
- package/dist/engine/native/mesh-observation.js +55 -0
- package/dist/engine/native/regions.js +44 -23
- 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 +15 -6
- package/dist/engine/operations/cutters.js +112 -0
- package/dist/engine/operations/environment.js +2 -2
- package/dist/engine/operations/extrusion-finishing.js +56 -29
- package/dist/engine/operations/hole-cutter.js +125 -114
- package/dist/engine/operations/join-collar-profile.js +120 -0
- package/dist/engine/operations/join.js +521 -0
- 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 +87 -31
- package/dist/engine/session/declarations.js +98 -0
- package/dist/engine/session/dependencies.js +139 -39
- package/dist/engine/session/graph.js +290 -411
- package/dist/engine/session/native-cache.js +1 -1
- package/dist/engine/session/parameters.js +78 -0
- package/dist/engine/session/session.js +7 -7
- package/dist/engine/session/snapshot-cache.js +4 -4
- package/dist/engine/shape-anchors.js +13 -6
- package/dist/export/3mf.js +197 -0
- package/dist/export/capture.js +182 -0
- package/dist/export/glb.js +214 -0
- package/dist/export/index.js +5 -0
- package/dist/export/limits.js +18 -0
- package/dist/export/stl.js +120 -0
- package/dist/export/writer.js +54 -0
- package/dist/geometry/{bounds.js → bounds/operations.js} +3 -1
- package/dist/geometry/{bounds-value.js → bounds/value.js} +24 -20
- 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 +11 -7
- 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/mesh/join-layers.js +833 -0
- 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/render-buffers.js +220 -0
- package/dist/geometry/mesh/{mesh-signature.js → signature.js} +1 -1
- package/dist/geometry/mesh/{mesh-solid-intersections.js → solid-intersections.js} +45 -17
- package/dist/geometry/mesh/{mesh-solid.js → solid.js} +10 -6
- 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 -10
- 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/regions/offset.js +280 -0
- package/dist/geometry/{regions.js → regions/operations.js} +70 -23
- 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/sweep/options.js +1 -0
- 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 +4 -2
- package/dist/model/immutable-generation-data.js +15 -13
- package/dist/model/join.js +1 -0
- package/dist/model/operations.js +150 -94
- package/dist/model/recipe-declaration.js +6 -7
- package/dist/model/shape-handles.js +1 -0
- package/dist/text/index.js +3 -0
- package/dist/text/vector-text-layout.js +1 -0
- package/package.json +20 -5
- package/dist/docs/reference/engine/Export3mfOptions.md +0 -46
- package/dist/docs/reference/engine/ExportMeshPart.md +0 -31
- package/dist/docs/reference/engine/ModelingLimits.md +0 -121
- package/dist/docs/reference/engine/export3mf.md +0 -55
- package/dist/docs/reference/geometry/BoxEdge.md +0 -7
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +0 -14
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +0 -15
- package/dist/docs/reference/geometry/BoxOptions.md +0 -87
- package/dist/docs/reference/geometry/CylinderOptions.md +0 -53
- package/dist/docs/reference/geometry/EndTreatments.md +0 -34
- package/dist/docs/reference/geometry/ExtrudeMeshOptions.md +0 -130
- package/dist/docs/reference/geometry/ExtrudeOptions.md +0 -146
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +0 -18
- package/dist/docs/reference/geometry/HeightfieldOptions.md +0 -72
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +0 -58
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +0 -19
- package/dist/docs/reference/geometry/ImmutableTriangleMesh.md +0 -43
- package/dist/docs/reference/geometry/LoftCorrespondence.md +0 -24
- package/dist/docs/reference/geometry/LoftMeshStation.md +0 -31
- package/dist/docs/reference/geometry/LoftOptions.md +0 -88
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +0 -14
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +0 -160
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +0 -124
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +0 -194
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +0 -29
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +0 -104
- package/dist/docs/reference/geometry/RevolveOptions.md +0 -91
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +0 -38
- package/dist/docs/reference/geometry/SphereOptions.md +0 -15
- package/dist/docs/reference/geometry/SweepOptions.md +0 -113
- package/dist/docs/reference/geometry/SweepOrientation.md +0 -113
- package/dist/docs/reference/geometry/ThreadProfile-type.md +0 -86
- package/dist/docs/reference/geometry/ThreadedNutShape.md +0 -14
- package/dist/docs/reference/geometry/TorusOptions.md +0 -105
- package/dist/docs/reference/geometry/TriangleMesh.md +0 -34
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +0 -129
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +0 -79
- package/dist/docs/reference/geometry/TriangleMeshInput.md +0 -19
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +0 -79
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +0 -43
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +0 -194
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +0 -111
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +0 -46
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +0 -34
- package/dist/docs/reference/geometry/TriangleMeshTopologyAnalysis.md +0 -131
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +0 -55
- package/dist/docs/reference/geometry/TubeOptions.md +0 -62
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +0 -58
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +0 -115
- package/dist/docs/reference/geometry/VectorTextOptions.md +0 -54
- package/dist/docs/reference/geometry/add2.md +0 -37
- package/dist/docs/reference/geometry/add3.md +0 -43
- package/dist/docs/reference/geometry/applyTransformDirection3.md +0 -46
- package/dist/docs/reference/geometry/applyTransformPoint3.md +0 -44
- package/dist/docs/reference/geometry/categories/meshes.md +0 -68
- package/dist/docs/reference/geometry/composeTransform3.md +0 -45
- package/dist/docs/reference/geometry/cross2.md +0 -37
- package/dist/docs/reference/geometry/cross3.md +0 -43
- package/dist/docs/reference/geometry/distance2.md +0 -37
- package/dist/docs/reference/geometry/distance3.md +0 -37
- package/dist/docs/reference/geometry/dot2.md +0 -37
- package/dist/docs/reference/geometry/dot3.md +0 -43
- package/dist/docs/reference/geometry/eulerTransform3.md +0 -43
- package/dist/docs/reference/geometry/frameTransform3.md +0 -49
- package/dist/docs/reference/geometry/inverseTransform3.md +0 -35
- package/dist/docs/reference/geometry/length2.md +0 -31
- package/dist/docs/reference/geometry/length3.md +0 -31
- package/dist/docs/reference/geometry/lerp2.md +0 -43
- package/dist/docs/reference/geometry/lerp3.md +0 -43
- package/dist/docs/reference/geometry/normalize2.md +0 -40
- package/dist/docs/reference/geometry/normalize3.md +0 -40
- package/dist/docs/reference/geometry/projectOntoPlane3.md +0 -37
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +0 -78
- package/dist/docs/reference/geometry/rotate2.md +0 -37
- package/dist/docs/reference/geometry/rotationTransform3.md +0 -54
- package/dist/docs/reference/geometry/scale2.md +0 -37
- package/dist/docs/reference/geometry/scale3.md +0 -43
- package/dist/docs/reference/geometry/scaleTransform3.md +0 -39
- package/dist/docs/reference/geometry/subtract2.md +0 -37
- package/dist/docs/reference/geometry/subtract3.md +0 -43
- package/dist/docs/reference/geometry/transformDeterminant3.md +0 -37
- package/dist/docs/reference/geometry/translationTransform3.md +0 -36
- package/dist/docs/reference/geometry/validateRigidTransform3.md +0 -35
- package/dist/docs/reference/geometry/validateTransform3.md +0 -48
- package/dist/docs/reference/mesh/AcmeThreadProfileSpec.md +0 -79
- package/dist/docs/reference/mesh/Bevel.md +0 -18
- package/dist/docs/reference/mesh/BevelSize.md +0 -14
- package/dist/docs/reference/mesh/Bounds2.md +0 -125
- package/dist/docs/reference/mesh/Bounds2Data.md +0 -43
- package/dist/docs/reference/mesh/Bounds2Input.md +0 -19
- package/dist/docs/reference/mesh/Bounds3.md +0 -125
- package/dist/docs/reference/mesh/Bounds3Data.md +0 -43
- package/dist/docs/reference/mesh/Bounds3Input.md +0 -19
- package/dist/docs/reference/mesh/ButtressPressureFlankSide.md +0 -14
- package/dist/docs/reference/mesh/ButtressThreadProfileSpec.md +0 -97
- package/dist/docs/reference/mesh/CircularPrimitiveOptions.md +0 -60
- package/dist/docs/reference/mesh/CurveSamplingOptions.md +0 -69
- package/dist/docs/reference/mesh/CustomThreadProfileSpec.md +0 -77
- package/dist/docs/reference/mesh/ExtrusionSamplingOptions.md +0 -81
- package/dist/docs/reference/mesh/Frame3.md +0 -62
- package/dist/docs/reference/mesh/GeometryResolution.md +0 -74
- package/dist/docs/reference/mesh/GeometrySamplingLimits.md +0 -66
- package/dist/docs/reference/mesh/GeometryToleranceOptions.md +0 -46
- package/dist/docs/reference/mesh/HeightfieldOptions.md +0 -72
- package/dist/docs/reference/mesh/ImmutableBuffer.md +0 -108
- package/dist/docs/reference/mesh/LoftCorrespondence.md +0 -24
- package/dist/docs/reference/mesh/LoftOptions.md +0 -88
- package/dist/docs/reference/mesh/LoftPlacement.md +0 -70
- package/dist/docs/reference/mesh/ModelingLimits.md +0 -130
- package/dist/docs/reference/mesh/NumericArray.md +0 -14
- package/dist/docs/reference/mesh/Path2.md +0 -197
- package/dist/docs/reference/mesh/Path2Data.md +0 -50
- package/dist/docs/reference/mesh/Path2Input.md +0 -20
- package/dist/docs/reference/mesh/Path3.md +0 -197
- package/dist/docs/reference/mesh/Path3Data.md +0 -50
- package/dist/docs/reference/mesh/Path3Input.md +0 -20
- package/dist/docs/reference/mesh/PathLocation.md +0 -69
- package/dist/docs/reference/mesh/PathNormalGuide.md +0 -43
- package/dist/docs/reference/mesh/PathResamplingOptions.md +0 -84
- package/dist/docs/reference/mesh/Pivot2Options.md +0 -26
- package/dist/docs/reference/mesh/Pivot3Options.md +0 -26
- package/dist/docs/reference/mesh/RevolveOptions.md +0 -91
- package/dist/docs/reference/mesh/SquareThreadProfileSpec.md +0 -79
- package/dist/docs/reference/mesh/SweepOptions.md +0 -113
- package/dist/docs/reference/mesh/SweepOrientation.md +0 -113
- package/dist/docs/reference/mesh/ThreadEndStyle.md +0 -14
- package/dist/docs/reference/mesh/ThreadEndTreatmentOptions.md +0 -117
- package/dist/docs/reference/mesh/ThreadHandedness.md +0 -14
- package/dist/docs/reference/mesh/ThreadLeadInEnvelope.md +0 -14
- package/dist/docs/reference/mesh/ThreadLeadInShape.md +0 -14
- package/dist/docs/reference/mesh/ThreadProfileBaseSpec.md +0 -53
- package/dist/docs/reference/mesh/ThreadProfileSpec.md +0 -23
- package/dist/docs/reference/mesh/ThreadRidgeOptions.md +0 -145
- package/dist/docs/reference/mesh/ThreadSolidOptions.md +0 -222
- package/dist/docs/reference/mesh/ThreadSolidPreflight.md +0 -58
- package/dist/docs/reference/mesh/Transform2.md +0 -256
- package/dist/docs/reference/mesh/Transform2Data.md +0 -14
- package/dist/docs/reference/mesh/Transform2Input.md +0 -19
- package/dist/docs/reference/mesh/Transform3.md +0 -296
- package/dist/docs/reference/mesh/Transform3Data.md +0 -17
- package/dist/docs/reference/mesh/Transform3Input.md +0 -19
- package/dist/docs/reference/mesh/TrapezoidalThreadProfileSpec.md +0 -96
- package/dist/docs/reference/mesh/TriangularThreadProfileSpec.md +0 -95
- package/dist/docs/reference/mesh/Vector2.md +0 -270
- package/dist/docs/reference/mesh/Vector2Data.md +0 -14
- package/dist/docs/reference/mesh/Vector2Input.md +0 -19
- package/dist/docs/reference/mesh/Vector3.md +0 -282
- package/dist/docs/reference/mesh/Vector3Data.md +0 -14
- package/dist/docs/reference/mesh/Vector3Input.md +0 -19
- package/dist/docs/reference/model/AcmeThreadProfileSpec.md +0 -80
- package/dist/docs/reference/model/Anchor3.md +0 -55
- package/dist/docs/reference/model/AttachOptions.md +0 -69
- package/dist/docs/reference/model/Bevel.md +0 -19
- package/dist/docs/reference/model/BevelSize.md +0 -15
- package/dist/docs/reference/model/Bounds2-type.md +0 -125
- package/dist/docs/reference/model/Bounds2Data.md +0 -44
- package/dist/docs/reference/model/Bounds2Input.md +0 -19
- package/dist/docs/reference/model/Bounds2Options.md +0 -110
- package/dist/docs/reference/model/Bounds3-type.md +0 -125
- package/dist/docs/reference/model/Bounds3Data.md +0 -44
- package/dist/docs/reference/model/Bounds3Input.md +0 -19
- package/dist/docs/reference/model/Bounds3Options.md +0 -110
- package/dist/docs/reference/model/ButtressPressureFlankSide.md +0 -15
- package/dist/docs/reference/model/ButtressThreadProfileSpec.md +0 -98
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +0 -35
- package/dist/docs/reference/model/CircleContourOptions.md +0 -21
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +0 -62
- package/dist/docs/reference/model/Computed.md +0 -44
- package/dist/docs/reference/model/ComputedValue.md +0 -24
- package/dist/docs/reference/model/Contour.md +0 -24
- package/dist/docs/reference/model/CorrespondingComponent.md +0 -46
- package/dist/docs/reference/model/CorrespondingContour.md +0 -46
- package/dist/docs/reference/model/CorrespondingProfile.md +0 -22
- package/dist/docs/reference/model/CorrespondingProfileStation.md +0 -27
- package/dist/docs/reference/model/CurveSamplingOptions.md +0 -68
- package/dist/docs/reference/model/CustomThreadProfileSpec.md +0 -78
- package/dist/docs/reference/model/EdgeTreatment.md +0 -22
- package/dist/docs/reference/model/EllipseContourOptions.md +0 -21
- package/dist/docs/reference/model/ExtrudeMeshOptions.md +0 -133
- package/dist/docs/reference/model/ExtrusionSamplingOptions.md +0 -84
- package/dist/docs/reference/model/Frame3.md +0 -63
- package/dist/docs/reference/model/GeometryError.md +0 -102
- package/dist/docs/reference/model/GeometryErrorCode.md +0 -15
- package/dist/docs/reference/model/GeometryErrorContext.md +0 -35
- package/dist/docs/reference/model/GeometryResolution.md +0 -70
- package/dist/docs/reference/model/GeometrySamplingLimits.md +0 -62
- package/dist/docs/reference/model/GeometryToleranceOptions.md +0 -46
- package/dist/docs/reference/model/GridPatternOptions.md +0 -50
- package/dist/docs/reference/model/HoleCutterOverrun.md +0 -35
- package/dist/docs/reference/model/ImmutableBuffer-type.md +0 -108
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +0 -43
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +0 -216
- package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +0 -77
- package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +0 -47
- package/dist/docs/reference/model/KnuckleHingeSpec.md +0 -18
- package/dist/docs/reference/model/LinearPatternOptions.md +0 -39
- package/dist/docs/reference/model/LoftPlacement.md +0 -73
- package/dist/docs/reference/model/MatchProfilesOptions.md +0 -35
- package/dist/docs/reference/model/ModelingLimits.md +0 -126
- package/dist/docs/reference/model/NumericArray.md +0 -14
- package/dist/docs/reference/model/Path2-type.md +0 -196
- package/dist/docs/reference/model/Path2Data.md +0 -50
- package/dist/docs/reference/model/Path2Input.md +0 -20
- package/dist/docs/reference/model/Path3-type.md +0 -196
- package/dist/docs/reference/model/Path3Data.md +0 -50
- package/dist/docs/reference/model/Path3Input.md +0 -20
- package/dist/docs/reference/model/PathLocation.md +0 -69
- package/dist/docs/reference/model/PathNormalGuide.md +0 -46
- package/dist/docs/reference/model/PathOptions.md +0 -38
- package/dist/docs/reference/model/PathPatternOptions.md +0 -48
- package/dist/docs/reference/model/PathResamplingOptions.md +0 -84
- package/dist/docs/reference/model/Pivot2Options.md +0 -28
- package/dist/docs/reference/model/Pivot3Options.md +0 -28
- package/dist/docs/reference/model/PolygonData.md +0 -44
- package/dist/docs/reference/model/PrintableThreadFit.md +0 -15
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +0 -51
- package/dist/docs/reference/model/Profile.md +0 -24
- package/dist/docs/reference/model/ProfileComponent2.md +0 -46
- package/dist/docs/reference/model/ProfileContour2.md +0 -36
- package/dist/docs/reference/model/ProfileSpan2.md +0 -47
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +0 -41
- package/dist/docs/reference/model/RadialPatternOptions.md +0 -59
- package/dist/docs/reference/model/RadialSizing.md +0 -15
- package/dist/docs/reference/model/RadialSizingOptions.md +0 -40
- package/dist/docs/reference/model/RectangleContourOptions.md +0 -72
- package/dist/docs/reference/model/RectangleCornerTreatment.md +0 -40
- package/dist/docs/reference/model/RectangleCornerTreatments.md +0 -20
- package/dist/docs/reference/model/RegionData.md +0 -19
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +0 -96
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +0 -76
- package/dist/docs/reference/model/SquareThreadProfileSpec.md +0 -80
- package/dist/docs/reference/model/StarContourOptions.md +0 -81
- package/dist/docs/reference/model/StrokeCap.md +0 -16
- package/dist/docs/reference/model/StrokeJoin.md +0 -16
- package/dist/docs/reference/model/StrokeOptions.md +0 -91
- package/dist/docs/reference/model/ThreadBevelOptions.md +0 -35
- package/dist/docs/reference/model/ThreadEndStyle.md +0 -15
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +0 -118
- package/dist/docs/reference/model/ThreadHandedness.md +0 -15
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +0 -15
- package/dist/docs/reference/model/ThreadLeadInShape.md +0 -15
- package/dist/docs/reference/model/ThreadProfile.md +0 -87
- package/dist/docs/reference/model/ThreadProfileBaseSpec.md +0 -54
- package/dist/docs/reference/model/ThreadProfileSpec.md +0 -24
- package/dist/docs/reference/model/ThreadRidgeOptions.md +0 -141
- package/dist/docs/reference/model/ThreadSolidPreflight.md +0 -59
- package/dist/docs/reference/model/ThreadedNutOptions.md +0 -263
- package/dist/docs/reference/model/ThreadedNutPreflight.md +0 -111
- package/dist/docs/reference/model/ThreadedNutShape.md +0 -15
- package/dist/docs/reference/model/ThreadedRodOptions.md +0 -216
- package/dist/docs/reference/model/Transform2-type.md +0 -257
- package/dist/docs/reference/model/Transform2Data.md +0 -16
- package/dist/docs/reference/model/Transform2Input.md +0 -21
- package/dist/docs/reference/model/Transform3-type.md +0 -297
- package/dist/docs/reference/model/Transform3Data.md +0 -19
- package/dist/docs/reference/model/Transform3Input.md +0 -21
- package/dist/docs/reference/model/TrapezoidalThreadProfileSpec.md +0 -97
- package/dist/docs/reference/model/TriangleMesh.md +0 -34
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +0 -129
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +0 -79
- package/dist/docs/reference/model/TriangleMeshTopologyAnalysis.md +0 -131
- package/dist/docs/reference/model/TriangularThreadProfileSpec.md +0 -96
- package/dist/docs/reference/model/Vector2-type.md +0 -271
- package/dist/docs/reference/model/Vector2Data.md +0 -15
- package/dist/docs/reference/model/Vector2Input.md +0 -21
- package/dist/docs/reference/model/Vector3-type.md +0 -283
- package/dist/docs/reference/model/Vector3Data.md +0 -15
- package/dist/docs/reference/model/Vector3Input.md +0 -21
- package/dist/docs/reference/model/VectorTextLayout.md +0 -40
- package/dist/docs/reference/model/VectorTextMetrics.md +0 -100
- package/dist/docs/reference/model/bounds2.md +0 -37
- package/dist/docs/reference/model/bounds3.md +0 -37
- package/dist/docs/reference/model/categories/bounds.md +0 -38
- package/dist/docs/reference/model/categories/contracts.md +0 -16
- package/dist/docs/reference/model/categories/core-values-errors.md +0 -44
- package/dist/docs/reference/model/categories/explicit-profiles.md +0 -34
- package/dist/docs/reference/model/categories/paths.md +0 -42
- package/dist/docs/reference/model/categories/resolution.md +0 -20
- package/dist/docs/reference/model/immutableBuffer.md +0 -49
- package/dist/docs/reference/model/isGeometryError.md +0 -34
- package/dist/docs/reference/model/matchProfiles.md +0 -42
- package/dist/docs/reference/model/path2.md +0 -54
- package/dist/docs/reference/model/path3.md +0 -49
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +0 -87
- package/dist/docs/reference/model/preflightThreadedNut.md +0 -103
- package/dist/docs/reference/model/preflightThreadedRod.md +0 -87
- package/dist/docs/reference/model/transform2.md +0 -46
- package/dist/docs/reference/model/transform3.md +0 -48
- package/dist/docs/reference/model/vector2.md +0 -40
- package/dist/docs/reference/model/vector3.md +0 -47
- package/dist/docs/reference/text/Bounds2Data.md +0 -34
- package/dist/docs/reference/text/Vector2Data.md +0 -7
- package/dist/docs/reference/text/VectorTextLayout.md +0 -34
- package/dist/docs/reference/text/VectorTextMetrics.md +0 -94
- package/dist/engine/export-3mf.js +0 -23
- package/dist/engine/operations/patterns.js +0 -47
- package/dist/engine/serialize-3mf.js +0 -116
- 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/mesh/mesh-types.js → export/types.js} +0 -0
- /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/{primitive-options.js → mesh/types.js} +0 -0
- /package/dist/{engine/mesh-view-cache.js → geometry/mesh/view-cache.js} +0 -0
- /package/dist/geometry/{text-layout.js → primitives/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,18 +192,36 @@ 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";
|
|
227
220
|
* import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
228
|
-
* const
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
* return [part("surface", surface)];
|
|
233
|
-
* });
|
|
221
|
+
* const buildSurface = () => mesh.immutable(mesh.heightfield({
|
|
222
|
+
* size: [10, 10], segments: [8, 8], height: () => 2,
|
|
223
|
+
* }));
|
|
224
|
+
* const model = generate(({ memo, part }) => part("surface", memo(buildSurface)));
|
|
234
225
|
* ```
|
|
235
226
|
*/
|
|
236
227
|
export declare function immutable(mesh: {
|
|
@@ -238,6 +229,16 @@ export declare function immutable(mesh: {
|
|
|
238
229
|
readonly indices: Uint32Array;
|
|
239
230
|
}): ImmutableTriangleMesh;
|
|
240
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
|
+
|
|
241
242
|
/**
|
|
242
243
|
* Concatenates meshes into one indexed mesh without welding coincident vertices.
|
|
243
244
|
*
|
|
@@ -252,15 +253,17 @@ export declare function join(
|
|
|
252
253
|
): TriangleMesh;
|
|
253
254
|
|
|
254
255
|
/**
|
|
255
|
-
* Lofts simple point
|
|
256
|
+
* Lofts simple point contours at z heights or explicit affine transforms, in input order.
|
|
256
257
|
*
|
|
257
|
-
* Correspondence defaults to direct. CCW-normalized
|
|
258
|
+
* Correspondence defaults to direct. CCW-normalized contours retain their
|
|
258
259
|
* seam and original vertices; unequal counts gain subdivisions or repeated fan slots.
|
|
259
260
|
* Both ends use ear-clipped caps, supporting concave profiles without center fans.
|
|
260
261
|
* Intermediate slices interpolate placed world vertices, never frame axes.
|
|
261
262
|
* Transformed coordinates must fit finite Float32 mesh storage.
|
|
262
263
|
* Path2 profiles must be closed; raw point collections are interpreted as closed.
|
|
263
264
|
*
|
|
265
|
+
* @param stations - At least two XY profiles in connection order, each with Z height or affine placement.
|
|
266
|
+
*
|
|
264
267
|
* @example Loft with explicit point correspondence
|
|
265
268
|
* ```ts
|
|
266
269
|
* const bottom = rectangleContour({ size: [20, 12] });
|
|
@@ -273,6 +276,18 @@ export declare function loft(
|
|
|
273
276
|
options?: LoftOptions,
|
|
274
277
|
): TriangleMesh;
|
|
275
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
|
+
|
|
285
|
+
/** Shading policy for a render copy; manufacturing positions and triangle order never change. */
|
|
286
|
+
export declare interface MeshRenderOptions {
|
|
287
|
+
/** Maximum angle between averaged face normals, in degrees. Defaults to `20`; `0` is flat. */
|
|
288
|
+
readonly creaseAngle?: number;
|
|
289
|
+
}
|
|
290
|
+
|
|
276
291
|
/**
|
|
277
292
|
* Improves pathological planar triangulation with bounded legal diagonal flips.
|
|
278
293
|
*
|
|
@@ -283,7 +298,7 @@ export declare function loft(
|
|
|
283
298
|
* original raw mesh object. Immutable inputs produce owned raw output buffers, including unchanged
|
|
284
299
|
* results. Malformed buffers and the configured analysis complexity limit throw.
|
|
285
300
|
*
|
|
286
|
-
* @param mesh - Closed, consistently wound
|
|
301
|
+
* @param mesh - Closed, consistently wound mesh in consistent units.
|
|
287
302
|
* @param options - Patch eligibility, numeric tolerance, and deterministic work bounds.
|
|
288
303
|
* @returns Optimized connectivity and before/after diagnostics, or an unchanged safe fallback.
|
|
289
304
|
*/
|
|
@@ -292,6 +307,95 @@ export declare function optimizePlanarPatches(
|
|
|
292
307
|
options?: PlanarMeshOptimizationOptions,
|
|
293
308
|
): PlanarMeshOptimizationResult;
|
|
294
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
|
+
|
|
295
399
|
/**
|
|
296
400
|
* Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts.
|
|
297
401
|
*
|
|
@@ -299,6 +403,8 @@ export declare function optimizePlanarPatches(
|
|
|
299
403
|
* Successful preflight leaves height values, Float32 base storage, and generated mesh validity to
|
|
300
404
|
* construction. `byteCount` covers position and index buffers, not total working memory.
|
|
301
405
|
*
|
|
406
|
+
* @param options - Grid in millimetres; the height callback is not evaluated.
|
|
407
|
+
*
|
|
302
408
|
* @see `mesh.heightfield`
|
|
303
409
|
*/
|
|
304
410
|
export declare function preflightHeightfield(
|
|
@@ -314,11 +420,40 @@ export declare function preflightHeightfield(
|
|
|
314
420
|
* Successful preflight leaves generated coordinate and topology checks to mesh construction.
|
|
315
421
|
*
|
|
316
422
|
* See `mesh.threadSolid` for standalone mesh construction.
|
|
423
|
+
*
|
|
424
|
+
* @param options - Dimensions in millimetres and a validated profile; apply any fit compensation first.
|
|
317
425
|
*/
|
|
318
426
|
export declare function preflightThreadSolid(
|
|
319
427
|
options: ThreadSolidOptions,
|
|
320
428
|
): ThreadSolidPreflight;
|
|
321
429
|
|
|
430
|
+
/**
|
|
431
|
+
* Builds crease-aware render buffers without moving or merging distinct positions.
|
|
432
|
+
* Face normals are averaged only at exactly coincident positions within the crease angle.
|
|
433
|
+
* Returns owned buffers; every triangle retains its coordinates, order and winding.
|
|
434
|
+
* Pathological vertex fans exceeding 50 million normal comparisons reject with a complexity error.
|
|
435
|
+
*
|
|
436
|
+
* @param input - Indexed mesh to copy; source buffers remain unchanged.
|
|
437
|
+
*
|
|
438
|
+
* @example
|
|
439
|
+
* ```ts
|
|
440
|
+
* import * as mesh from "@metamesh/modeling/geometry/mesh";
|
|
441
|
+
* const surface = mesh.heightfield({ size: [10, 10], segments: [2, 2], height: () => 0 });
|
|
442
|
+
* const rendered = mesh.render(surface);
|
|
443
|
+
* // rendered.positions and rendered.normals can be passed to a renderer or GLB writer.
|
|
444
|
+
* ```
|
|
445
|
+
*/
|
|
446
|
+
export declare function render(
|
|
447
|
+
input: TriangleMeshInput,
|
|
448
|
+
options?: MeshRenderOptions,
|
|
449
|
+
): RenderMesh;
|
|
450
|
+
|
|
451
|
+
/** Owned indexed render buffers with unit vertex normals and positions in millimetres. */
|
|
452
|
+
export declare interface RenderMesh extends TriangleMesh {
|
|
453
|
+
/** XYZ unit normals, one for each render vertex. Vertices split at shading discontinuities. */
|
|
454
|
+
readonly normals: Float32Array;
|
|
455
|
+
}
|
|
456
|
+
|
|
322
457
|
/**
|
|
323
458
|
* Returns a copy of a mesh with every triangle winding reversed.
|
|
324
459
|
*
|
|
@@ -338,8 +473,7 @@ export declare function reverse(mesh: TriangleMeshInput): TriangleMesh;
|
|
|
338
473
|
* Profile coordinates must fit finite Float32 mesh storage.
|
|
339
474
|
* Path2 profiles must be closed; raw point collections have an implicit closing edge.
|
|
340
475
|
*
|
|
341
|
-
* @param
|
|
342
|
-
* @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.
|
|
343
477
|
* @returns A closed indexed triangle mesh revolved counter-clockwise around +Z.
|
|
344
478
|
*
|
|
345
479
|
* @example Partial revolution with end caps
|
|
@@ -370,8 +504,21 @@ export declare function signature(
|
|
|
370
504
|
options?: TriangleMeshSignatureOptions,
|
|
371
505
|
): TriangleMeshSignature;
|
|
372
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
|
+
|
|
373
515
|
/**
|
|
374
|
-
* 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.
|
|
375
522
|
*
|
|
376
523
|
* @example Sweep point data along a bent path
|
|
377
524
|
* ```ts
|
|
@@ -387,10 +534,24 @@ export declare function sweep(
|
|
|
387
534
|
options?: SweepOptions,
|
|
388
535
|
): TriangleMesh;
|
|
389
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
|
+
|
|
390
549
|
/**
|
|
391
550
|
* Builds closed thread-ridge components with every profile locked to the
|
|
392
551
|
* shaft's radial/axial frame. The mesh is intended for union with its
|
|
393
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.
|
|
394
555
|
*/
|
|
395
556
|
export declare function threadRidge(options: ThreadRidgeOptions): TriangleMesh;
|
|
396
557
|
|
|
@@ -402,6 +563,8 @@ export declare function threadRidge(options: ThreadRidgeOptions): TriangleMesh;
|
|
|
402
563
|
* monotone strip, with optional intermediate rows bounded by physical `maxSegmentLength`. A
|
|
403
564
|
* conservative pre-allocation estimate rejects excessive meshes before constructing position
|
|
404
565
|
* arrays.
|
|
566
|
+
*
|
|
567
|
+
* @param options - Dimensions in millimetres and a validated profile; apply any fit compensation first.
|
|
405
568
|
*/
|
|
406
569
|
export declare function threadSolid(options: ThreadSolidOptions): TriangleMesh;
|
|
407
570
|
|
|
@@ -412,7 +575,7 @@ export declare function threadSolid(options: ThreadSolidOptions): TriangleMesh;
|
|
|
412
575
|
* automatically reverses every triangle. Singular transforms are rejected.
|
|
413
576
|
*
|
|
414
577
|
* @param mesh - Mesh to transform without mutation.
|
|
415
|
-
* @param placement -
|
|
578
|
+
* @param placement - Frame, fluent transform, or row-major affine matrix.
|
|
416
579
|
* @returns A mesh with fresh transformed positions and copied or reversed indices.
|
|
417
580
|
*/
|
|
418
581
|
export declare function transform(
|
|
@@ -420,6 +583,144 @@ export declare function transform(
|
|
|
420
583
|
placement: Transform3Input,
|
|
421
584
|
): TriangleMesh;
|
|
422
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
|
+
|
|
423
724
|
/**
|
|
424
725
|
* Validates mesh buffers, indices, triangle area, and optionally closed topology.
|
|
425
726
|
*
|
|
@@ -427,7 +728,7 @@ export declare function transform(
|
|
|
427
728
|
* and non-manifold edges. It establishes edge connectivity without detecting geometric
|
|
428
729
|
* self-intersections between faces. The mesh is neither mutated nor copied.
|
|
429
730
|
*
|
|
430
|
-
* @param mesh -
|
|
731
|
+
* @param mesh - Raw or captured indexed buffers with complete finite XYZ vertices.
|
|
431
732
|
* @param options - Empty-mesh, topology, and tolerance policy.
|
|
432
733
|
* @returns The original mesh after successful validation.
|
|
433
734
|
* @throws `GeometryError` When any requested invariant fails.
|
|
@@ -449,7 +750,7 @@ export declare function validate<T extends TriangleMeshInput>(
|
|
|
449
750
|
* Input buffers are freshly inspected and never modified; units are millimetres.
|
|
450
751
|
*
|
|
451
752
|
* @param mesh - Closed triangle mesh to inspect.
|
|
452
|
-
* @param options -
|
|
753
|
+
* @param options - Lower work limit and tolerance for numeric comparisons.
|
|
453
754
|
* @returns The original mesh after every requested check succeeds.
|
|
454
755
|
*/
|
|
455
756
|
export declare function validateSolid<T extends TriangleMeshInput>(
|