@metamesh/modeling 0.15.0 → 0.16.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 +19 -0
- package/README.md +33 -6
- package/dist/api/engine.d.ts +4 -3
- package/dist/api/geometry.d.ts +529 -242
- package/dist/api/index.d.ts +363 -104
- package/dist/api/text.d.ts +6 -6
- package/dist/docs/guides/concepts.md +295 -106
- package/dist/docs/guides/fonts.md +9 -8
- package/dist/docs/guides/fundamentals.md +17 -21
- package/dist/docs/guides/generation.md +24 -23
- package/dist/docs/guides/hosting.md +25 -20
- package/dist/docs/guides/recipes.md +35 -30
- package/dist/docs/guides/standalone-model.md +42 -0
- package/dist/docs/manifest.json +846 -243
- package/dist/docs/reference/engine/Export3mfOptions.md +1 -1
- package/dist/docs/reference/engine/ExportMeshPart.md +1 -1
- package/dist/docs/reference/engine/GenerationOptions.md +1 -1
- package/dist/docs/reference/engine/GeometryResource.md +1 -1
- package/dist/docs/reference/engine/ModelDependencies.md +1 -1
- package/dist/docs/reference/engine/ModelEngine.md +1 -1
- package/dist/docs/reference/engine/ModelEngineOptions.md +1 -1
- package/dist/docs/reference/engine/ModelSession.md +1 -1
- package/dist/docs/reference/engine/ModelSnapshot.md +2 -2
- package/dist/docs/reference/engine/SessionOptions.md +1 -1
- package/dist/docs/reference/engine/SnapshotPart.md +7 -4
- package/dist/docs/reference/engine/categories/host-lifecycle.md +8 -3
- package/dist/docs/reference/engine/createModelEngine.md +1 -1
- package/dist/docs/reference/engine/defaultModelingLimits.md +1 -1
- package/dist/docs/reference/engine/modelingWasmUrl.md +1 -1
- package/dist/docs/reference/engine/validateModel.md +1 -1
- package/dist/docs/reference/engine.md +6 -2
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +5 -1
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +1 -1
- package/dist/docs/reference/geometry/Anchor3-type.md +6 -5
- package/dist/docs/reference/geometry/ArcCurve2.md +7 -3
- package/dist/docs/reference/geometry/ArcCurve3.md +9 -5
- package/dist/docs/reference/geometry/AttachOptions.md +2 -1
- package/dist/docs/reference/geometry/AxisAngleRotation3.md +2 -1
- package/dist/docs/reference/geometry/Bounds2-type.md +127 -0
- package/dist/docs/reference/geometry/Bounds2Data.md +45 -0
- package/dist/docs/reference/geometry/Bounds2Input.md +21 -0
- package/dist/docs/reference/geometry/Bounds3-type.md +127 -0
- package/dist/docs/reference/geometry/Bounds3Data.md +45 -0
- package/dist/docs/reference/geometry/Bounds3Input.md +21 -0
- package/dist/docs/reference/geometry/BoundsFit2.md +6 -5
- package/dist/docs/reference/geometry/BoundsFit3.md +6 -5
- package/dist/docs/reference/geometry/BoundsFitOptions.md +2 -1
- package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +2 -1
- package/dist/docs/reference/geometry/BoxAnchorFace.md +2 -1
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +5 -4
- package/dist/docs/reference/geometry/BoxEdge.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/geometry/BoxOptions.md +3 -3
- package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +8 -1
- package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +5 -1
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/CircleContourOptions.md +5 -1
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +1 -1
- package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +6 -1
- package/dist/docs/reference/geometry/ClearanceHoleFit.md +8 -1
- package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +6 -1
- package/dist/docs/reference/geometry/Contour.md +10 -4
- package/dist/docs/reference/geometry/ContourCurve.md +5 -1
- package/dist/docs/reference/geometry/ContourPoint.md +6 -1
- package/dist/docs/reference/geometry/ContourSegment.md +5 -1
- package/dist/docs/reference/geometry/CorrespondingComponent.md +5 -1
- package/dist/docs/reference/geometry/CorrespondingContour.md +5 -1
- package/dist/docs/reference/geometry/CorrespondingProfile.md +5 -1
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +5 -1
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +10 -6
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +10 -6
- package/dist/docs/reference/geometry/Curve2.md +5 -1
- package/dist/docs/reference/geometry/Curve3.md +5 -1
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +5 -1
- package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +7 -3
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +2 -1
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +4 -3
- package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +6 -1
- package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +8 -1
- package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +5 -1
- package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +5 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +5 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +6 -1
- package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +5 -1
- package/dist/docs/reference/geometry/CylindricalGearSpec.md +6 -1
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +7 -3
- package/dist/docs/reference/geometry/EndTreatments.md +1 -1
- package/dist/docs/reference/geometry/ExtrudeOptions.md +5 -1
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +5 -1
- package/dist/docs/reference/geometry/FittedTextLayout.md +7 -3
- package/dist/docs/reference/geometry/Frame3.md +10 -6
- package/dist/docs/reference/geometry/GeometryError.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorCode.md +1 -1
- package/dist/docs/reference/geometry/GeometryErrorContext.md +1 -1
- package/dist/docs/reference/geometry/GeometryResolution.md +1 -1
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +5 -1
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/geometry/GridPatternOptions.md +4 -4
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +5 -1
- package/dist/docs/reference/geometry/HeightfieldOptions.md +9 -5
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +9 -4
- package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +5 -1
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +5 -1
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +7 -2
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +4 -3
- package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +5 -1
- package/dist/docs/reference/geometry/KnuckleHingeBaseSpec.md +82 -0
- package/dist/docs/reference/geometry/KnuckleHingeDimensions.md +148 -0
- package/dist/docs/reference/geometry/KnuckleHingeInterval.md +46 -0
- package/dist/docs/reference/geometry/KnuckleHingeSamplingOptions.md +51 -0
- package/dist/docs/reference/geometry/KnuckleHingeSpec.md +22 -0
- package/dist/docs/reference/geometry/LineCurve2.md +8 -4
- package/dist/docs/reference/geometry/LineCurve3.md +8 -4
- package/dist/docs/reference/geometry/LinearPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/LoftCorrespondence.md +6 -1
- package/dist/docs/reference/geometry/LoftMeshStation.md +5 -1
- package/dist/docs/reference/geometry/LoftOptions.md +5 -1
- package/dist/docs/reference/geometry/LoftPlacement.md +5 -1
- package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +5 -1
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +5 -1
- package/dist/docs/reference/geometry/MetricFastenerSize.md +9 -2
- package/dist/docs/reference/geometry/MetricFastenerStandard.md +5 -1
- package/dist/docs/reference/geometry/MetricHexNutDimensions.md +6 -1
- package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +6 -1
- package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
- package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +5 -1
- package/dist/docs/reference/geometry/Path2-type.md +12 -8
- package/dist/docs/reference/geometry/Path2Data.md +40 -4
- package/dist/docs/reference/geometry/Path2Input.md +8 -3
- package/dist/docs/reference/geometry/Path3-type.md +12 -8
- package/dist/docs/reference/geometry/Path3Data.md +40 -4
- package/dist/docs/reference/geometry/Path3Input.md +8 -3
- package/dist/docs/reference/geometry/PathFrame.md +9 -5
- package/dist/docs/reference/geometry/PathLocation.md +5 -1
- package/dist/docs/reference/geometry/PathNormalGuide.md +8 -4
- package/dist/docs/reference/geometry/PathOptions.md +5 -1
- package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/PathPlacement.md +8 -4
- package/dist/docs/reference/geometry/PathResamplingOptions.md +5 -1
- package/dist/docs/reference/geometry/Pivot2Options.md +2 -1
- package/dist/docs/reference/geometry/Pivot3Options.md +2 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +8 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +5 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +5 -1
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +7 -3
- package/dist/docs/reference/geometry/PolygonData.md +7 -2
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +5 -1
- package/dist/docs/reference/geometry/PrimitiveAttachment.md +1 -1
- package/dist/docs/reference/geometry/PrimitiveAttachmentOptions.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFit.md +8 -1
- package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +6 -1
- package/dist/docs/reference/geometry/Profile.md +8 -2
- package/dist/docs/reference/geometry/ProfileComponent2.md +5 -1
- package/dist/docs/reference/geometry/ProfileContour2.md +8 -2
- package/dist/docs/reference/geometry/ProfileSpan2.md +7 -3
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
- package/dist/docs/reference/geometry/RackPitchDimensions.md +6 -1
- package/dist/docs/reference/geometry/RackPitchSpec.md +6 -1
- package/dist/docs/reference/geometry/RadialPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/RadialSizing.md +1 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +7 -3
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +5 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +5 -1
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +7 -3
- package/dist/docs/reference/geometry/RegionData.md +6 -2
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +5 -1
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +5 -1
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +2 -1
- package/dist/docs/reference/geometry/SampleContourOptions.md +5 -1
- package/dist/docs/reference/geometry/SampleHelixOptions.md +5 -1
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +5 -1
- package/dist/docs/reference/geometry/SampledCurve2.md +8 -4
- package/dist/docs/reference/geometry/SampledCurve3.md +8 -4
- package/dist/docs/reference/geometry/SampledThreadHelices.md +7 -3
- package/dist/docs/reference/geometry/SideProfileCurve.md +5 -1
- package/dist/docs/reference/geometry/SideProfilePoint.md +6 -1
- package/dist/docs/reference/geometry/SideProfileSegment.md +5 -1
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +5 -1
- package/dist/docs/reference/geometry/SphereOptions.md +1 -1
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +5 -1
- package/dist/docs/reference/geometry/StrokeCap.md +8 -1
- package/dist/docs/reference/geometry/StrokeJoin.md +8 -1
- package/dist/docs/reference/geometry/StrokeOptions.md +5 -1
- package/dist/docs/reference/geometry/SvgImportOptions.md +5 -1
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +6 -2
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +7 -3
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +6 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +6 -1
- package/dist/docs/reference/geometry/SweepOptions.md +5 -1
- package/dist/docs/reference/geometry/SweepOrientation.md +5 -1
- package/dist/docs/reference/geometry/ThreadBevelOptions.md +5 -1
- package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +5 -1
- package/dist/docs/reference/geometry/ThreadCompensationOptions.md +5 -1
- package/dist/docs/reference/geometry/ThreadEndStyle.md +8 -1
- package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +5 -1
- package/dist/docs/reference/geometry/ThreadHandedness.md +8 -1
- package/dist/docs/reference/geometry/ThreadHelixOptions.md +5 -1
- package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +8 -1
- package/dist/docs/reference/geometry/ThreadLeadInShape.md +8 -1
- package/dist/docs/reference/geometry/ThreadProfile-type.md +7 -3
- package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +5 -1
- package/dist/docs/reference/geometry/ThreadProfileSpec.md +5 -1
- package/dist/docs/reference/geometry/ThreadRole.md +8 -1
- package/dist/docs/reference/geometry/ThreadedNutBevel.md +8 -1
- package/dist/docs/reference/geometry/ThreadedNutOptions.md +5 -1
- package/dist/docs/reference/geometry/ThreadedNutPreflight.md +7 -3
- package/dist/docs/reference/geometry/ThreadedNutShape.md +8 -1
- package/dist/docs/reference/geometry/ThreadedRodOptions.md +5 -1
- package/dist/docs/reference/geometry/TorusOptions.md +1 -1
- package/dist/docs/reference/geometry/Transform2-type.md +6 -5
- package/dist/docs/reference/geometry/Transform2Data.md +15 -0
- package/dist/docs/reference/geometry/Transform2Input.md +4 -3
- package/dist/docs/reference/geometry/Transform3-type.md +6 -5
- package/dist/docs/reference/geometry/Transform3Data.md +18 -0
- package/dist/docs/reference/geometry/Transform3Input.md +4 -3
- package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +5 -1
- package/dist/docs/reference/geometry/TriangleMesh.md +6 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +7 -3
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +5 -1
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +7 -3
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +5 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +5 -1
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +7 -3
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +6 -1
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +6 -1
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +5 -1
- package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +5 -1
- package/dist/docs/reference/geometry/TubeOptions.md +1 -1
- package/dist/docs/reference/geometry/Vector2-type.md +6 -5
- package/dist/docs/reference/geometry/Vector2Data.md +15 -0
- package/dist/docs/reference/geometry/Vector2Input.md +4 -3
- package/dist/docs/reference/geometry/Vector3-type.md +6 -5
- package/dist/docs/reference/geometry/Vector3Data.md +15 -0
- package/dist/docs/reference/geometry/Vector3Input.md +4 -3
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +6 -1
- package/dist/docs/reference/geometry/VectorTextLayout.md +5 -1
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +5 -1
- package/dist/docs/reference/geometry/VectorTextMetrics.md +7 -3
- package/dist/docs/reference/geometry/VectorTextOptions.md +5 -1
- package/dist/docs/reference/geometry/add2.md +7 -6
- package/dist/docs/reference/geometry/add3.md +7 -6
- package/dist/docs/reference/geometry/analyzeTriangleMesh.md +5 -1
- package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +5 -1
- package/dist/docs/reference/geometry/anchor3.md +2 -1
- package/dist/docs/reference/geometry/anchorFrame3.md +5 -1
- package/dist/docs/reference/geometry/applyTransformDirection3.md +8 -7
- package/dist/docs/reference/geometry/applyTransformPoint3.md +8 -7
- package/dist/docs/reference/geometry/attachmentTransform3.md +5 -4
- package/dist/docs/reference/geometry/bounds2.md +38 -0
- package/dist/docs/reference/geometry/bounds3.md +38 -0
- package/dist/docs/reference/geometry/boundsCenter.md +12 -11
- package/dist/docs/reference/geometry/boundsFromSize.md +12 -11
- package/dist/docs/reference/geometry/boundsSize.md +12 -11
- package/dist/docs/reference/geometry/boxAnchor3.md +4 -3
- package/dist/docs/reference/geometry/categories/bounds-layout.md +23 -6
- package/dist/docs/reference/geometry/categories/curves-paths.md +21 -9
- package/dist/docs/reference/geometry/categories/mechanical.md +22 -10
- package/dist/docs/reference/geometry/categories/meshes.md +16 -7
- package/dist/docs/reference/geometry/categories/pattern-placement.md +6 -4
- package/dist/docs/reference/geometry/categories/primitive-options.md +8 -2
- package/dist/docs/reference/geometry/categories/profiles-regions.md +21 -12
- package/dist/docs/reference/geometry/categories/resolution-errors.md +5 -3
- package/dist/docs/reference/geometry/categories/transforms-math.md +21 -12
- package/dist/docs/reference/geometry/categories/vector-import.md +11 -5
- package/dist/docs/reference/geometry/circleContour.md +5 -1
- package/dist/docs/reference/geometry/closeToAxis.md +14 -5
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +5 -1
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +5 -1
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +5 -1
- package/dist/docs/reference/geometry/composeTransform3.md +7 -6
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -1
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +11 -2
- package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +13 -5
- package/dist/docs/reference/geometry/computeTriangleMeshSignature.md +5 -1
- package/dist/docs/reference/geometry/containsBounds.md +10 -9
- package/dist/docs/reference/geometry/contourContainsPoint.md +8 -4
- package/dist/docs/reference/geometry/cross2.md +6 -5
- package/dist/docs/reference/geometry/cross3.md +7 -6
- package/dist/docs/reference/geometry/cylinderAnchor3.md +3 -2
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +5 -1
- package/dist/docs/reference/geometry/distance2.md +6 -5
- package/dist/docs/reference/geometry/distance3.md +6 -5
- package/dist/docs/reference/geometry/distributeAlongPath.md +5 -1
- package/dist/docs/reference/geometry/dot2.md +6 -5
- package/dist/docs/reference/geometry/dot3.md +6 -5
- package/dist/docs/reference/geometry/ellipseContour.md +5 -1
- package/dist/docs/reference/geometry/eulerTransform3.md +7 -6
- package/dist/docs/reference/geometry/extrudeMesh.md +5 -1
- package/dist/docs/reference/geometry/fitBounds.md +10 -9
- package/dist/docs/reference/geometry/fitTextLayout.md +13 -5
- package/dist/docs/reference/geometry/frameTransform3.md +5 -4
- package/dist/docs/reference/geometry/getMetricClearanceHoleDiameter.md +5 -1
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +5 -1
- package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
- package/dist/docs/reference/geometry/heightfieldMesh.md +11 -2
- package/dist/docs/reference/geometry/helicalThreadRidgeMesh.md +5 -1
- package/dist/docs/reference/geometry/helicalThreadSolidMesh.md +5 -1
- package/dist/docs/reference/geometry/inverseTransform3.md +6 -5
- package/dist/docs/reference/geometry/isGeometryError.md +5 -2
- package/dist/docs/reference/geometry/joinTriangleMeshes.md +5 -1
- package/dist/docs/reference/geometry/layoutRow.md +11 -7
- package/dist/docs/reference/geometry/length2.md +5 -4
- package/dist/docs/reference/geometry/length3.md +5 -4
- package/dist/docs/reference/geometry/lerp2.md +7 -6
- package/dist/docs/reference/geometry/lerp3.md +7 -6
- package/dist/docs/reference/geometry/linearPatternTransforms.md +4 -4
- package/dist/docs/reference/geometry/loftMesh.md +5 -1
- package/dist/docs/reference/geometry/matchProfiles.md +11 -2
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +5 -1
- package/dist/docs/reference/geometry/meshBounds.md +8 -4
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +5 -1
- package/dist/docs/reference/geometry/normalize2.md +10 -6
- package/dist/docs/reference/geometry/normalize3.md +10 -6
- package/dist/docs/reference/geometry/normalizeContour.md +8 -4
- package/dist/docs/reference/geometry/normalizePolygon.md +5 -1
- package/dist/docs/reference/geometry/normalizeRegion.md +5 -1
- package/dist/docs/reference/geometry/optimizePlanarPatches.md +5 -1
- package/dist/docs/reference/geometry/path2.md +14 -2
- package/dist/docs/reference/geometry/path3.md +8 -1
- package/dist/docs/reference/geometry/pathPatternTransforms.md +9 -5
- package/dist/docs/reference/geometry/preflightHeightfield.md +11 -2
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +11 -2
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +13 -2
- package/dist/docs/reference/geometry/preflightSvgRegion.md +15 -2
- package/dist/docs/reference/geometry/preflightThreadedNut.md +12 -2
- package/dist/docs/reference/geometry/preflightThreadedRod.md +12 -2
- package/dist/docs/reference/geometry/projectOntoPlane3.md +7 -6
- package/dist/docs/reference/geometry/radialPatternTransforms.md +4 -4
- package/dist/docs/reference/geometry/rectangleContour.md +10 -3
- package/dist/docs/reference/geometry/rectangleProfile.md +10 -2
- package/dist/docs/reference/geometry/regionArea.md +5 -1
- package/dist/docs/reference/geometry/regionBounds.md +8 -4
- package/dist/docs/reference/geometry/regularPolygonContour.md +8 -4
- package/dist/docs/reference/geometry/resamplePolyline2.md +8 -4
- package/dist/docs/reference/geometry/resamplePolyline3.md +8 -4
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveArcSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGear.md +5 -1
- package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +5 -1
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +5 -1
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +5 -1
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/resolveKnuckleHinge.md +59 -0
- package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +5 -1
- package/dist/docs/reference/geometry/resolveRackPitch.md +5 -1
- package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +5 -1
- package/dist/docs/reference/geometry/reverseTriangleMesh.md +5 -1
- package/dist/docs/reference/geometry/revolveMesh.md +5 -1
- package/dist/docs/reference/geometry/rotate2.md +6 -5
- package/dist/docs/reference/geometry/rotationTransform3.md +7 -6
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +8 -4
- package/dist/docs/reference/geometry/sampleContour.md +12 -2
- package/dist/docs/reference/geometry/sampleCurve2.md +6 -3
- package/dist/docs/reference/geometry/sampleCurve3.md +5 -1
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +5 -1
- package/dist/docs/reference/geometry/sampleHelix.md +13 -5
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +5 -1
- package/dist/docs/reference/geometry/sampleRackToothPath.md +8 -4
- package/dist/docs/reference/geometry/sampleSideProfile.md +15 -5
- package/dist/docs/reference/geometry/sampleTextContours.md +5 -1
- package/dist/docs/reference/geometry/sampleThreadHelices.md +5 -1
- package/dist/docs/reference/geometry/scale2.md +6 -5
- package/dist/docs/reference/geometry/scale3.md +6 -5
- package/dist/docs/reference/geometry/scaleTransform3.md +7 -6
- package/dist/docs/reference/geometry/signedContourArea.md +5 -1
- package/dist/docs/reference/geometry/starContour.md +8 -4
- package/dist/docs/reference/geometry/strokeRegionData.md +5 -1
- package/dist/docs/reference/geometry/subtract2.md +7 -6
- package/dist/docs/reference/geometry/subtract3.md +7 -6
- package/dist/docs/reference/geometry/sweepMesh.md +5 -1
- package/dist/docs/reference/geometry/threadProfile.md +5 -1
- package/dist/docs/reference/geometry/transform2.md +14 -7
- package/dist/docs/reference/geometry/transform3.md +16 -7
- package/dist/docs/reference/geometry/transformDeterminant3.md +5 -4
- package/dist/docs/reference/geometry/transformRegionData.md +5 -1
- package/dist/docs/reference/geometry/transformTriangleMesh.md +5 -1
- package/dist/docs/reference/geometry/translationTransform3.md +7 -6
- package/dist/docs/reference/geometry/triangulateContour.md +5 -1
- package/dist/docs/reference/geometry/validateSolidMesh.md +9 -2
- package/dist/docs/reference/geometry/validateTransform3.md +6 -5
- package/dist/docs/reference/geometry/validateTriangleMesh.md +5 -1
- package/dist/docs/reference/geometry/vector2.md +10 -2
- package/dist/docs/reference/geometry/vector3.md +10 -2
- package/dist/docs/reference/geometry.md +7 -5
- package/dist/docs/reference/model/Anchor3.md +6 -5
- package/dist/docs/reference/model/AttachOptions.md +2 -1
- package/dist/docs/reference/model/Bounds2-type.md +125 -0
- package/dist/docs/reference/model/Bounds2Data.md +44 -0
- package/dist/docs/reference/model/Bounds2Input.md +19 -0
- package/dist/docs/reference/model/Bounds3-type.md +125 -0
- package/dist/docs/reference/model/Bounds3Data.md +44 -0
- package/dist/docs/reference/model/Bounds3Input.md +19 -0
- package/dist/docs/reference/model/BoxEdge.md +1 -1
- package/dist/docs/reference/model/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/model/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/model/BoxOptions.md +3 -3
- package/dist/docs/reference/model/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/CircleContourOptions.md +1 -1
- package/dist/docs/reference/model/CircleOptions.md +1 -1
- package/dist/docs/reference/model/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/model/Computed.md +6 -1
- package/dist/docs/reference/model/ComputedValue.md +5 -1
- package/dist/docs/reference/model/Contour.md +6 -4
- package/dist/docs/reference/model/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/model/CorrespondingContour.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/model/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/model/CylinderOptions.md +1 -1
- package/dist/docs/reference/model/DiagnosticOptions.md +6 -1
- package/dist/docs/reference/model/EdgeTreatment.md +1 -1
- package/dist/docs/reference/model/EllipseContourOptions.md +3 -3
- package/dist/docs/reference/model/EllipseOptions.md +1 -1
- package/dist/docs/reference/model/EndTreatments.md +1 -1
- package/dist/docs/reference/model/ExtrudeOptions.md +1 -1
- package/dist/docs/reference/model/FinalizedModel.md +3 -3
- package/dist/docs/reference/model/FinalizedPart.md +1 -1
- package/dist/docs/reference/model/Frame3.md +6 -6
- package/dist/docs/reference/model/GenerateCallback.md +5 -1
- package/dist/docs/reference/model/GenerateContext.md +5 -1
- package/dist/docs/reference/model/GeneratedPart.md +5 -1
- package/dist/docs/reference/model/GenerationDiagnostic.md +6 -1
- package/dist/docs/reference/model/GenerationError.md +5 -1
- package/dist/docs/reference/model/GeometryResolution.md +1 -1
- package/dist/docs/reference/model/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/model/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/model/GridPatternOptions.md +5 -4
- package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
- package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +2 -1
- package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +3 -2
- package/dist/docs/reference/model/HullOptions.md +1 -1
- package/dist/docs/reference/model/ImmutableBuffer-type.md +5 -1
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +5 -1
- package/dist/docs/reference/model/ImplicitOptions.md +6 -6
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +2 -1
- package/dist/docs/reference/model/KnuckleHinge-type.md +47 -0
- package/dist/docs/reference/model/KnuckleHingeBaseSpec.md +77 -0
- package/dist/docs/reference/model/KnuckleHingeHalfOptions.md +34 -0
- package/dist/docs/reference/model/KnuckleHingeOptions.md +38 -0
- package/dist/docs/reference/model/KnuckleHingeSamplingOptions.md +47 -0
- package/dist/docs/reference/model/KnuckleHingeSpec.md +18 -0
- package/dist/docs/reference/model/KnuckleHingeWeb.md +53 -0
- package/dist/docs/reference/model/LinearPatternOptions.md +2 -1
- package/dist/docs/reference/model/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/model/LoftOptions.md +1 -1
- package/dist/docs/reference/model/LoftPlacement.md +1 -1
- package/dist/docs/reference/model/LoftStation.md +1 -1
- package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/model/ModelProgram.md +5 -1
- package/dist/docs/reference/model/ModelingLimits.md +1 -1
- package/dist/docs/reference/model/NumericArray.md +8 -1
- package/dist/docs/reference/model/PartGeometry.md +5 -1
- package/dist/docs/reference/model/PartOptions.md +5 -1
- package/dist/docs/reference/model/Path2-type.md +12 -8
- package/dist/docs/reference/model/Path2Data.md +40 -4
- package/dist/docs/reference/model/Path2Input.md +8 -3
- package/dist/docs/reference/model/Path3-type.md +12 -8
- package/dist/docs/reference/model/Path3Data.md +40 -4
- package/dist/docs/reference/model/Path3Input.md +8 -3
- package/dist/docs/reference/model/PathLocation.md +5 -1
- package/dist/docs/reference/model/PathNormalGuide.md +4 -4
- package/dist/docs/reference/model/PathOptions.md +5 -1
- package/dist/docs/reference/model/PathPatternOptions.md +2 -1
- package/dist/docs/reference/model/PathResamplingOptions.md +5 -1
- package/dist/docs/reference/model/PatternSource.md +2 -1
- package/dist/docs/reference/model/Pivot2Options.md +2 -1
- package/dist/docs/reference/model/Pivot3Options.md +2 -1
- package/dist/docs/reference/model/PlaneOptions.md +1 -1
- package/dist/docs/reference/model/PolygonData.md +3 -2
- package/dist/docs/reference/model/PolygonOptions.md +1 -1
- package/dist/docs/reference/model/PrimitiveAttachment.md +2 -1
- package/dist/docs/reference/model/PrimitiveAttachmentOptions.md +2 -1
- package/dist/docs/reference/model/PrintableThreadFit.md +2 -1
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +2 -1
- package/dist/docs/reference/model/Profile.md +4 -2
- package/dist/docs/reference/model/ProfileComponent2.md +1 -1
- package/dist/docs/reference/model/ProfileContour2.md +4 -2
- package/dist/docs/reference/model/ProfileSpan2.md +3 -3
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
- package/dist/docs/reference/model/RadialPatternOptions.md +2 -1
- package/dist/docs/reference/model/RadialSizing.md +1 -1
- package/dist/docs/reference/model/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/model/RectangleContourOptions.md +3 -3
- package/dist/docs/reference/model/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/model/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/model/RectangleOptions.md +3 -3
- package/dist/docs/reference/model/RegionData.md +2 -2
- package/dist/docs/reference/model/RegularPolygonOptions.md +1 -1
- package/dist/docs/reference/model/RevolveOptions.md +1 -1
- package/dist/docs/reference/model/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Section.md +9 -2
- package/dist/docs/reference/model/SectionHullOptions.md +1 -1
- package/dist/docs/reference/model/SectionInspection.md +4 -4
- package/dist/docs/reference/model/SectionOffsetJoin.md +1 -1
- package/dist/docs/reference/model/SectionOffsetOptions.md +1 -1
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Solid.md +9 -2
- package/dist/docs/reference/model/SolidInspection.md +4 -4
- package/dist/docs/reference/model/SolidSegmentHit.md +4 -4
- package/dist/docs/reference/model/SphereOptions.md +1 -1
- package/dist/docs/reference/model/StarOptions.md +1 -1
- package/dist/docs/reference/model/StrokeCap.md +1 -1
- package/dist/docs/reference/model/StrokeJoin.md +1 -1
- package/dist/docs/reference/model/StrokeOptions.md +1 -1
- package/dist/docs/reference/model/SvgOrigin.md +1 -1
- package/dist/docs/reference/model/SvgPathSectionOptions.md +1 -1
- package/dist/docs/reference/model/SvgSectionOptions.md +1 -1
- package/dist/docs/reference/model/SweepOptions.md +1 -1
- package/dist/docs/reference/model/SweepOrientation.md +1 -1
- package/dist/docs/reference/model/TextSectionOptions.md +1 -1
- package/dist/docs/reference/model/ThreadEndStyle.md +2 -1
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +2 -1
- package/dist/docs/reference/model/ThreadHandedness.md +2 -1
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +2 -1
- package/dist/docs/reference/model/ThreadLeadInShape.md +2 -1
- package/dist/docs/reference/model/ThreadProfile.md +4 -3
- package/dist/docs/reference/model/ThreadRidgeOptions.md +2 -1
- package/dist/docs/reference/model/ThreadedNutBevel.md +2 -1
- package/dist/docs/reference/model/ThreadedNutOptions.md +2 -1
- package/dist/docs/reference/model/ThreadedNutPreflight.md +4 -3
- package/dist/docs/reference/model/ThreadedNutShape.md +2 -1
- package/dist/docs/reference/model/ThreadedRodOptions.md +2 -1
- package/dist/docs/reference/model/TorusOptions.md +1 -1
- package/dist/docs/reference/model/Transform2-type.md +6 -5
- package/dist/docs/reference/model/Transform2Data.md +16 -0
- package/dist/docs/reference/model/Transform2Input.md +4 -3
- package/dist/docs/reference/model/Transform3-type.md +6 -5
- package/dist/docs/reference/model/Transform3Data.md +19 -0
- package/dist/docs/reference/model/Transform3Input.md +4 -3
- package/dist/docs/reference/model/TriangleMesh.md +1 -1
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +3 -3
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +3 -3
- package/dist/docs/reference/model/TubeOptions.md +1 -1
- package/dist/docs/reference/model/Vector2-type.md +6 -5
- package/dist/docs/reference/model/{Vector2Tuple.md → Vector2Data.md} +3 -3
- package/dist/docs/reference/model/Vector2Input.md +4 -3
- package/dist/docs/reference/model/Vector3-type.md +6 -5
- package/dist/docs/reference/model/{Vector3Tuple.md → Vector3Data.md} +3 -3
- package/dist/docs/reference/model/Vector3Input.md +4 -3
- package/dist/docs/reference/model/VectorTextLayout.md +1 -1
- package/dist/docs/reference/model/VectorTextMetrics.md +3 -3
- package/dist/docs/reference/model/anchor.md +2 -1
- package/dist/docs/reference/model/bounds2.md +36 -0
- package/dist/docs/reference/model/bounds3.md +36 -0
- package/dist/docs/reference/model/box.md +2 -2
- package/dist/docs/reference/model/castSegment.md +1 -1
- package/dist/docs/reference/model/categories/boolean-operations.md +10 -3
- package/dist/docs/reference/model/categories/bounded-surfaces.md +5 -3
- package/dist/docs/reference/model/categories/bounds.md +36 -0
- package/dist/docs/reference/model/categories/contracts.md +4 -2
- package/dist/docs/reference/model/categories/core-values-errors.md +11 -11
- package/dist/docs/reference/model/categories/explicit-profiles.md +6 -4
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +12 -3
- package/dist/docs/reference/model/categories/generation.md +11 -2
- package/dist/docs/reference/model/categories/hinges.md +38 -0
- package/dist/docs/reference/model/categories/inspection.md +9 -2
- package/dist/docs/reference/model/categories/mesh-inspection.md +5 -3
- package/dist/docs/reference/model/categories/paths.md +15 -7
- package/dist/docs/reference/model/categories/primitives.md +10 -4
- package/dist/docs/reference/model/categories/resolution.md +4 -2
- package/dist/docs/reference/model/categories/sections.md +10 -5
- package/dist/docs/reference/model/categories/threads.md +10 -7
- package/dist/docs/reference/model/categories/transforms-placement.md +17 -9
- package/dist/docs/reference/model/circle.md +1 -1
- package/dist/docs/reference/model/components.md +1 -1
- package/dist/docs/reference/model/compose.md +1 -1
- package/dist/docs/reference/model/cylinder.md +1 -1
- package/dist/docs/reference/model/distance.md +1 -1
- package/dist/docs/reference/model/ellipse.md +1 -1
- package/dist/docs/reference/model/extrude.md +1 -1
- package/dist/docs/reference/model/generate.md +5 -1
- package/dist/docs/reference/model/gridPattern.md +2 -1
- package/dist/docs/reference/model/heightfield.md +5 -2
- package/dist/docs/reference/model/hull.md +1 -1
- package/dist/docs/reference/model/immutableBuffer.md +5 -1
- package/dist/docs/reference/model/immutableMesh.md +5 -1
- package/dist/docs/reference/model/implicit.md +3 -3
- package/dist/docs/reference/model/inspectSection.md +1 -1
- package/dist/docs/reference/model/inspectSolid.md +1 -1
- package/dist/docs/reference/model/internalThreadCutter.md +2 -1
- package/dist/docs/reference/model/intersect.md +1 -1
- package/dist/docs/reference/model/isEmpty.md +1 -1
- package/dist/docs/reference/model/knuckleHinge.md +47 -0
- package/dist/docs/reference/model/linearPattern.md +2 -1
- package/dist/docs/reference/model/loft.md +1 -1
- package/dist/docs/reference/model/matchProfiles.md +1 -1
- package/dist/docs/reference/model/minkowskiSum.md +1 -1
- package/dist/docs/reference/model/path2.md +14 -2
- package/dist/docs/reference/model/path3.md +8 -1
- package/dist/docs/reference/model/pathPattern.md +2 -1
- package/dist/docs/reference/model/polygon.md +5 -2
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +8 -2
- package/dist/docs/reference/model/preflightThreadedNut.md +8 -2
- package/dist/docs/reference/model/preflightThreadedRod.md +8 -2
- package/dist/docs/reference/model/radialPattern.md +2 -1
- package/dist/docs/reference/model/rectangle.md +5 -2
- package/dist/docs/reference/model/regularPolygon.md +1 -1
- package/dist/docs/reference/model/revolve.md +1 -1
- package/dist/docs/reference/model/solidFromMesh.md +1 -1
- package/dist/docs/reference/model/sphere.md +1 -1
- package/dist/docs/reference/model/split.md +1 -1
- package/dist/docs/reference/model/splitByPlane.md +1 -1
- package/dist/docs/reference/model/star.md +1 -1
- package/dist/docs/reference/model/stroke.md +1 -1
- package/dist/docs/reference/model/svgPathSection.md +1 -1
- package/dist/docs/reference/model/svgSection.md +1 -1
- package/dist/docs/reference/model/sweep.md +1 -1
- package/dist/docs/reference/model/textSection.md +1 -1
- package/dist/docs/reference/model/threadRidge.md +2 -1
- package/dist/docs/reference/model/threadedNut.md +2 -1
- package/dist/docs/reference/model/threadedRod.md +2 -1
- package/dist/docs/reference/model/torus.md +1 -1
- package/dist/docs/reference/model/transform2.md +14 -7
- package/dist/docs/reference/model/transform3.md +16 -7
- package/dist/docs/reference/model/tube.md +1 -1
- package/dist/docs/reference/model/union.md +1 -1
- package/dist/docs/reference/model/vector2.md +10 -2
- package/dist/docs/reference/model/vector3.md +10 -2
- package/dist/docs/reference/model.md +15 -8
- package/dist/docs/reference/text/Bounds2Data.md +34 -0
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
- package/dist/docs/reference/text/Vector2Data.md +7 -0
- package/dist/docs/reference/text/VectorFont.md +1 -1
- package/dist/docs/reference/text/VectorFontOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextArcBaseline.md +1 -1
- package/dist/docs/reference/text/VectorTextLayout.md +1 -1
- package/dist/docs/reference/text/VectorTextLayoutOptions.md +1 -1
- package/dist/docs/reference/text/VectorTextMetrics.md +3 -3
- package/dist/docs/reference/text/VectorTextOptions.md +1 -1
- package/dist/docs/reference/text/categories/font-preparation.md +6 -4
- package/dist/docs/reference/text/prepareVectorFont.md +1 -1
- package/dist/docs/reference/text.md +4 -2
- package/dist/engine/construction-operations.js +1 -1
- package/dist/engine/knuckle-hinge-operation.js +85 -0
- package/dist/engine/loft-operations.js +1 -1
- package/dist/engine/mechanical-operations.js +3 -1
- package/dist/engine/modeling-context.js +8 -1
- package/dist/engine/recipe-realization.js +4 -2
- package/dist/engine/section-operations.js +1 -1
- package/dist/engine/transform-operations.js +3 -3
- package/dist/geometry/bounds-value.js +93 -0
- package/dist/geometry/bounds.js +10 -8
- package/dist/geometry/curves/sampling.js +1 -2
- package/dist/geometry/errors.js +1 -0
- package/dist/geometry/heightfield.js +12 -1
- package/dist/geometry/index.js +3 -1
- package/dist/geometry/math/immutable-value.js +1 -1
- package/dist/geometry/math/vector-value.js +11 -3
- package/dist/geometry/math/vector2.js +1 -0
- package/dist/geometry/math/vector3.js +1 -0
- package/dist/geometry/mechanical/index.js +1 -0
- package/dist/geometry/mechanical/knuckle-hinge.js +110 -0
- package/dist/geometry/mechanical/thread-mesh-plan.js +7 -2
- package/dist/geometry/mechanical/thread-solids.js +29 -4
- package/dist/geometry/mesh/mesh-centroid.js +1 -0
- package/dist/geometry/mesh/mesh-solid.js +1 -0
- package/dist/geometry/paths/frames.js +1 -0
- package/dist/geometry/paths/helix.js +1 -0
- package/dist/geometry/paths/path-value.js +43 -27
- package/dist/geometry/paths/resampling.js +2 -2
- package/dist/geometry/patterns/placements.js +3 -3
- package/dist/geometry/patterns.js +3 -1
- package/dist/geometry/profiles/contour.js +1 -0
- package/dist/geometry/profiles/matched.js +1 -0
- package/dist/geometry/profiles/rectangle.js +10 -1
- package/dist/geometry/profiles/side-profile.js +2 -0
- package/dist/geometry/svg-import.js +8 -2
- package/dist/geometry/sweeps/options.js +1 -1
- package/dist/geometry/text-fitting.js +1 -0
- package/dist/geometry/transform-matrix.js +1 -1
- package/dist/geometry/{transform-chain.js → transform-value.js} +24 -15
- package/dist/index.js +2 -1
- package/dist/model/execution-binding.js +1 -1
- package/dist/model/geometry-recipes.js +1 -1
- package/dist/model/immutable-generation-data.js +4 -12
- package/dist/model/knuckle-hinge.js +1 -0
- package/dist/model/operations.js +57 -3
- package/dist/model/recipe-declaration.js +10 -2
- package/package.json +1 -1
- package/dist/docs/reference/geometry/Bounds2.md +0 -39
- package/dist/docs/reference/geometry/Bounds3.md +0 -39
- package/dist/docs/reference/geometry/Transform2Matrix.md +0 -14
- package/dist/docs/reference/geometry/Transform3Matrix.md +0 -17
- package/dist/docs/reference/geometry/Vector2Tuple.md +0 -14
- package/dist/docs/reference/geometry/Vector3Tuple.md +0 -14
- package/dist/docs/reference/model/Bounds2.md +0 -39
- package/dist/docs/reference/model/Bounds3.md +0 -39
- package/dist/docs/reference/model/Transform2Matrix.md +0 -15
- package/dist/docs/reference/model/Transform3Matrix.md +0 -18
- package/dist/docs/reference/text/Bounds2.md +0 -34
- package/dist/docs/reference/text/Vector2Tuple.md +0 -7
package/dist/api/geometry.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
/** Adds two finite XY vectors component-wise. */
|
|
15
|
-
export declare const add2: (a:
|
|
15
|
+
export declare const add2: (a: Vector2Data, b: Vector2Data) => Vector2Data;
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Adds two finite XYZ vectors component-wise.
|
|
@@ -21,7 +21,7 @@ export declare const add2: (a: Vector2Tuple, b: Vector2Tuple) => Vector2Tuple;
|
|
|
21
21
|
* add3([1, 2, 3], [4, 5, 6]); // [5, 7, 9]
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
export declare const add3: (a:
|
|
24
|
+
export declare const add3: (a: Vector3Data, b: Vector3Data) => Vector3Data;
|
|
25
25
|
|
|
26
26
|
/** Controls full-circle sampling that must satisfy one or more topology alignments. */
|
|
27
27
|
export declare interface AlignedCircularSegmentsOptions {
|
|
@@ -89,11 +89,11 @@ export declare function analyzeTriangleMeshQuality(
|
|
|
89
89
|
*/
|
|
90
90
|
export declare interface Anchor3 {
|
|
91
91
|
/** Unit outward normal used as the anchor's local +Z direction. */
|
|
92
|
-
readonly direction:
|
|
92
|
+
readonly direction: Vector3Data;
|
|
93
93
|
/** World-space attachment position. */
|
|
94
|
-
readonly position:
|
|
94
|
+
readonly position: Vector3Data;
|
|
95
95
|
/** Roll guide projected into the plane perpendicular to `direction`. */
|
|
96
|
-
readonly up:
|
|
96
|
+
readonly up: Vector3Data;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
/**
|
|
@@ -138,9 +138,9 @@ export declare function anchorFrame3(
|
|
|
138
138
|
* @returns A fresh transformed direction.
|
|
139
139
|
*/
|
|
140
140
|
export declare function applyTransformDirection3(
|
|
141
|
-
transform:
|
|
142
|
-
direction:
|
|
143
|
-
):
|
|
141
|
+
transform: Transform3Data,
|
|
142
|
+
direction: Vector3Data,
|
|
143
|
+
): Vector3Data;
|
|
144
144
|
|
|
145
145
|
/**
|
|
146
146
|
* Applies an affine transform to a point, including translation.
|
|
@@ -150,16 +150,16 @@ export declare function applyTransformDirection3(
|
|
|
150
150
|
* @returns A fresh transformed point.
|
|
151
151
|
*/
|
|
152
152
|
export declare function applyTransformPoint3(
|
|
153
|
-
transform:
|
|
154
|
-
point:
|
|
155
|
-
):
|
|
153
|
+
transform: Transform3Data,
|
|
154
|
+
point: Vector3Data,
|
|
155
|
+
): Vector3Data;
|
|
156
156
|
|
|
157
157
|
/** Planar circular arc with counterclockwise degree angles. */
|
|
158
158
|
export declare interface ArcCurve2 {
|
|
159
159
|
/** Selects a circular arc in the XY plane. */
|
|
160
160
|
readonly kind: "arc";
|
|
161
161
|
/** Circle center in millimetres. */
|
|
162
|
-
readonly center:
|
|
162
|
+
readonly center: Vector2Data;
|
|
163
163
|
/** Positive circular radius in millimetres. */
|
|
164
164
|
readonly radius: number;
|
|
165
165
|
/** Initial angle in degrees; defaults to zero. */
|
|
@@ -173,13 +173,13 @@ export declare interface ArcCurve3 {
|
|
|
173
173
|
/** Selects a circular arc in the supplied plane. */
|
|
174
174
|
readonly kind: "arc";
|
|
175
175
|
/** Circle center in millimetres. */
|
|
176
|
-
readonly center:
|
|
176
|
+
readonly center: Vector3Data;
|
|
177
177
|
/** Positive circular radius in millimetres. */
|
|
178
178
|
readonly radius: number;
|
|
179
179
|
/** Orthogonal unit direction at zero degrees. */
|
|
180
|
-
readonly xAxis:
|
|
180
|
+
readonly xAxis: Vector3Data;
|
|
181
181
|
/** Orthogonal unit direction at positive ninety degrees. */
|
|
182
|
-
readonly yAxis:
|
|
182
|
+
readonly yAxis: Vector3Data;
|
|
183
183
|
/** Initial angle in degrees; defaults to zero. */
|
|
184
184
|
readonly startAngle?: number;
|
|
185
185
|
/** Nonzero signed sweep in degrees, bounded to one complete turn. */
|
|
@@ -204,7 +204,7 @@ export declare function attachmentTransform3(
|
|
|
204
204
|
source: Anchor3,
|
|
205
205
|
target: Anchor3,
|
|
206
206
|
options?: AttachOptions,
|
|
207
|
-
):
|
|
207
|
+
): Transform3Data;
|
|
208
208
|
|
|
209
209
|
/** Options controlling how one anchor is attached to another. */
|
|
210
210
|
export declare interface AttachOptions {
|
|
@@ -235,36 +235,86 @@ export declare type AxisAngleRotation3 =
|
|
|
235
235
|
readonly degrees?: never;
|
|
236
236
|
};
|
|
237
237
|
|
|
238
|
-
/**
|
|
239
|
-
export declare interface Bounds2 {
|
|
238
|
+
/** Immutable finite XY bounds in millimetres, with tuple coordinates for data interoperability. */
|
|
239
|
+
export declare interface Bounds2 extends Bounds2Data {
|
|
240
|
+
/** Returns nonnegative X/Y dimensions in millimetres, including zero extents. */
|
|
241
|
+
size(): Vector2;
|
|
242
|
+
/** Returns the midpoint in millimetres. */
|
|
243
|
+
center(): Vector2;
|
|
244
|
+
/** Tests positioned XY containment, including touching boundaries. */
|
|
245
|
+
containsBounds(other: Bounds2Input): boolean;
|
|
246
|
+
/** Returns this value's frozen plain record; repeated calls do not allocate. */
|
|
247
|
+
toData(): Bounds2Data;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Snapshots finite ordered XY bounds in millimetres as an immutable fluent value.
|
|
252
|
+
*
|
|
253
|
+
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
254
|
+
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
255
|
+
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
256
|
+
* runtime 8.0.0 or newer in major 8.
|
|
257
|
+
*/
|
|
258
|
+
export declare function bounds2(input: Bounds2Input): Bounds2;
|
|
259
|
+
|
|
260
|
+
/** Plain axis-aligned XY bounds for interchange; use bounds2 for immutable measurement methods. */
|
|
261
|
+
export declare interface Bounds2Data {
|
|
240
262
|
/** Inclusive maximum X/Y coordinates. */
|
|
241
|
-
readonly max:
|
|
263
|
+
readonly max: Vector2Data;
|
|
242
264
|
/** Inclusive minimum X/Y coordinates. */
|
|
243
|
-
readonly min:
|
|
265
|
+
readonly min: Vector2Data;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/** An immutable XY bounds value or its plain min/max representation. */
|
|
269
|
+
export declare type Bounds2Input = Bounds2 | Bounds2Data;
|
|
270
|
+
|
|
271
|
+
/** Immutable finite XYZ bounds in millimetres, with tuple coordinates for data interoperability. */
|
|
272
|
+
export declare interface Bounds3 extends Bounds3Data {
|
|
273
|
+
/** Returns nonnegative X/Y/Z dimensions in millimetres, including zero extents. */
|
|
274
|
+
size(): Vector3;
|
|
275
|
+
/** Returns the midpoint in millimetres. */
|
|
276
|
+
center(): Vector3;
|
|
277
|
+
/** Tests positioned XYZ containment, including touching boundaries. */
|
|
278
|
+
containsBounds(other: Bounds3Input): boolean;
|
|
279
|
+
/** Returns this value's frozen plain record; repeated calls do not allocate. */
|
|
280
|
+
toData(): Bounds3Data;
|
|
244
281
|
}
|
|
245
282
|
|
|
246
|
-
/**
|
|
247
|
-
|
|
283
|
+
/**
|
|
284
|
+
* Snapshots finite ordered XYZ bounds in millimetres as an immutable fluent value.
|
|
285
|
+
*
|
|
286
|
+
* Zero extents are valid. Invalid dimensions, nonfinite coordinates, reversed bounds and
|
|
287
|
+
* overflowing extents throw `INVALID_ARGUMENT` GeometryError. Use `toData()` for plain records.
|
|
288
|
+
* Compiled Generator packages passing these values to host recipes or computed data require
|
|
289
|
+
* runtime 8.0.0 or newer in major 8.
|
|
290
|
+
*/
|
|
291
|
+
export declare function bounds3(input: Bounds3Input): Bounds3;
|
|
292
|
+
|
|
293
|
+
/** Plain axis-aligned XYZ bounds for interchange; use bounds3 for immutable measurement methods. */
|
|
294
|
+
export declare interface Bounds3Data {
|
|
248
295
|
/** Inclusive maximum X/Y/Z coordinates. */
|
|
249
|
-
readonly max:
|
|
296
|
+
readonly max: Vector3Data;
|
|
250
297
|
/** Inclusive minimum X/Y/Z coordinates. */
|
|
251
|
-
readonly min:
|
|
298
|
+
readonly min: Vector3Data;
|
|
252
299
|
}
|
|
253
300
|
|
|
301
|
+
/** An immutable XYZ bounds value or its plain min/max representation. */
|
|
302
|
+
export declare type Bounds3Input = Bounds3 | Bounds3Data;
|
|
303
|
+
|
|
254
304
|
/** Midpoint of finite XY bounds in millimetres. */
|
|
255
|
-
export declare function boundsCenter(bounds:
|
|
305
|
+
export declare function boundsCenter(bounds: Bounds2Data): Vector2Data;
|
|
256
306
|
|
|
257
307
|
/** Midpoint of finite XYZ bounds in millimetres. */
|
|
258
|
-
export declare function boundsCenter(bounds:
|
|
308
|
+
export declare function boundsCenter(bounds: Bounds3Data): Vector3Data;
|
|
259
309
|
|
|
260
310
|
/** A uniform XY scale followed by translation, and the resulting bounds. */
|
|
261
311
|
export declare interface BoundsFit2 {
|
|
262
312
|
/** Positive uniform scale. */
|
|
263
313
|
readonly scale: number;
|
|
264
314
|
/** Millimetre translation applied after scaling around the origin. */
|
|
265
|
-
readonly position:
|
|
315
|
+
readonly position: Vector2Data;
|
|
266
316
|
/** Bounds after scaling and translation. */
|
|
267
|
-
readonly bounds:
|
|
317
|
+
readonly bounds: Bounds2Data;
|
|
268
318
|
}
|
|
269
319
|
|
|
270
320
|
/** A uniform XYZ scale followed by translation, and the resulting bounds. */
|
|
@@ -272,9 +322,9 @@ export declare interface BoundsFit3 {
|
|
|
272
322
|
/** Positive uniform scale. */
|
|
273
323
|
readonly scale: number;
|
|
274
324
|
/** Millimetre translation applied after scaling around the origin. */
|
|
275
|
-
readonly position:
|
|
325
|
+
readonly position: Vector3Data;
|
|
276
326
|
/** Bounds after scaling and translation. */
|
|
277
|
-
readonly bounds:
|
|
327
|
+
readonly bounds: Bounds3Data;
|
|
278
328
|
}
|
|
279
329
|
|
|
280
330
|
/** Uniform fitting controls; fitting centers the source inside the target. */
|
|
@@ -285,15 +335,15 @@ export declare interface BoundsFitOptions {
|
|
|
285
335
|
|
|
286
336
|
/** Creates immutable centered XY bounds from nonnegative dimensions in millimetres. */
|
|
287
337
|
export declare function boundsFromSize(
|
|
288
|
-
size:
|
|
338
|
+
size: Vector2Data,
|
|
289
339
|
options?: BoundsFromSizeOptions,
|
|
290
|
-
):
|
|
340
|
+
): Bounds2Data;
|
|
291
341
|
|
|
292
342
|
/** Creates immutable centered XYZ bounds from nonnegative dimensions in millimetres. */
|
|
293
343
|
export declare function boundsFromSize(
|
|
294
|
-
size:
|
|
344
|
+
size: Vector3Data,
|
|
295
345
|
options?: BoundsFromSizeOptions,
|
|
296
|
-
):
|
|
346
|
+
): Bounds3Data;
|
|
297
347
|
|
|
298
348
|
/** Placement of bounds constructed from nonnegative millimetre dimensions. */
|
|
299
349
|
export declare interface BoundsFromSizeOptions {
|
|
@@ -302,10 +352,10 @@ export declare interface BoundsFromSizeOptions {
|
|
|
302
352
|
}
|
|
303
353
|
|
|
304
354
|
/** Inclusive XY dimensions in millimetres; zero extents are retained. */
|
|
305
|
-
export declare function boundsSize(bounds:
|
|
355
|
+
export declare function boundsSize(bounds: Bounds2Data): Vector2Data;
|
|
306
356
|
|
|
307
357
|
/** Inclusive XYZ dimensions in millimetres; zero extents are retained. */
|
|
308
|
-
export declare function boundsSize(bounds:
|
|
358
|
+
export declare function boundsSize(bounds: Bounds3Data): Vector3Data;
|
|
309
359
|
|
|
310
360
|
/** Creates an outward face-center anchor using the same local origin convention as box().
|
|
311
361
|
* @remarks origin applies an explicit translation. For rotated components, transform the
|
|
@@ -320,13 +370,13 @@ export declare type BoxAnchorFace =
|
|
|
320
370
|
/** Box dimensions and construction origin for one named face anchor. */
|
|
321
371
|
export declare interface BoxAnchorOptions {
|
|
322
372
|
/** XYZ dimensions, or one uniform dimension, in millimetres. */
|
|
323
|
-
readonly size: number |
|
|
373
|
+
readonly size: number | Vector3Data;
|
|
324
374
|
/** Named outward face whose center is the attachment point. */
|
|
325
375
|
readonly face: BoxAnchorFace;
|
|
326
376
|
/** Centers the box around its construction origin; defaults to true, matching box(). */
|
|
327
377
|
readonly center?: boolean;
|
|
328
378
|
/** Construction origin; centered-box center or noncentered minimum corner. Defaults to zero. */
|
|
329
|
-
readonly origin?:
|
|
379
|
+
readonly origin?: Vector3Data;
|
|
330
380
|
}
|
|
331
381
|
|
|
332
382
|
/** Box edges use +Z top, +Y front and +X right; vertical names list front/back first. */
|
|
@@ -364,7 +414,7 @@ export declare interface BoxOptions extends PrimitiveAttachment {
|
|
|
364
414
|
*/
|
|
365
415
|
readonly center?: boolean;
|
|
366
416
|
/** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
|
|
367
|
-
readonly size: number |
|
|
417
|
+
readonly size: number | Vector3Data;
|
|
368
418
|
/** Uniform treatment or independent disjoint nominal edge/group treatments. */
|
|
369
419
|
readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
|
|
370
420
|
}
|
|
@@ -467,13 +517,14 @@ export declare type ClearanceHoleFit = "close" | "normal" | "loose";
|
|
|
467
517
|
|
|
468
518
|
/**
|
|
469
519
|
* Closes an open, strictly upward [radius, height] side outline to the radius-zero axis.
|
|
520
|
+
*
|
|
470
521
|
* Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once.
|
|
471
522
|
* Returns a counterclockwise filled-boundary contour without a repeated seam vertex.
|
|
472
523
|
* Radii must be nonnegative; the result must enclose nonzero area without touching itself.
|
|
473
524
|
* This is a solid-body closure, not a hollow-wall or mounting-bore construction.
|
|
474
525
|
*/
|
|
475
526
|
export declare function closeToAxis(
|
|
476
|
-
side: readonly
|
|
527
|
+
side: readonly Vector2Data[],
|
|
477
528
|
limits?: Partial<GeometrySamplingLimits>,
|
|
478
529
|
): Contour;
|
|
479
530
|
|
|
@@ -540,9 +591,9 @@ export declare function compensateThreadProfileForFaceting(
|
|
|
540
591
|
* @returns A new frozen transform equal to `after * before`.
|
|
541
592
|
*/
|
|
542
593
|
export declare function composeTransform3(
|
|
543
|
-
after:
|
|
544
|
-
before:
|
|
545
|
-
):
|
|
594
|
+
after: Transform3Data,
|
|
595
|
+
before: Transform3Data,
|
|
596
|
+
): Transform3Data;
|
|
546
597
|
|
|
547
598
|
/**
|
|
548
599
|
* Builds rotation-minimizing frames for a non-duplicated closed path.
|
|
@@ -563,6 +614,7 @@ export declare const computeClosedParallelTransportFrames: (
|
|
|
563
614
|
|
|
564
615
|
/**
|
|
565
616
|
* Builds rotation-minimizing frames by parallel-transporting the previous normal.
|
|
617
|
+
*
|
|
566
618
|
* This avoids the sudden profile flips produced by picking a fresh up-vector per ring.
|
|
567
619
|
* Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation.
|
|
568
620
|
* Requires open path values; raw tuples are interpreted as an open path. Invalid paths throw GeometryError.
|
|
@@ -577,6 +629,7 @@ export declare const computeParallelTransportFrames: (
|
|
|
577
629
|
|
|
578
630
|
/**
|
|
579
631
|
* Computes the uniform-density volume centroid of an oriented closed solid, including cavity shells.
|
|
632
|
+
*
|
|
580
633
|
* Coordinates are millimetres. Indexed closure and positive aggregate volume are required; callers
|
|
581
634
|
* may use validateSolidMesh first when geometric intersections and shell orientation are untrusted.
|
|
582
635
|
* Fresh mutable input is inspected on every call, and buffers are never changed.
|
|
@@ -586,7 +639,7 @@ export declare const computeParallelTransportFrames: (
|
|
|
586
639
|
*/
|
|
587
640
|
export declare function computeTriangleMeshCentroid(
|
|
588
641
|
mesh: TriangleMesh,
|
|
589
|
-
):
|
|
642
|
+
): Vector3Data;
|
|
590
643
|
|
|
591
644
|
/**
|
|
592
645
|
* Creates an order-independent regression signature for a manufacturing mesh.
|
|
@@ -606,23 +659,33 @@ export declare function computeTriangleMeshSignature(
|
|
|
606
659
|
): TriangleMeshSignature;
|
|
607
660
|
|
|
608
661
|
/** Tests actual XY containment, including touching boundaries; dimensions must match. */
|
|
609
|
-
export declare function containsBounds(
|
|
662
|
+
export declare function containsBounds(
|
|
663
|
+
outer: Bounds2Data,
|
|
664
|
+
inner: Bounds2Data,
|
|
665
|
+
): boolean;
|
|
610
666
|
|
|
611
667
|
/** Tests actual XYZ containment, including touching boundaries; dimensions must match. */
|
|
612
|
-
export declare function containsBounds(
|
|
668
|
+
export declare function containsBounds(
|
|
669
|
+
outer: Bounds3Data,
|
|
670
|
+
inner: Bounds3Data,
|
|
671
|
+
): boolean;
|
|
613
672
|
|
|
614
673
|
/**
|
|
615
|
-
* A closed two-dimensional boundary whose first point is not repeated at the end.
|
|
674
|
+
* A sampled closed two-dimensional boundary whose first point is not repeated at the end.
|
|
616
675
|
*
|
|
617
676
|
* Polygon exteriors are counter-clockwise and holes are clockwise. Algorithms
|
|
618
677
|
* may reject duplicate adjacent points or fewer than three effective vertices.
|
|
678
|
+
* Use PolygonData to assign an exterior and its holes, or ProfileContour2 for identified curve spans.
|
|
679
|
+
*
|
|
680
|
+
* @see {@link PolygonData}
|
|
681
|
+
* @see [ProfileContour2](/docs/reference/geometry/ProfileContour2)
|
|
619
682
|
*/
|
|
620
|
-
export declare type Contour = readonly
|
|
683
|
+
export declare type Contour = readonly Vector2Data[];
|
|
621
684
|
|
|
622
685
|
/** Returns true when a point lies inside or on the boundary of a loop. */
|
|
623
686
|
export declare function contourContainsPoint(
|
|
624
687
|
loop: Contour,
|
|
625
|
-
point:
|
|
688
|
+
point: Vector2Data,
|
|
626
689
|
): boolean;
|
|
627
690
|
|
|
628
691
|
/** One explicitly closed planar contour, independent of editor metadata and parameter contracts. */
|
|
@@ -693,7 +756,7 @@ export declare type CorrespondingProfileStation = LoftPlacement & {
|
|
|
693
756
|
};
|
|
694
757
|
|
|
695
758
|
/** Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. */
|
|
696
|
-
export declare const cross2: (a:
|
|
759
|
+
export declare const cross2: (a: Vector2Data, b: Vector2Data) => number;
|
|
697
760
|
|
|
698
761
|
/**
|
|
699
762
|
* Returns the right-handed cross product.
|
|
@@ -702,20 +765,20 @@ export declare const cross2: (a: Vector2Tuple, b: Vector2Tuple) => number;
|
|
|
702
765
|
* cross3([1, 0, 0], [0, 1, 0]); // [0, 0, 1]
|
|
703
766
|
* ```
|
|
704
767
|
*/
|
|
705
|
-
export declare const cross3: (a:
|
|
768
|
+
export declare const cross3: (a: Vector3Data, b: Vector3Data) => Vector3Data;
|
|
706
769
|
|
|
707
770
|
/** Planar cubic Bézier with explicit endpoint and control coordinates. */
|
|
708
771
|
export declare interface CubicBezierCurve2 {
|
|
709
772
|
/** Selects a cubic Bézier through two endpoints and two controls. */
|
|
710
773
|
readonly kind: "cubic";
|
|
711
774
|
/** Initial XY point in millimetres. */
|
|
712
|
-
readonly start:
|
|
775
|
+
readonly start: Vector2Data;
|
|
713
776
|
/** First XY control point in millimetres. */
|
|
714
|
-
readonly control1:
|
|
777
|
+
readonly control1: Vector2Data;
|
|
715
778
|
/** Second XY control point in millimetres. */
|
|
716
|
-
readonly control2:
|
|
779
|
+
readonly control2: Vector2Data;
|
|
717
780
|
/** Final XY point in millimetres. */
|
|
718
|
-
readonly end:
|
|
781
|
+
readonly end: Vector2Data;
|
|
719
782
|
}
|
|
720
783
|
|
|
721
784
|
/**
|
|
@@ -725,13 +788,13 @@ export declare interface CubicBezierCurve3 {
|
|
|
725
788
|
/** Selects a cubic Bézier through two endpoints and two controls. */
|
|
726
789
|
readonly kind: "cubic";
|
|
727
790
|
/** Initial XYZ point in millimetres. */
|
|
728
|
-
readonly start:
|
|
791
|
+
readonly start: Vector3Data;
|
|
729
792
|
/** First XYZ control point in millimetres. */
|
|
730
|
-
readonly control1:
|
|
793
|
+
readonly control1: Vector3Data;
|
|
731
794
|
/** Second XYZ control point in millimetres. */
|
|
732
|
-
readonly control2:
|
|
795
|
+
readonly control2: Vector3Data;
|
|
733
796
|
/** Final XYZ point in millimetres. */
|
|
734
|
-
readonly end:
|
|
797
|
+
readonly end: Vector3Data;
|
|
735
798
|
}
|
|
736
799
|
|
|
737
800
|
/** Reusable planar curve definition. */
|
|
@@ -764,7 +827,7 @@ export declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
764
827
|
* Open path spanning exactly `[-pitch/2, pitch/2]`, with both endpoints on the minor envelope,
|
|
765
828
|
* one connected ridge, one contiguous crest, and radial zero at the major envelope.
|
|
766
829
|
*/
|
|
767
|
-
readonly points: readonly
|
|
830
|
+
readonly points: readonly Vector2Data[];
|
|
768
831
|
}
|
|
769
832
|
|
|
770
833
|
/** Creates a cap-center or radial-side anchor using cylinder()'s construction origin.
|
|
@@ -791,7 +854,7 @@ export declare interface CylinderAnchorOptions {
|
|
|
791
854
|
/** Centers the cylinder along Z; defaults to true, matching cylinder(). */
|
|
792
855
|
readonly center?: boolean;
|
|
793
856
|
/** Construction origin; centered-axis midpoint or noncentered bottom axis. Defaults to zero. */
|
|
794
|
-
readonly origin?:
|
|
857
|
+
readonly origin?: Vector3Data;
|
|
795
858
|
}
|
|
796
859
|
|
|
797
860
|
/**
|
|
@@ -968,10 +1031,10 @@ export declare const DEFAULT_GEOMETRY_TOLERANCE: Readonly<{
|
|
|
968
1031
|
export declare const defaultGeometrySamplingLimits: GeometrySamplingLimits;
|
|
969
1032
|
|
|
970
1033
|
/** Returns Euclidean point distance without allocating an intermediate difference vector. */
|
|
971
|
-
export declare const distance2: (a:
|
|
1034
|
+
export declare const distance2: (a: Vector2Data, b: Vector2Data) => number;
|
|
972
1035
|
|
|
973
1036
|
/** Returns Euclidean point distance without allocating an intermediate difference vector. */
|
|
974
|
-
export declare const distance3: (a:
|
|
1037
|
+
export declare const distance3: (a: Vector3Data, b: Vector3Data) => number;
|
|
975
1038
|
|
|
976
1039
|
/**
|
|
977
1040
|
* Places an exact item count at equal arc-length intervals along a sampled path.
|
|
@@ -991,7 +1054,7 @@ export declare const distributeAlongPath: (
|
|
|
991
1054
|
) => readonly PathPlacement[];
|
|
992
1055
|
|
|
993
1056
|
/** Returns the scalar dot product. */
|
|
994
|
-
export declare const dot2: (a:
|
|
1057
|
+
export declare const dot2: (a: Vector2Data, b: Vector2Data) => number;
|
|
995
1058
|
|
|
996
1059
|
/**
|
|
997
1060
|
* Returns the scalar dot product.
|
|
@@ -1000,7 +1063,7 @@ export declare const dot2: (a: Vector2Tuple, b: Vector2Tuple) => number;
|
|
|
1000
1063
|
* dot3([1, 0, 0], [0, 1, 0]); // 0
|
|
1001
1064
|
* ```
|
|
1002
1065
|
*/
|
|
1003
|
-
export declare const dot3: (a:
|
|
1066
|
+
export declare const dot3: (a: Vector3Data, b: Vector3Data) => number;
|
|
1004
1067
|
|
|
1005
1068
|
/**
|
|
1006
1069
|
* Uniform finishing vocabulary shared by applicable solid edges and profile corners.
|
|
@@ -1028,13 +1091,13 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
|
|
|
1028
1091
|
(
|
|
1029
1092
|
| {
|
|
1030
1093
|
/** Positive XY radii in millimetres; mutually exclusive with size. */
|
|
1031
|
-
readonly radius:
|
|
1094
|
+
readonly radius: Vector2Data;
|
|
1032
1095
|
/** Full XY extents are unavailable when radius is supplied. */
|
|
1033
1096
|
readonly size?: never;
|
|
1034
1097
|
}
|
|
1035
1098
|
| {
|
|
1036
1099
|
/** Positive full XY extents in millimetres; mutually exclusive with radius. */
|
|
1037
|
-
readonly size:
|
|
1100
|
+
readonly size: Vector2Data;
|
|
1038
1101
|
/** XY radii are unavailable when size is supplied. */
|
|
1039
1102
|
readonly radius?: never;
|
|
1040
1103
|
}
|
|
@@ -1062,8 +1125,8 @@ export declare interface EndTreatments {
|
|
|
1062
1125
|
* @throws {@link GeometryError} When an angle is non-finite.
|
|
1063
1126
|
*/
|
|
1064
1127
|
export declare function eulerTransform3(
|
|
1065
|
-
rotationDegrees:
|
|
1066
|
-
):
|
|
1128
|
+
rotationDegrees: Vector3Data,
|
|
1129
|
+
): Transform3Data;
|
|
1067
1130
|
|
|
1068
1131
|
/**
|
|
1069
1132
|
* Linearly extrudes one simple profile along +Z with robust ear-clipped caps.
|
|
@@ -1108,15 +1171,15 @@ export declare interface ExtrusionSamplingOptions {
|
|
|
1108
1171
|
|
|
1109
1172
|
/** Fits XY bounds uniformly and centers them in the target; zero source axes do not constrain scale. */
|
|
1110
1173
|
export declare function fitBounds(
|
|
1111
|
-
source:
|
|
1112
|
-
target:
|
|
1174
|
+
source: Bounds2Data,
|
|
1175
|
+
target: Bounds2Data,
|
|
1113
1176
|
options?: BoundsFitOptions,
|
|
1114
1177
|
): BoundsFit2;
|
|
1115
1178
|
|
|
1116
1179
|
/** Fits XYZ bounds uniformly and centers them in the target; zero source axes do not constrain scale. */
|
|
1117
1180
|
export declare function fitBounds(
|
|
1118
|
-
source:
|
|
1119
|
-
target:
|
|
1181
|
+
source: Bounds3Data,
|
|
1182
|
+
target: Bounds3Data,
|
|
1120
1183
|
options?: BoundsFitOptions,
|
|
1121
1184
|
): BoundsFit3;
|
|
1122
1185
|
|
|
@@ -1125,12 +1188,13 @@ export declare interface FittedTextLayout extends VectorTextLayout {
|
|
|
1125
1188
|
/** Transformed physical measurements, including nonempty visible ink bounds. */
|
|
1126
1189
|
readonly metrics: VectorTextMetrics & {
|
|
1127
1190
|
/** Finite positive-area ink bounds in final millimetres. */
|
|
1128
|
-
readonly bounds:
|
|
1191
|
+
readonly bounds: Bounds2Data;
|
|
1129
1192
|
};
|
|
1130
1193
|
}
|
|
1131
1194
|
|
|
1132
1195
|
/**
|
|
1133
1196
|
* Uniformly fits visible text ink inside finite XY bounds, centering it on the target.
|
|
1197
|
+
*
|
|
1134
1198
|
* Transforms retained vector paths before sampling, so later textSection/sampleTextContours
|
|
1135
1199
|
* resolution remains in final millimetres. Logical advances scale without translation;
|
|
1136
1200
|
* line count is unchanged. The input layout is preserved.
|
|
@@ -1143,20 +1207,20 @@ export declare interface FittedTextLayout extends VectorTextLayout {
|
|
|
1143
1207
|
*/
|
|
1144
1208
|
export declare function fitTextLayout(
|
|
1145
1209
|
layout: VectorTextLayout,
|
|
1146
|
-
target:
|
|
1210
|
+
target: Bounds2Data,
|
|
1147
1211
|
options?: BoundsFitOptions,
|
|
1148
1212
|
): FittedTextLayout;
|
|
1149
1213
|
|
|
1150
1214
|
/** A right-handed orthonormal coordinate frame expressed in world coordinates. */
|
|
1151
1215
|
export declare interface Frame3 {
|
|
1152
1216
|
/** World-space origin of the local frame. */
|
|
1153
|
-
readonly origin:
|
|
1217
|
+
readonly origin: Vector3Data;
|
|
1154
1218
|
/** Unit vector defining the local +X axis. */
|
|
1155
|
-
readonly xAxis:
|
|
1219
|
+
readonly xAxis: Vector3Data;
|
|
1156
1220
|
/** Unit vector defining the local +Y axis. */
|
|
1157
|
-
readonly yAxis:
|
|
1221
|
+
readonly yAxis: Vector3Data;
|
|
1158
1222
|
/** Unit vector defining the local +Z axis. */
|
|
1159
|
-
readonly zAxis:
|
|
1223
|
+
readonly zAxis: Vector3Data;
|
|
1160
1224
|
}
|
|
1161
1225
|
|
|
1162
1226
|
/**
|
|
@@ -1170,7 +1234,7 @@ export declare interface Frame3 {
|
|
|
1170
1234
|
export declare function frameTransform3(
|
|
1171
1235
|
frame: Frame3,
|
|
1172
1236
|
tolerance?: GeometryToleranceOptions,
|
|
1173
|
-
):
|
|
1237
|
+
): Transform3Data;
|
|
1174
1238
|
|
|
1175
1239
|
/**
|
|
1176
1240
|
* Error raised when a geometry precondition or invariant is not satisfied.
|
|
@@ -1287,16 +1351,16 @@ export declare type GridPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
|
1287
1351
|
} & (
|
|
1288
1352
|
| {
|
|
1289
1353
|
/** Positive integer counts on X and Y. */
|
|
1290
|
-
readonly count:
|
|
1354
|
+
readonly count: Vector2Data;
|
|
1291
1355
|
/** Signed millimetres between adjacent copies on X and Y. */
|
|
1292
|
-
readonly spacing:
|
|
1356
|
+
readonly spacing: Vector2Data;
|
|
1293
1357
|
}
|
|
1294
1358
|
| (Dimension extends 3
|
|
1295
1359
|
? {
|
|
1296
1360
|
/** Positive integer counts on X, Y and Z. */
|
|
1297
|
-
readonly count:
|
|
1361
|
+
readonly count: Vector3Data;
|
|
1298
1362
|
/** Signed millimetres between adjacent copies on X, Y and Z. */
|
|
1299
|
-
readonly spacing:
|
|
1363
|
+
readonly spacing: Vector3Data;
|
|
1300
1364
|
}
|
|
1301
1365
|
: never)
|
|
1302
1366
|
);
|
|
@@ -1304,14 +1368,17 @@ export declare type GridPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
|
1304
1368
|
/** Spatial XYZ matrices for an XY or XYZ grid, in X-fastest order. */
|
|
1305
1369
|
export declare function gridPatternTransforms(
|
|
1306
1370
|
options: GridPatternOptions,
|
|
1307
|
-
): readonly
|
|
1371
|
+
): readonly Transform3Data[];
|
|
1308
1372
|
|
|
1309
1373
|
/**
|
|
1310
1374
|
* Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base.
|
|
1375
|
+
*
|
|
1311
1376
|
* Heights run once per grid point after preflight; center-error adds one evaluation per cell.
|
|
1312
1377
|
* Top winding is +Z, the base is -Z, and sides face outward. Coordinates and heights must fit
|
|
1313
1378
|
* Float32 storage. Explicit axes are captured before sampling; shared wall vertices prevent cracks.
|
|
1314
1379
|
*
|
|
1380
|
+
* @see {@link preflightHeightfield}
|
|
1381
|
+
*
|
|
1315
1382
|
* @example Sample a closed wavy mesh
|
|
1316
1383
|
* ```ts
|
|
1317
1384
|
* heightfieldMesh({
|
|
@@ -1341,7 +1408,7 @@ export declare type HeightfieldMeshLimits = Partial<
|
|
|
1341
1408
|
*/
|
|
1342
1409
|
export declare type HeightfieldOptions = {
|
|
1343
1410
|
/** Absolute top Z at the supplied XY point. Every sample must be above baseZ. */
|
|
1344
|
-
readonly height: (point:
|
|
1411
|
+
readonly height: (point: Vector2Data) => number;
|
|
1345
1412
|
/** Flat bottom Z. Defaults to zero. */
|
|
1346
1413
|
readonly baseZ?: number;
|
|
1347
1414
|
/**
|
|
@@ -1354,11 +1421,11 @@ export declare type HeightfieldOptions = {
|
|
|
1354
1421
|
} & (
|
|
1355
1422
|
| {
|
|
1356
1423
|
/** Positive XY footprint for uniform sampling. */
|
|
1357
|
-
readonly size:
|
|
1424
|
+
readonly size: Vector2Data;
|
|
1358
1425
|
/** Exact positive integer X/Y interval counts. */
|
|
1359
1426
|
readonly segments: readonly [x: number, y: number];
|
|
1360
1427
|
/** Lower-left footprint XY. Omitted centers the footprint on XY. */
|
|
1361
|
-
readonly origin?:
|
|
1428
|
+
readonly origin?: Vector2Data;
|
|
1362
1429
|
/** Explicit coordinates cannot be combined with uniform sampling. */
|
|
1363
1430
|
readonly coordinates?: never;
|
|
1364
1431
|
}
|
|
@@ -1382,15 +1449,15 @@ export declare type HeightfieldOptions = {
|
|
|
1382
1449
|
}
|
|
1383
1450
|
);
|
|
1384
1451
|
|
|
1385
|
-
/**
|
|
1452
|
+
/** Exact grid and mesh buffer allocation counts resolved without evaluating the height callback. */
|
|
1386
1453
|
export declare interface HeightfieldPreflight {
|
|
1387
|
-
/** Number of top grid points;
|
|
1454
|
+
/** Number of top grid points; excludes the extra per-cell height evaluations for center-error. */
|
|
1388
1455
|
readonly sampleCount: number;
|
|
1389
1456
|
/** Number of allocated XYZ vertices. */
|
|
1390
1457
|
readonly vertexCount: number;
|
|
1391
1458
|
/** Number of allocated indexed triangles. */
|
|
1392
1459
|
readonly triangleCount: number;
|
|
1393
|
-
/** Total bytes of Float32 positions and Uint32 indices. */
|
|
1460
|
+
/** Total bytes of Float32 positions and Uint32 indices, excluding temporary storage. */
|
|
1394
1461
|
readonly byteCount: number;
|
|
1395
1462
|
}
|
|
1396
1463
|
|
|
@@ -1461,7 +1528,7 @@ export declare interface HelicalThreadSolidMeshOptions extends HelicalThreadRidg
|
|
|
1461
1528
|
readonly bevelTopSize?: number;
|
|
1462
1529
|
}
|
|
1463
1530
|
|
|
1464
|
-
/**
|
|
1531
|
+
/** Selected sampling counts and conservative allocation estimates, before thread mesh construction. */
|
|
1465
1532
|
export declare interface HelicalThreadSolidMeshPreflight {
|
|
1466
1533
|
/** Uniform axial intervals required only by a requested physical segment-length limit. */
|
|
1467
1534
|
readonly axialIntervals: number;
|
|
@@ -1474,7 +1541,7 @@ export declare interface HelicalThreadSolidMeshPreflight {
|
|
|
1474
1541
|
}
|
|
1475
1542
|
|
|
1476
1543
|
/** Identity transform, safe to share because it is frozen. */
|
|
1477
|
-
export declare const IDENTITY_TRANSFORM3:
|
|
1544
|
+
export declare const IDENTITY_TRANSFORM3: Transform3Data;
|
|
1478
1545
|
|
|
1479
1546
|
/** Options for a compensated internal-thread subtraction tool along +Z. */
|
|
1480
1547
|
export declare interface InternalThreadCutterOptions
|
|
@@ -1494,11 +1561,12 @@ export declare interface InternalThreadCutterOptions
|
|
|
1494
1561
|
* @returns A new frozen transform whose composition with the input is identity.
|
|
1495
1562
|
*/
|
|
1496
1563
|
export declare function inverseTransform3(
|
|
1497
|
-
transform:
|
|
1498
|
-
):
|
|
1564
|
+
transform: Transform3Data,
|
|
1565
|
+
): Transform3Data;
|
|
1499
1566
|
|
|
1500
1567
|
/**
|
|
1501
1568
|
* Recognizes structured geometry errors from separately bundled Modeling copies in the same realm.
|
|
1569
|
+
*
|
|
1502
1570
|
* Ordinary errors and unmarked code-shaped objects are rejected. The marker is execution-local and
|
|
1503
1571
|
* does not survive structured cloning; worker protocols carry their own serialized error envelope.
|
|
1504
1572
|
*/
|
|
@@ -1517,35 +1585,128 @@ export declare function joinTriangleMeshes(
|
|
|
1517
1585
|
meshes: readonly TriangleMesh[],
|
|
1518
1586
|
): TriangleMesh;
|
|
1519
1587
|
|
|
1588
|
+
/** Shared knuckle-joint dimensions in millimetres, independent of mounting geometry. */
|
|
1589
|
+
export declare interface KnuckleHingeBaseSpec {
|
|
1590
|
+
/** Total extent along the +X pin axis, centered at the origin. */
|
|
1591
|
+
readonly length: number;
|
|
1592
|
+
/** Number of equal alternating intervals, starting with half A. */
|
|
1593
|
+
readonly knuckleCount: number;
|
|
1594
|
+
/** Outside vertex-sized barrel diameter. */
|
|
1595
|
+
readonly barrelDiameter: number;
|
|
1596
|
+
/** Vertex-sized shaft diameter, including an externally supplied shaft. */
|
|
1597
|
+
readonly pinDiameter: number;
|
|
1598
|
+
/** Nonnegative per-side radial allowance; bores circumscribe this running envelope. */
|
|
1599
|
+
readonly radialClearance: number;
|
|
1600
|
+
/** Nonnegative total air gap between each neighboring pair of knuckle ends. */
|
|
1601
|
+
readonly axialGap: number;
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
/** Immutable joint layout and conservative faceted envelopes; no engine initialization. */
|
|
1605
|
+
export declare interface KnuckleHingeDimensions {
|
|
1606
|
+
/** Validated, copied nominal inputs. */
|
|
1607
|
+
readonly spec: KnuckleHingeSpec;
|
|
1608
|
+
/** Nominal outside barrel radius. */
|
|
1609
|
+
readonly barrelRadius: number;
|
|
1610
|
+
/** Maximum shaft radius under any rotation. */
|
|
1611
|
+
readonly pinRadius: number;
|
|
1612
|
+
/** Minimum face-sized bore radius, including radial clearance. */
|
|
1613
|
+
readonly boreRadius: number;
|
|
1614
|
+
/** Maximum radius at the faceted bore vertices. */
|
|
1615
|
+
readonly boreOuterRadius: number;
|
|
1616
|
+
/** Conservative radial wall before outer end chamfers, accounting for both polygons. */
|
|
1617
|
+
readonly minimumBarrelWall: number;
|
|
1618
|
+
/** Equal length of every interval. */
|
|
1619
|
+
readonly knuckleLength: number;
|
|
1620
|
+
/** Common exact full-circle segment count. */
|
|
1621
|
+
readonly segments: number;
|
|
1622
|
+
/** Alternating schedule ordered from negative to positive X. */
|
|
1623
|
+
readonly knuckles: readonly KnuckleHingeInterval[];
|
|
1624
|
+
/** Integral pin interval; null when the consumer supplies an inserted pin. */
|
|
1625
|
+
readonly pin: Readonly<{
|
|
1626
|
+
/** Start coordinate along X, in millimetres. */
|
|
1627
|
+
start: number;
|
|
1628
|
+
/** Total integral shaft length, including material inside A. */
|
|
1629
|
+
length: number;
|
|
1630
|
+
}> | null;
|
|
1631
|
+
/** Origin at the joint center, direction +X, roll guide +Z. */
|
|
1632
|
+
readonly axis: Anchor3;
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
/** One equal-length barrel interval in the shared pin-centered frame. */
|
|
1636
|
+
export declare interface KnuckleHingeInterval {
|
|
1637
|
+
/** Alternating owner, beginning with A at the negative end of X. */
|
|
1638
|
+
readonly side: "a" | "b";
|
|
1639
|
+
/** Start along X, in millimetres. */
|
|
1640
|
+
readonly start: number;
|
|
1641
|
+
/** Axial length, excluding the neighboring gaps. */
|
|
1642
|
+
readonly length: number;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
/** Shared circular sampling for barrels, shafts, and bores. */
|
|
1646
|
+
export declare interface KnuckleHingeSamplingOptions {
|
|
1647
|
+
/** Exact full-circle count, divisible by four and at least four; overrides adaptive sampling. */
|
|
1648
|
+
readonly segments?: number;
|
|
1649
|
+
/** Physical tessellation policy. Exact circular counts must also be divisible by four. */
|
|
1650
|
+
readonly resolution?: GeometryResolution;
|
|
1651
|
+
/** Explicit allocation ceilings; defaults to the pure geometry sampling limits. */
|
|
1652
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
/**
|
|
1656
|
+
* Knuckle-joint construction modes and interval ownership.
|
|
1657
|
+
*
|
|
1658
|
+
* Print-in-place requires an odd count of at least three: A owns both
|
|
1659
|
+
* end anchors and the entire shaft. Inserted-pin bores both halves and supplies no shaft.
|
|
1660
|
+
* Lift-off requires exactly two intervals; A's integral pin enters B without a far anchor.
|
|
1661
|
+
*/
|
|
1662
|
+
export declare type KnuckleHingeSpec = KnuckleHingeBaseSpec &
|
|
1663
|
+
(
|
|
1664
|
+
| {
|
|
1665
|
+
/** Captive integral shaft or bores for an externally supplied pin. */
|
|
1666
|
+
readonly mode: "print-in-place" | "inserted-pin";
|
|
1667
|
+
/** Engagement applies only to lift-off construction. */
|
|
1668
|
+
readonly pinEngagement?: never;
|
|
1669
|
+
}
|
|
1670
|
+
| {
|
|
1671
|
+
/** Detachable socket on a finite integral pin. */
|
|
1672
|
+
readonly mode: "lift-off";
|
|
1673
|
+
/** Lift-off has one fixed interval and one removable interval. */
|
|
1674
|
+
readonly knuckleCount: 2;
|
|
1675
|
+
/** Positive axial engagement into B, no greater than its knuckle length. */
|
|
1676
|
+
readonly pinEngagement: number;
|
|
1677
|
+
}
|
|
1678
|
+
);
|
|
1679
|
+
|
|
1520
1680
|
/**
|
|
1521
1681
|
* Returns immutable translations for a +X row of finite XYZ bounds with a nonnegative gap.
|
|
1682
|
+
*
|
|
1522
1683
|
* Each minimum Y/Z becomes zero, and the first minimum X becomes zero. Supply bounds after
|
|
1523
1684
|
* any intended part rotation; translations apply to those bounds. An empty input returns [].
|
|
1524
1685
|
*/
|
|
1525
1686
|
export declare function layoutRow(
|
|
1526
|
-
bounds: readonly
|
|
1687
|
+
bounds: readonly Bounds3Data[],
|
|
1527
1688
|
options?: RowLayoutOptions,
|
|
1528
|
-
): readonly
|
|
1689
|
+
): readonly Vector3Data[];
|
|
1529
1690
|
|
|
1530
1691
|
/** Returns Euclidean vector length in the vector's coordinate units. */
|
|
1531
|
-
export declare const length2: (vector:
|
|
1692
|
+
export declare const length2: (vector: Vector2Data) => number;
|
|
1532
1693
|
|
|
1533
1694
|
/** Returns Euclidean vector length in the vector's coordinate units. */
|
|
1534
|
-
export declare const length3: (vector:
|
|
1695
|
+
export declare const length3: (vector: Vector3Data) => number;
|
|
1535
1696
|
|
|
1536
1697
|
/** Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. */
|
|
1537
1698
|
export declare const lerp2: (
|
|
1538
|
-
a:
|
|
1539
|
-
b:
|
|
1699
|
+
a: Vector2Data,
|
|
1700
|
+
b: Vector2Data,
|
|
1540
1701
|
t: number,
|
|
1541
|
-
) =>
|
|
1702
|
+
) => Vector2Data;
|
|
1542
1703
|
|
|
1543
1704
|
/** Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. */
|
|
1544
1705
|
export declare const lerp3: (
|
|
1545
|
-
a:
|
|
1546
|
-
b:
|
|
1706
|
+
a: Vector3Data,
|
|
1707
|
+
b: Vector3Data,
|
|
1547
1708
|
t: number,
|
|
1548
|
-
) =>
|
|
1709
|
+
) => Vector3Data;
|
|
1549
1710
|
|
|
1550
1711
|
/**
|
|
1551
1712
|
* Equal linear intervals determined by exactly two of count, spacing and total length.
|
|
@@ -1584,16 +1745,16 @@ export declare type LinearPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
|
1584
1745
|
/** Spatial XYZ matrix placements in millimetres, including the original at the origin. */
|
|
1585
1746
|
export declare function linearPatternTransforms(
|
|
1586
1747
|
options: LinearPatternOptions,
|
|
1587
|
-
): readonly
|
|
1748
|
+
): readonly Transform3Data[];
|
|
1588
1749
|
|
|
1589
1750
|
/** Straight planar curve in millimetres. */
|
|
1590
1751
|
export declare interface LineCurve2 {
|
|
1591
1752
|
/** Selects straight interpolation between the two endpoints. */
|
|
1592
1753
|
readonly kind: "line";
|
|
1593
1754
|
/** Initial XY point in millimetres. */
|
|
1594
|
-
readonly start:
|
|
1755
|
+
readonly start: Vector2Data;
|
|
1595
1756
|
/** Final XY point in millimetres. */
|
|
1596
|
-
readonly end:
|
|
1757
|
+
readonly end: Vector2Data;
|
|
1597
1758
|
}
|
|
1598
1759
|
|
|
1599
1760
|
/** Straight spatial curve in millimetres. */
|
|
@@ -1601,9 +1762,9 @@ export declare interface LineCurve3 {
|
|
|
1601
1762
|
/** Selects straight interpolation between the two endpoints. */
|
|
1602
1763
|
readonly kind: "line";
|
|
1603
1764
|
/** Initial XYZ point in millimetres. */
|
|
1604
|
-
readonly start:
|
|
1765
|
+
readonly start: Vector3Data;
|
|
1605
1766
|
/** Final XYZ point in millimetres. */
|
|
1606
|
-
readonly end:
|
|
1767
|
+
readonly end: Vector3Data;
|
|
1607
1768
|
}
|
|
1608
1769
|
|
|
1609
1770
|
/**
|
|
@@ -1687,6 +1848,7 @@ export declare type LoftPlacement =
|
|
|
1687
1848
|
|
|
1688
1849
|
/**
|
|
1689
1850
|
* Explicitly matches identified component/contour/span topology across a family.
|
|
1851
|
+
*
|
|
1690
1852
|
* Every paired span uses the maximum physical subdivision count requested by any member.
|
|
1691
1853
|
* Cubics share a checked uniform parameter grid, including grids selected by exact paired requests.
|
|
1692
1854
|
* Input order and winding are preserved. Collapsed spans retain repeated logical slots, which
|
|
@@ -1734,7 +1896,7 @@ export declare function measureInternalCylindricalGearPairMotion(
|
|
|
1734
1896
|
* @returns Fresh immutable minimum and maximum XYZ tuples.
|
|
1735
1897
|
* @throws {@link GeometryError} When the mesh is structurally invalid.
|
|
1736
1898
|
*/
|
|
1737
|
-
export declare const meshBounds: (mesh: TriangleMesh) =>
|
|
1899
|
+
export declare const meshBounds: (mesh: TriangleMesh) => Bounds3Data;
|
|
1738
1900
|
|
|
1739
1901
|
/**
|
|
1740
1902
|
* Curated metric modeling dimensions for clearance holes, regular hex nuts,
|
|
@@ -1765,7 +1927,7 @@ export declare const METRIC_FASTENER_STANDARDS: Readonly<{
|
|
|
1765
1927
|
M12: MetricFastenerStandard;
|
|
1766
1928
|
}>;
|
|
1767
1929
|
|
|
1768
|
-
/**
|
|
1930
|
+
/** Supported metric fastener sizes. */
|
|
1769
1931
|
export declare type MetricFastenerSize =
|
|
1770
1932
|
"M2" | "M2.5" | "M3" | "M4" | "M5" | "M6" | "M8" | "M10" | "M12";
|
|
1771
1933
|
|
|
@@ -1825,23 +1987,25 @@ export declare interface ModelingLimits extends GeometrySamplingLimits {
|
|
|
1825
1987
|
|
|
1826
1988
|
/**
|
|
1827
1989
|
* Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`).
|
|
1990
|
+
*
|
|
1828
1991
|
* Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with
|
|
1829
1992
|
* `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively.
|
|
1830
1993
|
*/
|
|
1831
1994
|
export declare const normalize2: (
|
|
1832
|
-
vector:
|
|
1995
|
+
vector: Vector2Data,
|
|
1833
1996
|
epsilon?: number,
|
|
1834
|
-
) =>
|
|
1997
|
+
) => Vector2Data;
|
|
1835
1998
|
|
|
1836
1999
|
/**
|
|
1837
2000
|
* Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`).
|
|
2001
|
+
*
|
|
1838
2002
|
* Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with
|
|
1839
2003
|
* `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively.
|
|
1840
2004
|
*/
|
|
1841
2005
|
export declare const normalize3: (
|
|
1842
|
-
vector:
|
|
2006
|
+
vector: Vector3Data,
|
|
1843
2007
|
epsilon?: number,
|
|
1844
|
-
) =>
|
|
2008
|
+
) => Vector3Data;
|
|
1845
2009
|
|
|
1846
2010
|
/**
|
|
1847
2011
|
* Cleans and validates one closed loop.
|
|
@@ -1852,7 +2016,7 @@ export declare const normalize3: (
|
|
|
1852
2016
|
* returned unchanged when their winding and tolerance policy match.
|
|
1853
2017
|
*/
|
|
1854
2018
|
export declare function normalizeContour(
|
|
1855
|
-
input: readonly
|
|
2019
|
+
input: readonly Vector2Data[],
|
|
1856
2020
|
counterClockwise: boolean,
|
|
1857
2021
|
tolerance?: GeometryToleranceOptions,
|
|
1858
2022
|
): Contour;
|
|
@@ -1902,11 +2066,11 @@ export declare interface Path2 {
|
|
|
1902
2066
|
readonly dimension: 2;
|
|
1903
2067
|
/** Whether traversal includes the last-to-first edge. */
|
|
1904
2068
|
readonly closed: boolean;
|
|
1905
|
-
/** Returns frozen
|
|
1906
|
-
|
|
2069
|
+
/** Returns complete deeply frozen path data, including dimension and closure. Repeated calls do not allocate. */
|
|
2070
|
+
toData(): Path2Data;
|
|
1907
2071
|
/** Total sampled edge length in model units, including the closing edge when closed. */
|
|
1908
2072
|
length(): number;
|
|
1909
|
-
/**
|
|
2073
|
+
/** Immutable axis-aligned bounds, or undefined for an empty path. */
|
|
1910
2074
|
bounds(): Bounds2 | undefined;
|
|
1911
2075
|
/** Finds the nearest edge location; requires at least two vertices. */
|
|
1912
2076
|
closestPoint(point: Vector2Input): PathLocation<Vector2>;
|
|
@@ -1920,19 +2084,29 @@ export declare interface Path2 {
|
|
|
1920
2084
|
|
|
1921
2085
|
/**
|
|
1922
2086
|
* Snapshots finite XY coordinates as an immutable sampled path, independent of engine initialization.
|
|
2087
|
+
*
|
|
1923
2088
|
* Open paths may be empty or have one point; closed paths need three vertices and omit a duplicated
|
|
1924
2089
|
* seam. Repeated adjacent vertices are retained. No winding normalization or filling is performed.
|
|
1925
2090
|
* Malformed dimensions or topology throw INVALID_ARGUMENT; nonfinite coordinates or measurement
|
|
1926
2091
|
* overflow throw NON_FINITE_VALUE; exhausted allocation ceilings throw COMPLEXITY_LIMIT GeometryError.
|
|
1927
2092
|
* A path input retains its closure. Limits bound construction only; resampling takes its own limits.
|
|
2093
|
+
*
|
|
2094
|
+
* Use `toData()` for a frozen record that restores coordinates, closure, and dimension together.
|
|
1928
2095
|
*/
|
|
1929
2096
|
export declare function path2(input: Path2Input, options?: PathOptions): Path2;
|
|
1930
2097
|
|
|
1931
|
-
/**
|
|
1932
|
-
export declare
|
|
2098
|
+
/** Complete plain XY path representation, including topology and empty-path dimensional identity. */
|
|
2099
|
+
export declare interface Path2Data {
|
|
2100
|
+
/** Coordinate dimension, retained even when points is empty. */
|
|
2101
|
+
readonly dimension: 2;
|
|
2102
|
+
/** Frozen or caller-owned XY coordinates; closed paths omit a duplicated seam. */
|
|
2103
|
+
readonly points: readonly Vector2Data[];
|
|
2104
|
+
/** Whether traversal includes the last-to-first edge. */
|
|
2105
|
+
readonly closed: boolean;
|
|
2106
|
+
}
|
|
1933
2107
|
|
|
1934
|
-
/**
|
|
1935
|
-
export declare type Path2Input = Path2 | readonly Vector2Input[];
|
|
2108
|
+
/** A matching path value, complete plain path data, or a collection of vectors. */
|
|
2109
|
+
export declare type Path2Input = Path2 | Path2Data | readonly Vector2Input[];
|
|
1936
2110
|
|
|
1937
2111
|
/** Immutable directed XYZ polyline; it represents sampled edges, not an analytic curve. */
|
|
1938
2112
|
export declare interface Path3 {
|
|
@@ -1940,11 +2114,11 @@ export declare interface Path3 {
|
|
|
1940
2114
|
readonly dimension: 3;
|
|
1941
2115
|
/** Whether traversal includes the last-to-first edge. */
|
|
1942
2116
|
readonly closed: boolean;
|
|
1943
|
-
/** Returns frozen
|
|
1944
|
-
|
|
2117
|
+
/** Returns complete deeply frozen path data, including dimension and closure. Repeated calls do not allocate. */
|
|
2118
|
+
toData(): Path3Data;
|
|
1945
2119
|
/** Total sampled edge length in model units, including the closing edge when closed. */
|
|
1946
2120
|
length(): number;
|
|
1947
|
-
/**
|
|
2121
|
+
/** Immutable axis-aligned bounds, or undefined for an empty path. */
|
|
1948
2122
|
bounds(): Bounds3 | undefined;
|
|
1949
2123
|
/** Finds the nearest edge location; requires at least two vertices. */
|
|
1950
2124
|
closestPoint(point: Vector3Input): PathLocation<Vector3>;
|
|
@@ -1959,25 +2133,34 @@ export declare interface Path3 {
|
|
|
1959
2133
|
/**
|
|
1960
2134
|
* Snapshots finite XYZ coordinates as an immutable sampled path with the same closure, seam,
|
|
1961
2135
|
* allocation and error rules as path2. Analytic curves must be sampled explicitly first.
|
|
2136
|
+
*
|
|
2137
|
+
* Use `toData()` for a frozen record that restores coordinates, closure, and dimension together.
|
|
2138
|
+
*
|
|
2139
|
+
* @see {@link path2} for shared construction rules.
|
|
1962
2140
|
*/
|
|
1963
2141
|
export declare function path3(input: Path3Input, options?: PathOptions): Path3;
|
|
1964
2142
|
|
|
1965
|
-
/**
|
|
1966
|
-
|
|
1967
|
-
*/
|
|
1968
|
-
|
|
2143
|
+
/** Complete plain XYZ path representation, including topology and empty-path dimensional identity. */
|
|
2144
|
+
export declare interface Path3Data {
|
|
2145
|
+
/** Coordinate dimension, retained even when points is empty. */
|
|
2146
|
+
readonly dimension: 3;
|
|
2147
|
+
/** Frozen or caller-owned XYZ coordinates; closed paths omit a duplicated seam. */
|
|
2148
|
+
readonly points: readonly Vector3Data[];
|
|
2149
|
+
/** Whether traversal includes the last-to-first edge. */
|
|
2150
|
+
readonly closed: boolean;
|
|
2151
|
+
}
|
|
1969
2152
|
|
|
1970
|
-
/**
|
|
1971
|
-
export declare type Path3Input = Path3 | readonly Vector3Input[];
|
|
2153
|
+
/** A matching path value, complete plain path data, or a collection of vectors. */
|
|
2154
|
+
export declare type Path3Input = Path3 | Path3Data | readonly Vector3Input[];
|
|
1972
2155
|
|
|
1973
2156
|
/** Orthonormal right-handed frame sampled along a path. */
|
|
1974
2157
|
export declare interface PathFrame {
|
|
1975
2158
|
/** Unit path tangent. */
|
|
1976
|
-
readonly tangent:
|
|
2159
|
+
readonly tangent: Vector3Data;
|
|
1977
2160
|
/** Unit transported profile X axis. */
|
|
1978
|
-
readonly normal:
|
|
2161
|
+
readonly normal: Vector3Data;
|
|
1979
2162
|
/** Unit profile Y axis equal to tangent × normal. */
|
|
1980
|
-
readonly binormal:
|
|
2163
|
+
readonly binormal: Vector3Data;
|
|
1981
2164
|
}
|
|
1982
2165
|
|
|
1983
2166
|
/** Nearest location on a sampled boundary, rather than inside a filled shape or on an analytic curve. */
|
|
@@ -2000,7 +2183,7 @@ export declare interface PathLocation<Point extends Vector2 | Vector3> {
|
|
|
2000
2183
|
* @returns A finite guide vector that is not parallel to the local path tangent.
|
|
2001
2184
|
*/
|
|
2002
2185
|
export declare type PathNormalGuide = (
|
|
2003
|
-
point:
|
|
2186
|
+
point: Vector3Data,
|
|
2004
2187
|
index: number,
|
|
2005
2188
|
) => Vector3Input;
|
|
2006
2189
|
|
|
@@ -2023,7 +2206,9 @@ export declare interface PathPatternOptions {
|
|
|
2023
2206
|
}
|
|
2024
2207
|
|
|
2025
2208
|
/**
|
|
2026
|
-
* Equal physical arc-length placements along a sampled XYZ path.
|
|
2209
|
+
* Equal physical arc-length placements along a sampled XYZ path.
|
|
2210
|
+
*
|
|
2211
|
+
* Tangent orientation maps +Z
|
|
2027
2212
|
* onto the local path tangent; fixed orientation only translates. Closed paths omit a repeated seam.
|
|
2028
2213
|
* Explicit sampling ceilings bound both input points and output placements.
|
|
2029
2214
|
*/
|
|
@@ -2031,14 +2216,14 @@ export declare function pathPatternTransforms(
|
|
|
2031
2216
|
path: Path3Input,
|
|
2032
2217
|
options: PathPatternOptions,
|
|
2033
2218
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2034
|
-
): readonly
|
|
2219
|
+
): readonly Transform3Data[];
|
|
2035
2220
|
|
|
2036
2221
|
/** Position and unit tangent for one path-distributed item. */
|
|
2037
2222
|
export declare interface PathPlacement {
|
|
2038
2223
|
/** Interpolated point on the sampled path. */
|
|
2039
|
-
readonly position:
|
|
2224
|
+
readonly position: Vector3Data;
|
|
2040
2225
|
/** Unit tangent of the path segment containing the placement. */
|
|
2041
|
-
readonly tangent:
|
|
2226
|
+
readonly tangent: Vector3Data;
|
|
2042
2227
|
}
|
|
2043
2228
|
|
|
2044
2229
|
/** Equal arc-length sampling; the path itself owns whether its closing edge is included. */
|
|
@@ -2137,7 +2322,7 @@ export declare interface PlanarPatchQuality {
|
|
|
2137
2322
|
/** Smallest interior triangle angle in degrees. */
|
|
2138
2323
|
readonly minimumTriangleAngleDegrees: number;
|
|
2139
2324
|
/** Consistently wound unit normal for the patch plane. */
|
|
2140
|
-
readonly normal:
|
|
2325
|
+
readonly normal: Vector3Data;
|
|
2141
2326
|
/** Plane offset in `dot(normal, position) = planeOffset` form, in model units. */
|
|
2142
2327
|
readonly planeOffset: number;
|
|
2143
2328
|
/** Total patch area in squared model units. */
|
|
@@ -2149,11 +2334,14 @@ export declare interface PlanarPatchQuality {
|
|
|
2149
2334
|
}
|
|
2150
2335
|
|
|
2151
2336
|
/**
|
|
2152
|
-
* One
|
|
2337
|
+
* One filled two-dimensional polygon with an exterior and optional holes.
|
|
2153
2338
|
*
|
|
2154
2339
|
* `outer` is counter-clockwise and each hole is clockwise. Boundary arrays omit
|
|
2155
2340
|
* their duplicated closing point. Holes must lie inside `outer` and must not
|
|
2156
2341
|
* intersect each other or the exterior.
|
|
2342
|
+
*
|
|
2343
|
+
* @see {@link Contour}
|
|
2344
|
+
* @see {@link RegionData}
|
|
2157
2345
|
*/
|
|
2158
2346
|
export declare interface PolygonData {
|
|
2159
2347
|
/** Clockwise interior boundaries, each omitting its duplicated closing point. */
|
|
@@ -2172,31 +2360,60 @@ export declare interface PolylineResamplingOptions extends CurveSamplingOptions
|
|
|
2172
2360
|
readonly closed?: boolean;
|
|
2173
2361
|
}
|
|
2174
2362
|
|
|
2175
|
-
/**
|
|
2363
|
+
/**
|
|
2364
|
+
* Checks grid options, Float32 axis precision, and output limits; returns exact mesh buffer counts.
|
|
2365
|
+
*
|
|
2366
|
+
* This pure operation needs no engine and neither evaluates `height` nor allocates mesh buffers.
|
|
2367
|
+
* Successful preflight leaves height values, Float32 base storage, and generated mesh validity to
|
|
2368
|
+
* construction. `byteCount` covers position and index buffers, not total working memory.
|
|
2369
|
+
*
|
|
2370
|
+
* @see {@link heightfieldMesh}
|
|
2371
|
+
*/
|
|
2176
2372
|
export declare function preflightHeightfield(
|
|
2177
2373
|
options: HeightfieldOptions,
|
|
2178
2374
|
limits?: HeightfieldMeshLimits,
|
|
2179
2375
|
): HeightfieldPreflight;
|
|
2180
2376
|
|
|
2181
2377
|
/**
|
|
2182
|
-
*
|
|
2183
|
-
*
|
|
2378
|
+
* Checks thread dimensions, profile, end treatments, sampling, and conservative estimates against output limits.
|
|
2379
|
+
*
|
|
2380
|
+
* This pure operation needs no engine and constructs planning data without vertex or index buffers.
|
|
2381
|
+
* `circularSegments` is the selected count; row and triangle counts are conservative estimates.
|
|
2382
|
+
* Successful preflight leaves generated coordinate and topology checks to mesh construction.
|
|
2383
|
+
*
|
|
2384
|
+
* @see {@link helicalThreadSolidMesh}
|
|
2184
2385
|
*/
|
|
2185
2386
|
export declare function preflightHelicalThreadSolidMesh(
|
|
2186
2387
|
options: HelicalThreadSolidMeshOptions,
|
|
2187
2388
|
): HelicalThreadSolidMeshPreflight;
|
|
2188
2389
|
|
|
2189
|
-
/**
|
|
2390
|
+
/**
|
|
2391
|
+
* Resolves compensated cutter dimensions and checks extended mesh estimates against output limits.
|
|
2392
|
+
*
|
|
2393
|
+
* This pure operation uses explicit resolution and limits or package defaults, without an active
|
|
2394
|
+
* host execution. It includes the cutter's one-pitch extension beyond each requested face and
|
|
2395
|
+
* creates planning data without mesh buffers or native objects. Row and triangle counts are
|
|
2396
|
+
* estimates; mesh validity and native construction are checked later.
|
|
2397
|
+
*
|
|
2398
|
+
* @see {@link preflightHelicalThreadSolidMesh}
|
|
2399
|
+
* @see {@link helicalThreadSolidMesh}
|
|
2400
|
+
*/
|
|
2190
2401
|
export declare function preflightInternalThreadCutter(
|
|
2191
2402
|
options: InternalThreadCutterOptions,
|
|
2192
2403
|
): HelicalThreadSolidMeshPreflight;
|
|
2193
2404
|
|
|
2194
2405
|
/**
|
|
2195
|
-
*
|
|
2406
|
+
* Parses and validates bounded SVG input, constructing its normalized sampled region and diagnostics.
|
|
2407
|
+
*
|
|
2408
|
+
* This pure operation performs curve flattening, fill and stroke construction, and polygon union;
|
|
2409
|
+
* it needs no browser or engine. Geometry counts measure the returned region at the selected
|
|
2410
|
+
* resolution, rather than predicting later mesh allocation. The region may be empty; tiny-island
|
|
2411
|
+
* and short-edge indicators do not establish manufacturability or later solid validity.
|
|
2196
2412
|
*
|
|
2197
2413
|
* @param svg - Complete SVG XML source, limited to 256 KiB of UTF-8.
|
|
2198
2414
|
* @param options - Physical flattening and viewport-origin controls.
|
|
2199
2415
|
* @returns The canonical normalized region plus bounded source, topology, and safe-repair facts.
|
|
2416
|
+
* @throws {@link GeometryError} When XML, supported-feature, geometry, or complexity checks fail.
|
|
2200
2417
|
*/
|
|
2201
2418
|
export declare function preflightSvgRegion(
|
|
2202
2419
|
svg: string,
|
|
@@ -2204,14 +2421,29 @@ export declare function preflightSvgRegion(
|
|
|
2204
2421
|
): SvgRegionPreflight;
|
|
2205
2422
|
|
|
2206
2423
|
/**
|
|
2207
|
-
*
|
|
2208
|
-
*
|
|
2424
|
+
* Checks nut dimensions, chamfers, end-face wall, and the extended compensated cutter's allocation plan.
|
|
2425
|
+
*
|
|
2426
|
+
* This pure operation uses explicit resolution and limits or package defaults, without an active
|
|
2427
|
+
* host execution. It resolves body/cutter dimensions without mesh buffers or native objects.
|
|
2428
|
+
* `thread` contains conservative cutter estimates, excluding the body and Boolean result.
|
|
2429
|
+
* Successful preflight leaves mesh validity, native construction, and manufacturing fit to later checks.
|
|
2430
|
+
*
|
|
2431
|
+
* @see {@link preflightHelicalThreadSolidMesh}
|
|
2209
2432
|
*/
|
|
2210
2433
|
export declare function preflightThreadedNut(
|
|
2211
2434
|
options: ThreadedNutOptions,
|
|
2212
2435
|
): ThreadedNutPreflight;
|
|
2213
2436
|
|
|
2214
|
-
/**
|
|
2437
|
+
/**
|
|
2438
|
+
* Resolves compensated rod dimensions and checks conservative mesh estimates against output limits.
|
|
2439
|
+
*
|
|
2440
|
+
* This pure operation uses explicit resolution and limits or package defaults, without an active
|
|
2441
|
+
* host execution. It creates planning data without mesh buffers or native objects; returned row
|
|
2442
|
+
* and triangle counts are estimates. Mesh validity and native construction are checked later.
|
|
2443
|
+
*
|
|
2444
|
+
* @see {@link preflightHelicalThreadSolidMesh}
|
|
2445
|
+
* @see {@link helicalThreadSolidMesh}
|
|
2446
|
+
*/
|
|
2215
2447
|
export declare function preflightThreadedRod(
|
|
2216
2448
|
options: ThreadedRodOptions,
|
|
2217
2449
|
): HelicalThreadSolidMeshPreflight;
|
|
@@ -2266,7 +2498,13 @@ export declare interface PrintableThreadFitPolicy {
|
|
|
2266
2498
|
readonly maleRadialInset: number;
|
|
2267
2499
|
}
|
|
2268
2500
|
|
|
2269
|
-
/**
|
|
2501
|
+
/**
|
|
2502
|
+
* An explicit component/contour/span topology, before shared family sampling with matchProfiles.
|
|
2503
|
+
* Component, contour and span identities establish correspondence across a loft or sweep family.
|
|
2504
|
+
*
|
|
2505
|
+
* @see {@link CorrespondingProfile}
|
|
2506
|
+
* @see {@link matchProfiles}
|
|
2507
|
+
*/
|
|
2270
2508
|
export declare interface Profile {
|
|
2271
2509
|
/** Ordered components with explicit contour identities. */
|
|
2272
2510
|
readonly components: readonly ProfileComponent2[];
|
|
@@ -2282,7 +2520,13 @@ export declare interface ProfileComponent2 {
|
|
|
2282
2520
|
readonly holes: readonly ProfileContour2[];
|
|
2283
2521
|
}
|
|
2284
2522
|
|
|
2285
|
-
/**
|
|
2523
|
+
/**
|
|
2524
|
+
* An identified closed boundary of curve spans, before shared family sampling.
|
|
2525
|
+
* Outer winding is CCW and hole winding is CW. matchProfiles retains span identities in sampled contours.
|
|
2526
|
+
*
|
|
2527
|
+
* @see {@link Contour} for sampled point coordinates.
|
|
2528
|
+
* @see {@link CorrespondingContour} for sampled coordinates with correspondence metadata.
|
|
2529
|
+
*/
|
|
2286
2530
|
export declare interface ProfileContour2 {
|
|
2287
2531
|
/** Stable canonical lowercase identity; unique within the containing topology or output. */
|
|
2288
2532
|
readonly id: string;
|
|
@@ -2299,7 +2543,7 @@ export declare interface ProfiledEdgeTreatment {
|
|
|
2299
2543
|
* First coordinates decrease and second coordinates increase. Cylinder/extrusion ends use
|
|
2300
2544
|
* cap inset first, side setback second; planar corners use incoming then outgoing edges.
|
|
2301
2545
|
*/
|
|
2302
|
-
readonly profile: readonly
|
|
2546
|
+
readonly profile: readonly Vector2Data[];
|
|
2303
2547
|
}
|
|
2304
2548
|
|
|
2305
2549
|
/** An identified line, circular arc, or cubic Bézier between corresponding landmarks. */
|
|
@@ -2315,15 +2559,15 @@ export declare type ProfileSpan2 = {
|
|
|
2315
2559
|
/** Selects a straight span. */
|
|
2316
2560
|
readonly kind: "line";
|
|
2317
2561
|
/** Start point in millimetres. */
|
|
2318
|
-
readonly start:
|
|
2562
|
+
readonly start: Vector2Data;
|
|
2319
2563
|
/** End point in millimetres. */
|
|
2320
|
-
readonly end:
|
|
2564
|
+
readonly end: Vector2Data;
|
|
2321
2565
|
}
|
|
2322
2566
|
| {
|
|
2323
2567
|
/** Selects the geometric curve or span family. */
|
|
2324
2568
|
readonly kind: "arc";
|
|
2325
2569
|
/** Center point in millimetres. */
|
|
2326
|
-
readonly center:
|
|
2570
|
+
readonly center: Vector2Data;
|
|
2327
2571
|
/** Circular radius in millimetres. */
|
|
2328
2572
|
readonly radius: number;
|
|
2329
2573
|
/** Initial counterclockwise angle in degrees. */
|
|
@@ -2335,21 +2579,21 @@ export declare type ProfileSpan2 = {
|
|
|
2335
2579
|
/** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
|
|
2336
2580
|
readonly kind: "cubic";
|
|
2337
2581
|
/** Start point in millimetres. */
|
|
2338
|
-
readonly start:
|
|
2582
|
+
readonly start: Vector2Data;
|
|
2339
2583
|
/** First control point in millimetres. */
|
|
2340
|
-
readonly control1:
|
|
2584
|
+
readonly control1: Vector2Data;
|
|
2341
2585
|
/** Second control point in millimetres. */
|
|
2342
|
-
readonly control2:
|
|
2586
|
+
readonly control2: Vector2Data;
|
|
2343
2587
|
/** End point in millimetres. */
|
|
2344
|
-
readonly end:
|
|
2588
|
+
readonly end: Vector2Data;
|
|
2345
2589
|
}
|
|
2346
2590
|
);
|
|
2347
2591
|
|
|
2348
2592
|
/** Removes the component parallel to a normalized plane normal. */
|
|
2349
2593
|
export declare const projectOntoPlane3: (
|
|
2350
|
-
vector:
|
|
2351
|
-
normal:
|
|
2352
|
-
) =>
|
|
2594
|
+
vector: Vector3Data,
|
|
2595
|
+
normal: Vector3Data,
|
|
2596
|
+
) => Vector3Data;
|
|
2353
2597
|
|
|
2354
2598
|
/** Resolved pitch-line dimensions for a finite rack segment. */
|
|
2355
2599
|
export declare interface RackPitchDimensions {
|
|
@@ -2412,7 +2656,7 @@ export declare type RadialPatternOptions<Dimension extends 2 | 3 = 3> = {
|
|
|
2412
2656
|
/** Rotations about an explicit axis; angles use degrees and the first placement is identity. */
|
|
2413
2657
|
export declare function radialPatternTransforms(
|
|
2414
2658
|
options: RadialPatternOptions,
|
|
2415
|
-
): readonly
|
|
2659
|
+
): readonly Transform3Data[];
|
|
2416
2660
|
|
|
2417
2661
|
/** Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. */
|
|
2418
2662
|
export declare type RadialSizing = "vertex" | "face";
|
|
@@ -2428,7 +2672,11 @@ export declare interface RadialSizingOptions {
|
|
|
2428
2672
|
}
|
|
2429
2673
|
|
|
2430
2674
|
/**
|
|
2431
|
-
* Creates an immutable CCW rectangle
|
|
2675
|
+
* Creates an immutable sampled CCW rectangle boundary. Round radius zero is square; tangent saturated endpoints occur once.
|
|
2676
|
+
*
|
|
2677
|
+
* Use [rectangle](/docs/reference/model/rectangle) for a filled Section.
|
|
2678
|
+
*
|
|
2679
|
+
* @see {@link rectangleProfile} for identified edge/corner spans used by matchProfiles.
|
|
2432
2680
|
*
|
|
2433
2681
|
* @example Rounded rectangle outline
|
|
2434
2682
|
* ```ts
|
|
@@ -2444,7 +2692,7 @@ export declare function rectangleContour(
|
|
|
2444
2692
|
*/
|
|
2445
2693
|
export declare interface RectangleContourOptions {
|
|
2446
2694
|
/** Positive uniform size or explicit XY extents in millimetres. */
|
|
2447
|
-
readonly size: number |
|
|
2695
|
+
readonly size: number | Vector2Data;
|
|
2448
2696
|
/** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
|
|
2449
2697
|
readonly center?: boolean;
|
|
2450
2698
|
/** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
|
|
@@ -2472,6 +2720,11 @@ export declare type RectangleCornerTreatments = readonly [
|
|
|
2472
2720
|
/**
|
|
2473
2721
|
* Creates an identified rectangle whose edge/corner spans survive zero and saturated round radii. Outer winding is CCW.
|
|
2474
2722
|
*
|
|
2723
|
+
* Use [rectangle](/docs/reference/model/rectangle) for a filled Section.
|
|
2724
|
+
*
|
|
2725
|
+
* @see {@link matchProfiles} to sample a family with shared landmark correspondence.
|
|
2726
|
+
* @see {@link rectangleContour} for sampled boundary coordinates.
|
|
2727
|
+
*
|
|
2475
2728
|
* @example Retain rectangle landmarks
|
|
2476
2729
|
* ```ts
|
|
2477
2730
|
* rectangleProfile({ size: [30, 20], treatment: { kind: "round", radius: 3 } });
|
|
@@ -2500,9 +2753,14 @@ export declare interface RectangleProfileOptions extends RectangleContourOptions
|
|
|
2500
2753
|
export declare function regionArea(region: RegionData): number;
|
|
2501
2754
|
|
|
2502
2755
|
/** Returns finite axis-aligned bounds for a non-empty region. */
|
|
2503
|
-
export declare function regionBounds(region: RegionData):
|
|
2756
|
+
export declare function regionBounds(region: RegionData): Bounds2Data;
|
|
2504
2757
|
|
|
2505
|
-
/**
|
|
2758
|
+
/**
|
|
2759
|
+
* A two-dimensional region represented by disjoint filled polygons.
|
|
2760
|
+
* Each PolygonData owns one exterior and its holes; an empty region contains no material.
|
|
2761
|
+
*
|
|
2762
|
+
* @see {@link PolygonData}
|
|
2763
|
+
*/
|
|
2506
2764
|
export declare type RegionData = readonly PolygonData[];
|
|
2507
2765
|
|
|
2508
2766
|
/**
|
|
@@ -2515,7 +2773,7 @@ export declare type RegionData = readonly PolygonData[];
|
|
|
2515
2773
|
*/
|
|
2516
2774
|
export declare const regularPolygonContour: (
|
|
2517
2775
|
options: RegularPolygonContourOptions,
|
|
2518
|
-
) => readonly
|
|
2776
|
+
) => readonly Vector2Data[];
|
|
2519
2777
|
|
|
2520
2778
|
/** Exact regular polygon dimensions and counterclockwise degree rotation. */
|
|
2521
2779
|
export declare interface RegularPolygonContourOptions extends RadialSizingOptions {
|
|
@@ -2535,7 +2793,7 @@ export declare interface RegularPolygonContourOptions extends RadialSizingOption
|
|
|
2535
2793
|
* ```
|
|
2536
2794
|
*/
|
|
2537
2795
|
export declare function resamplePolyline2(
|
|
2538
|
-
path: readonly
|
|
2796
|
+
path: readonly Vector2Data[],
|
|
2539
2797
|
options?: PolylineResamplingOptions,
|
|
2540
2798
|
): SampledCurve2;
|
|
2541
2799
|
|
|
@@ -2551,7 +2809,7 @@ export declare function resamplePolyline2(
|
|
|
2551
2809
|
* ```
|
|
2552
2810
|
*/
|
|
2553
2811
|
export declare function resamplePolyline3(
|
|
2554
|
-
path: readonly
|
|
2812
|
+
path: readonly Vector3Data[],
|
|
2555
2813
|
options?: PolylineResamplingOptions,
|
|
2556
2814
|
): SampledCurve3;
|
|
2557
2815
|
|
|
@@ -2712,6 +2970,23 @@ export declare function resolveGeometryTolerance(
|
|
|
2712
2970
|
options?: GeometryToleranceOptions,
|
|
2713
2971
|
): ResolvedGeometryTolerance;
|
|
2714
2972
|
|
|
2973
|
+
/**
|
|
2974
|
+
* Resolves equal alternating knuckles along +X, centered at the origin, in millimetres.
|
|
2975
|
+
*
|
|
2976
|
+
* Both faces of each running pair use a common polygon count; face-sized bores contain the
|
|
2977
|
+
* shaft's complete rotational envelope. Adaptive sampling satisfies both face and vertex error
|
|
2978
|
+
* bounds; an insufficient ceiling rejects instead of reducing quality. Exact counts are intentional
|
|
2979
|
+
* facets. Zero allowances describe ideal contact, not a printable running fit.
|
|
2980
|
+
*
|
|
2981
|
+
* Rejects nonfinite or nonpositive dimensions, invalid mode/count combinations, exhausted axial
|
|
2982
|
+
* length, missing/excessive lift-off engagement, and nonpositive conservative faceted barrel walls.
|
|
2983
|
+
* Manufacturing minima, strength, mounting, retention, handedness, and motion remain caller policy.
|
|
2984
|
+
*/
|
|
2985
|
+
export declare function resolveKnuckleHinge(
|
|
2986
|
+
spec: KnuckleHingeSpec,
|
|
2987
|
+
options?: KnuckleHingeSamplingOptions,
|
|
2988
|
+
): KnuckleHingeDimensions;
|
|
2989
|
+
|
|
2715
2990
|
/** Resolves and validates a named or caller-defined print-fit policy. */
|
|
2716
2991
|
export declare function resolvePrintableThreadFitPolicy(
|
|
2717
2992
|
fit?: PrintableThreadFit | PrintableThreadFitPolicy,
|
|
@@ -2788,9 +3063,9 @@ export declare interface RevolveOptions extends CircularPrimitiveOptions {
|
|
|
2788
3063
|
* Throws `NON_FINITE_VALUE` for nonfinite coordinates, angles, or derived coordinates.
|
|
2789
3064
|
*/
|
|
2790
3065
|
export declare const rotate2: (
|
|
2791
|
-
vector:
|
|
3066
|
+
vector: Vector2Data,
|
|
2792
3067
|
degrees: number,
|
|
2793
|
-
) =>
|
|
3068
|
+
) => Vector2Data;
|
|
2794
3069
|
|
|
2795
3070
|
/**
|
|
2796
3071
|
* Creates a right-handed axis-angle rotation transform.
|
|
@@ -2801,10 +3076,10 @@ export declare const rotate2: (
|
|
|
2801
3076
|
* @returns A frozen row-major transform.
|
|
2802
3077
|
*/
|
|
2803
3078
|
export declare function rotationTransform3(
|
|
2804
|
-
axis:
|
|
3079
|
+
axis: Vector3Data,
|
|
2805
3080
|
angle: AxisAngleRotation3,
|
|
2806
3081
|
tolerance?: GeometryToleranceOptions,
|
|
2807
|
-
):
|
|
3082
|
+
): Transform3Data;
|
|
2808
3083
|
|
|
2809
3084
|
/**
|
|
2810
3085
|
* Replaces each vertex of a non-duplicated closed polyline with a sampled
|
|
@@ -2821,7 +3096,7 @@ export declare const roundClosedPolylinePath: (
|
|
|
2821
3096
|
radius: number,
|
|
2822
3097
|
segmentsPerCorner: number,
|
|
2823
3098
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2824
|
-
) => readonly
|
|
3099
|
+
) => readonly Vector3Data[];
|
|
2825
3100
|
|
|
2826
3101
|
/**
|
|
2827
3102
|
* A circular edge or corner roundover with explicit physical sampling.
|
|
@@ -2841,6 +3116,7 @@ export declare interface RowLayoutOptions {
|
|
|
2841
3116
|
|
|
2842
3117
|
/**
|
|
2843
3118
|
* Samples 2–32 connected line/cubic segments into a simple, nonzero-area, immutable CCW XY loop.
|
|
3119
|
+
*
|
|
2844
3120
|
* Physical scaling precedes adaptive curve sampling; the final end must repeat start exactly.
|
|
2845
3121
|
* Shared anchors and the closing seam are emitted once. Winding normalization may change the
|
|
2846
3122
|
* starting vertex. The sampled loop is checked for self-intersection and degeneracy by
|
|
@@ -2884,8 +3160,7 @@ export declare interface SampleContourOptions {
|
|
|
2884
3160
|
}
|
|
2885
3161
|
|
|
2886
3162
|
/** Samples a planar curve with the same guarantees and policy as spatial sampling.
|
|
2887
|
-
* @remarks
|
|
2888
|
-
* frozen. At stationary tangents, outgoing secants are preferred and endpoints use a backward fallback.
|
|
3163
|
+
* @remarks Returned planar points and tangents are copied and frozen. At stationary tangents, outgoing secants are preferred and endpoints use a backward fallback.
|
|
2889
3164
|
* @example
|
|
2890
3165
|
* ```ts
|
|
2891
3166
|
* const turn = sampleCurve2({kind: "arc", center: [0,0], radius: 10, sweepAngle: 90});
|
|
@@ -2925,9 +3200,9 @@ export declare function sampleCylindricalGearOutline(
|
|
|
2925
3200
|
/** Immutable planar points and corresponding directed unit tangents. */
|
|
2926
3201
|
export declare interface SampledCurve2 {
|
|
2927
3202
|
/** Curves retain both endpoints, including full-circle seams; closed resampling omits its seam. */
|
|
2928
|
-
readonly points: readonly
|
|
3203
|
+
readonly points: readonly Vector2Data[];
|
|
2929
3204
|
/** Directed unit vectors; stationary derivatives use the nearest usable direction. */
|
|
2930
|
-
readonly tangents: readonly
|
|
3205
|
+
readonly tangents: readonly Vector2Data[];
|
|
2931
3206
|
}
|
|
2932
3207
|
|
|
2933
3208
|
/**
|
|
@@ -2935,9 +3210,9 @@ export declare interface SampledCurve2 {
|
|
|
2935
3210
|
*/
|
|
2936
3211
|
export declare interface SampledCurve3 {
|
|
2937
3212
|
/** Curves retain both endpoints, including full-circle seams; closed resampling omits its seam. */
|
|
2938
|
-
readonly points: readonly
|
|
3213
|
+
readonly points: readonly Vector3Data[];
|
|
2939
3214
|
/** Directed unit vectors; stationary derivatives use the nearest usable direction. */
|
|
2940
|
-
readonly tangents: readonly
|
|
3215
|
+
readonly tangents: readonly Vector3Data[];
|
|
2941
3216
|
}
|
|
2942
3217
|
|
|
2943
3218
|
/** Sampled paths plus conventional pitch and lead measurements. */
|
|
@@ -2945,7 +3220,7 @@ export declare interface SampledThreadHelices {
|
|
|
2945
3220
|
/** Axial advance over one revolution, equal to `pitch * starts`. */
|
|
2946
3221
|
readonly lead: number;
|
|
2947
3222
|
/** One immutable sampled path for each thread start. */
|
|
2948
|
-
readonly paths: readonly
|
|
3223
|
+
readonly paths: readonly (readonly Vector3Data[])[];
|
|
2949
3224
|
/** Adjacent axial thread spacing in millimetres. */
|
|
2950
3225
|
readonly pitch: number;
|
|
2951
3226
|
/** Number of revolutions represented by each path. */
|
|
@@ -2954,6 +3229,7 @@ export declare interface SampledThreadHelices {
|
|
|
2954
3229
|
|
|
2955
3230
|
/**
|
|
2956
3231
|
* Creates `segments + 1` points including exact helix endpoints from finite positive dimensions.
|
|
3232
|
+
*
|
|
2957
3233
|
* Integrated weights must remain finite. The maxPathPoints ceiling defaults to 100000; excessive
|
|
2958
3234
|
* exact counts reject before evaluating axial weights or allocating sample arrays.
|
|
2959
3235
|
* Invalid inputs use GeometryError; exceptions thrown by axialWeight propagate unchanged.
|
|
@@ -2965,7 +3241,7 @@ export declare const sampleHelix: ({
|
|
|
2965
3241
|
segments,
|
|
2966
3242
|
limits,
|
|
2967
3243
|
axialWeight,
|
|
2968
|
-
}: SampleHelixOptions) => readonly
|
|
3244
|
+
}: SampleHelixOptions) => readonly Vector3Data[];
|
|
2969
3245
|
|
|
2970
3246
|
/** Options for a sampled +Z helix with millimetre dimensions. */
|
|
2971
3247
|
export declare interface SampleHelixOptions {
|
|
@@ -3010,10 +3286,11 @@ export declare function sampleInternalCylindricalGearSpaceOutline(
|
|
|
3010
3286
|
export declare function sampleRackToothPath(
|
|
3011
3287
|
spec: RackPitchSpec,
|
|
3012
3288
|
limits?: Partial<GeometrySamplingLimits>,
|
|
3013
|
-
):
|
|
3289
|
+
): readonly Vector2Data[];
|
|
3014
3290
|
|
|
3015
3291
|
/**
|
|
3016
3292
|
* Samples 1–31 line/cubic segments into a deeply immutable open [radius,height] polyline.
|
|
3293
|
+
*
|
|
3017
3294
|
* Anchors must progress strictly upward; nonnegative-radius cubic controls must have ordered
|
|
3018
3295
|
* heights between their endpoints. Cubics use de Casteljau subdivision with a conservative
|
|
3019
3296
|
* control-hull chord-error bound. Lines also obey the optional physical edge-length ceiling.
|
|
@@ -3036,7 +3313,7 @@ export declare function sampleRackToothPath(
|
|
|
3036
3313
|
export declare function sampleSideProfile(
|
|
3037
3314
|
curve: SideProfileCurve,
|
|
3038
3315
|
options?: SampleSideProfileOptions,
|
|
3039
|
-
): readonly
|
|
3316
|
+
): readonly Vector2Data[];
|
|
3040
3317
|
|
|
3041
3318
|
/** Physical scaling and bounded adaptive subdivision for an open profile. */
|
|
3042
3319
|
export declare interface SampleSideProfileOptions {
|
|
@@ -3077,9 +3354,9 @@ export declare function sampleThreadHelices(
|
|
|
3077
3354
|
|
|
3078
3355
|
/** Multiplies a vector by a dimensionless scalar. */
|
|
3079
3356
|
export declare const scale2: (
|
|
3080
|
-
vector:
|
|
3357
|
+
vector: Vector2Data,
|
|
3081
3358
|
scale: number,
|
|
3082
|
-
) =>
|
|
3359
|
+
) => Vector2Data;
|
|
3083
3360
|
|
|
3084
3361
|
/**
|
|
3085
3362
|
* Multiplies a vector by a dimensionless scalar.
|
|
@@ -3089,9 +3366,9 @@ export declare const scale2: (
|
|
|
3089
3366
|
* ```
|
|
3090
3367
|
*/
|
|
3091
3368
|
export declare const scale3: (
|
|
3092
|
-
vector:
|
|
3369
|
+
vector: Vector3Data,
|
|
3093
3370
|
scale: number,
|
|
3094
|
-
) =>
|
|
3371
|
+
) => Vector3Data;
|
|
3095
3372
|
|
|
3096
3373
|
/**
|
|
3097
3374
|
* Creates an immutable axis-aligned scale transform.
|
|
@@ -3102,9 +3379,7 @@ export declare const scale3: (
|
|
|
3102
3379
|
* @param factors - Finite, non-zero XYZ scale factors.
|
|
3103
3380
|
* @returns A frozen row-major transform.
|
|
3104
3381
|
*/
|
|
3105
|
-
export declare function scaleTransform3(
|
|
3106
|
-
factors: Vector3Tuple,
|
|
3107
|
-
): Transform3Matrix;
|
|
3382
|
+
export declare function scaleTransform3(factors: Vector3Data): Transform3Data;
|
|
3108
3383
|
|
|
3109
3384
|
/** An open radius/height outline; consumers own closure, mounting geometry, and wall policy. */
|
|
3110
3385
|
export declare interface SideProfileCurve {
|
|
@@ -3210,7 +3485,7 @@ export declare const starContour: (
|
|
|
3210
3485
|
points: number,
|
|
3211
3486
|
innerRadius?: number,
|
|
3212
3487
|
limits?: Partial<GeometrySamplingLimits>,
|
|
3213
|
-
) => readonly
|
|
3488
|
+
) => readonly Vector2Data[];
|
|
3214
3489
|
|
|
3215
3490
|
/** End-cap treatment for an open stroked path. */
|
|
3216
3491
|
export declare type StrokeCap = "butt" | "round" | "square";
|
|
@@ -3248,10 +3523,7 @@ export declare function strokeRegionData(
|
|
|
3248
3523
|
): RegionData;
|
|
3249
3524
|
|
|
3250
3525
|
/** Subtracts `b` from `a` component-wise. */
|
|
3251
|
-
export declare const subtract2: (
|
|
3252
|
-
a: Vector2Tuple,
|
|
3253
|
-
b: Vector2Tuple,
|
|
3254
|
-
) => Vector2Tuple;
|
|
3526
|
+
export declare const subtract2: (a: Vector2Data, b: Vector2Data) => Vector2Data;
|
|
3255
3527
|
|
|
3256
3528
|
/**
|
|
3257
3529
|
* Subtracts `b` from `a`.
|
|
@@ -3260,10 +3532,7 @@ export declare const subtract2: (
|
|
|
3260
3532
|
* subtract3([4, 5, 6], [1, 2, 3]); // [3, 3, 3]
|
|
3261
3533
|
* ```
|
|
3262
3534
|
*/
|
|
3263
|
-
export declare const subtract3: (
|
|
3264
|
-
a: Vector3Tuple,
|
|
3265
|
-
b: Vector3Tuple,
|
|
3266
|
-
) => Vector3Tuple;
|
|
3535
|
+
export declare const subtract3: (a: Vector3Data, b: Vector3Data) => Vector3Data;
|
|
3267
3536
|
|
|
3268
3537
|
/** Sampling controls for deterministic SVG-to-region conversion. */
|
|
3269
3538
|
export declare interface SvgImportOptions {
|
|
@@ -3280,7 +3549,7 @@ export declare interface SvgImportOptions {
|
|
|
3280
3549
|
readonly origin?: "center" | "document";
|
|
3281
3550
|
}
|
|
3282
3551
|
|
|
3283
|
-
/**
|
|
3552
|
+
/** Normalized sampled SVG region plus bounded source, geometry, and safe-repair diagnostics. */
|
|
3284
3553
|
export declare interface SvgRegionPreflight {
|
|
3285
3554
|
/** Physical and final-topology measurements of `region`. */
|
|
3286
3555
|
readonly geometry: SvgRegionPreflightGeometryMetrics;
|
|
@@ -3297,7 +3566,7 @@ export declare interface SvgRegionPreflightGeometryMetrics {
|
|
|
3297
3566
|
/** Filled area in square millimetres. */
|
|
3298
3567
|
readonly area: number;
|
|
3299
3568
|
/** Millimetre bounds, or `null` when no painted region remains. */
|
|
3300
|
-
readonly bounds:
|
|
3569
|
+
readonly bounds: Bounds2Data | null;
|
|
3301
3570
|
/** Disconnected filled polygons in the final region. */
|
|
3302
3571
|
readonly componentCount: number;
|
|
3303
3572
|
/** Exterior and hole boundary count in the final region. */
|
|
@@ -3482,7 +3751,7 @@ export declare interface ThreadedNutOptions extends Omit<
|
|
|
3482
3751
|
readonly width: number;
|
|
3483
3752
|
}
|
|
3484
3753
|
|
|
3485
|
-
/**
|
|
3754
|
+
/** Resolved body and end-face dimensions plus conservative allocation estimates for the thread cutter. */
|
|
3486
3755
|
export declare interface ThreadedNutPreflight {
|
|
3487
3756
|
/** Polygon segment count used by the nut body. */
|
|
3488
3757
|
readonly bodySegments: number;
|
|
@@ -3494,7 +3763,7 @@ export declare interface ThreadedNutPreflight {
|
|
|
3494
3763
|
readonly minimumBodyFaceInradius: number;
|
|
3495
3764
|
/** Smallest radial wall left between the body and cutter at either requested face. */
|
|
3496
3765
|
readonly minimumFaceWall: number;
|
|
3497
|
-
/** Conservative allocation
|
|
3766
|
+
/** Conservative allocation estimates for the extended cutter; excludes the body and Boolean result. */
|
|
3498
3767
|
readonly thread: HelicalThreadSolidMeshPreflight;
|
|
3499
3768
|
/** Start-aligned circular facet count used by the compensated thread cutter. */
|
|
3500
3769
|
readonly threadCircularSegments: number;
|
|
@@ -3604,7 +3873,7 @@ export declare interface ThreadProfile {
|
|
|
3604
3873
|
/** Adjacent axial thread spacing in millimetres. */
|
|
3605
3874
|
readonly pitch: number;
|
|
3606
3875
|
/** Immutable open `[axial, radial]` path spanning one pitch. */
|
|
3607
|
-
readonly points: readonly
|
|
3876
|
+
readonly points: readonly Vector2Data[];
|
|
3608
3877
|
/** Axial width of the flat at the minor envelope. */
|
|
3609
3878
|
readonly rootFlatWidth: number;
|
|
3610
3879
|
}
|
|
@@ -3682,32 +3951,33 @@ export declare interface Transform2 {
|
|
|
3682
3951
|
/** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
|
|
3683
3952
|
applyNormal(normal: Vector2Input): Vector2;
|
|
3684
3953
|
/** Returns the frozen canonical row-major 3x3 matrix for interchange. */
|
|
3685
|
-
|
|
3954
|
+
toData(): Transform2Data;
|
|
3686
3955
|
/** Embeds this placement in XYZ, leaving Z unchanged, for solids and 3D paths. */
|
|
3687
3956
|
to3D(): Transform3;
|
|
3688
3957
|
}
|
|
3689
3958
|
|
|
3690
3959
|
/**
|
|
3691
|
-
* Creates an immutable XY transform, identity by default.
|
|
3960
|
+
* Creates an immutable XY transform, identity by default.
|
|
3961
|
+
*
|
|
3962
|
+
* Values and data are copied and validated.
|
|
3692
3963
|
* Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ.
|
|
3693
3964
|
* Zero scales and singular matrices throw GeometryError; negative scales reflect.
|
|
3694
3965
|
*
|
|
3966
|
+
* Use `toData()` for frozen matrix interchange.
|
|
3967
|
+
*
|
|
3695
3968
|
* @example
|
|
3696
3969
|
* ```ts
|
|
3697
3970
|
* const placement = transform2().rotate(90).translate([10, 0]);
|
|
3698
|
-
* placement.applyPoint([1, 0]).
|
|
3971
|
+
* placement.applyPoint([1, 0]).toData(); // approximately [10, 1]
|
|
3699
3972
|
* ```
|
|
3700
3973
|
*/
|
|
3701
|
-
export declare function transform2(
|
|
3702
|
-
|
|
3703
|
-
/** An immutable XY transform or its canonical row-major matrix for interchange. */
|
|
3704
|
-
export declare type Transform2Input = Transform2 | Transform2Matrix;
|
|
3974
|
+
export declare function transform2(input?: Transform2Input): Transform2;
|
|
3705
3975
|
|
|
3706
3976
|
/**
|
|
3707
3977
|
* A row-major affine 3x3 XY matrix applied to column vectors.
|
|
3708
3978
|
* Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`.
|
|
3709
3979
|
*/
|
|
3710
|
-
export declare type
|
|
3980
|
+
export declare type Transform2Data = readonly [
|
|
3711
3981
|
m00: number,
|
|
3712
3982
|
m01: number,
|
|
3713
3983
|
m02: number,
|
|
@@ -3719,6 +3989,9 @@ export declare type Transform2Matrix = readonly [
|
|
|
3719
3989
|
m22: number,
|
|
3720
3990
|
];
|
|
3721
3991
|
|
|
3992
|
+
/** An immutable XY transform or its canonical row-major matrix for interchange. */
|
|
3993
|
+
export declare type Transform2Input = Transform2 | Transform2Data;
|
|
3994
|
+
|
|
3722
3995
|
/** Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. */
|
|
3723
3996
|
export declare interface Transform3 {
|
|
3724
3997
|
/** Applies a translation in model units after this placement. */
|
|
@@ -3744,27 +4017,29 @@ export declare interface Transform3 {
|
|
|
3744
4017
|
/** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
|
|
3745
4018
|
applyNormal(normal: Vector3Input): Vector3;
|
|
3746
4019
|
/** Returns the frozen canonical row-major 4x4 matrix for interchange. */
|
|
3747
|
-
|
|
4020
|
+
toData(): Transform3Data;
|
|
3748
4021
|
/** Restricts to XY; throws GeometryError for a plane change or singular XY restriction. */
|
|
3749
4022
|
to2D(): Transform2;
|
|
3750
4023
|
}
|
|
3751
4024
|
|
|
3752
4025
|
/**
|
|
3753
|
-
* Creates an immutable XYZ transform, identity by default.
|
|
4026
|
+
* Creates an immutable XYZ transform, identity by default.
|
|
4027
|
+
*
|
|
4028
|
+
* Values and data are copied and validated.
|
|
3754
4029
|
* Calls apply in written order; rotations use degrees and pivots use current world coordinates.
|
|
3755
4030
|
* Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError.
|
|
3756
4031
|
* Use frameTransform3(frame) as the input for existing orthonormal frame placement.
|
|
3757
4032
|
*
|
|
4033
|
+
* Use `toData()` for frozen matrix interchange.
|
|
4034
|
+
* [composeTransform3](/docs/reference/geometry/composeTransform3) takes matrices in after, before order.
|
|
4035
|
+
*
|
|
3758
4036
|
* @example
|
|
3759
4037
|
* ```ts
|
|
3760
4038
|
* const placement = transform3().rotate([0, 0, 90]).translate([10, 0, 0]);
|
|
3761
|
-
* placement.applyPoint([1, 0, 0]).
|
|
4039
|
+
* placement.applyPoint([1, 0, 0]).toData(); // approximately [10, 1, 0]
|
|
3762
4040
|
* ```
|
|
3763
4041
|
*/
|
|
3764
|
-
export declare function transform3(
|
|
3765
|
-
|
|
3766
|
-
/** An immutable XYZ transform or its canonical row-major matrix for interchange. */
|
|
3767
|
-
export declare type Transform3Input = Transform3 | Transform3Matrix;
|
|
4042
|
+
export declare function transform3(input?: Transform3Input): Transform3;
|
|
3768
4043
|
|
|
3769
4044
|
/**
|
|
3770
4045
|
* A row-major affine 4x4 matrix applied to column vectors.
|
|
@@ -3772,7 +4047,7 @@ export declare type Transform3Input = Transform3 | Transform3Matrix;
|
|
|
3772
4047
|
* Translation occupies indices 3, 7, and 11. The final row must be
|
|
3773
4048
|
* `[0, 0, 0, 1]` within the active geometry tolerance.
|
|
3774
4049
|
*/
|
|
3775
|
-
export declare type
|
|
4050
|
+
export declare type Transform3Data = readonly [
|
|
3776
4051
|
m00: number,
|
|
3777
4052
|
m01: number,
|
|
3778
4053
|
m02: number,
|
|
@@ -3791,6 +4066,9 @@ export declare type Transform3Matrix = readonly [
|
|
|
3791
4066
|
m33: number,
|
|
3792
4067
|
];
|
|
3793
4068
|
|
|
4069
|
+
/** An immutable XYZ transform or its canonical row-major matrix for interchange. */
|
|
4070
|
+
export declare type Transform3Input = Transform3 | Transform3Data;
|
|
4071
|
+
|
|
3794
4072
|
/**
|
|
3795
4073
|
* Returns the determinant of a transform's linear 3x3 component.
|
|
3796
4074
|
*
|
|
@@ -3800,7 +4078,7 @@ export declare type Transform3Matrix = readonly [
|
|
|
3800
4078
|
* @returns Signed linear determinant.
|
|
3801
4079
|
*/
|
|
3802
4080
|
export declare function transformDeterminant3(
|
|
3803
|
-
transform:
|
|
4081
|
+
transform: Transform3Data,
|
|
3804
4082
|
): number;
|
|
3805
4083
|
|
|
3806
4084
|
/**
|
|
@@ -3835,8 +4113,8 @@ export declare function transformTriangleMesh(
|
|
|
3835
4113
|
* @returns A frozen row-major transform.
|
|
3836
4114
|
*/
|
|
3837
4115
|
export declare function translationTransform3(
|
|
3838
|
-
offset:
|
|
3839
|
-
):
|
|
4116
|
+
offset: Vector3Data,
|
|
4117
|
+
): Transform3Data;
|
|
3840
4118
|
|
|
3841
4119
|
/** Trapezoidal thread profile with a configurable included angle. */
|
|
3842
4120
|
export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
@@ -3888,7 +4166,7 @@ export declare interface TriangleMeshAnalysisOptions extends TriangleMeshValidat
|
|
|
3888
4166
|
*/
|
|
3889
4167
|
export declare interface TriangleMeshMeasurements {
|
|
3890
4168
|
/** Axis-aligned bounds. */
|
|
3891
|
-
readonly bounds:
|
|
4169
|
+
readonly bounds: Bounds3Data;
|
|
3892
4170
|
/** Signed enclosed volume; positive values correspond to outward winding. */
|
|
3893
4171
|
readonly signedVolume: number;
|
|
3894
4172
|
/** Sum of all triangle areas in squared model units. */
|
|
@@ -3944,7 +4222,7 @@ export declare interface TriangleMeshQualityReport {
|
|
|
3944
4222
|
/** Immutable deterministic measurements for a closed, oriented triangle mesh. */
|
|
3945
4223
|
export declare interface TriangleMeshSignature {
|
|
3946
4224
|
/** Axis-aligned bounds quantized by `tolerances.position`. */
|
|
3947
|
-
readonly bounds:
|
|
4225
|
+
readonly bounds: Bounds3Data;
|
|
3948
4226
|
/** Number of edge-connected closed boundary shells; cavities count separately. */
|
|
3949
4227
|
readonly connectedComponentCount: number;
|
|
3950
4228
|
/** Total orientable genus across all connected components. */
|
|
@@ -4030,6 +4308,7 @@ export declare interface TubeOptions
|
|
|
4030
4308
|
|
|
4031
4309
|
/**
|
|
4032
4310
|
* Checks closed indexed topology, triangle intersections, and alternating nested shell orientation.
|
|
4311
|
+
*
|
|
4033
4312
|
* Outward exterior shells and inward cavity shells are accepted. Separate shells must not touch,
|
|
4034
4313
|
* intersect, or overlap as material. Indexed neighbours may share their own vertex or edge.
|
|
4035
4314
|
*
|
|
@@ -4056,9 +4335,9 @@ export declare function validateSolidMesh(
|
|
|
4056
4335
|
* @throws {@link GeometryError} For non-finite, non-affine, or singular matrices.
|
|
4057
4336
|
*/
|
|
4058
4337
|
export declare function validateTransform3(
|
|
4059
|
-
transform:
|
|
4338
|
+
transform: Transform3Data,
|
|
4060
4339
|
tolerance?: GeometryToleranceOptions,
|
|
4061
|
-
):
|
|
4340
|
+
): Transform3Data;
|
|
4062
4341
|
|
|
4063
4342
|
/**
|
|
4064
4343
|
* Validates mesh buffers, indices, triangle area, and optionally closed topology.
|
|
@@ -4102,22 +4381,26 @@ export declare interface Vector2 {
|
|
|
4102
4381
|
/** Returns Euclidean distance to another vector in the same coordinate units. */
|
|
4103
4382
|
distance(other: Vector2Input): number;
|
|
4104
4383
|
/** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
|
|
4105
|
-
|
|
4384
|
+
toData(): Vector2Data;
|
|
4106
4385
|
}
|
|
4107
4386
|
|
|
4108
4387
|
/**
|
|
4109
4388
|
* Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates.
|
|
4389
|
+
*
|
|
4110
4390
|
* Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
|
|
4111
4391
|
* and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
4112
4392
|
* Use transform2().applyDirection(value) for rotations and nonuniform scaling.
|
|
4393
|
+
*
|
|
4394
|
+
* Use `toData()` for frozen tuple interchange, or
|
|
4395
|
+
* [normalize2](/docs/reference/geometry/normalize2) for tuple-based normalization in numerical loops.
|
|
4113
4396
|
*/
|
|
4114
4397
|
export declare function vector2(input: Vector2Input): Vector2;
|
|
4115
4398
|
|
|
4116
|
-
/** An XY tuple or immutable fluent vector accepted by vector operations. */
|
|
4117
|
-
export declare type Vector2Input = Vector2Tuple | Vector2;
|
|
4118
|
-
|
|
4119
4399
|
/** A two-dimensional Cartesian vector or point. */
|
|
4120
|
-
export declare type
|
|
4400
|
+
export declare type Vector2Data = readonly [x: number, y: number];
|
|
4401
|
+
|
|
4402
|
+
/** An XY tuple or immutable fluent vector accepted by vector operations. */
|
|
4403
|
+
export declare type Vector2Input = Vector2Data | Vector2;
|
|
4121
4404
|
|
|
4122
4405
|
/** Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. */
|
|
4123
4406
|
export declare interface Vector3 {
|
|
@@ -4146,15 +4429,19 @@ export declare interface Vector3 {
|
|
|
4146
4429
|
/** Returns Euclidean distance to another vector in the same coordinate units. */
|
|
4147
4430
|
distance(other: Vector3Input): number;
|
|
4148
4431
|
/** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
|
|
4149
|
-
|
|
4432
|
+
toData(): Vector3Data;
|
|
4150
4433
|
}
|
|
4151
4434
|
|
|
4152
4435
|
/**
|
|
4153
4436
|
* Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates.
|
|
4437
|
+
*
|
|
4154
4438
|
* Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
|
|
4155
4439
|
* and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
4156
4440
|
* Use transform3().applyDirection(value) for rotations and nonuniform scaling.
|
|
4157
4441
|
*
|
|
4442
|
+
* Use `toData()` for frozen tuple interchange, or
|
|
4443
|
+
* [normalize3](/docs/reference/geometry/normalize3) for tuple-based normalization in numerical loops.
|
|
4444
|
+
*
|
|
4158
4445
|
* @example
|
|
4159
4446
|
* ```ts
|
|
4160
4447
|
* const direction = vector3([1, 2, 3]).add([4, 0, 0]).normalize().scale(10);
|
|
@@ -4163,11 +4450,11 @@ export declare interface Vector3 {
|
|
|
4163
4450
|
*/
|
|
4164
4451
|
export declare function vector3(input: Vector3Input): Vector3;
|
|
4165
4452
|
|
|
4166
|
-
/** An XYZ tuple or immutable fluent vector accepted by vector operations. */
|
|
4167
|
-
export declare type Vector3Input = Vector3Tuple | Vector3;
|
|
4168
|
-
|
|
4169
4453
|
/** A three-dimensional Cartesian vector or point. */
|
|
4170
|
-
export declare type
|
|
4454
|
+
export declare type Vector3Data = readonly [x: number, y: number, z: number];
|
|
4455
|
+
|
|
4456
|
+
/** An XYZ tuple or immutable fluent vector accepted by vector operations. */
|
|
4457
|
+
export declare type Vector3Input = Vector3Data | Vector3;
|
|
4171
4458
|
|
|
4172
4459
|
/** A circular baseline centered at the XY origin, with rigid shaped glyph groups. */
|
|
4173
4460
|
export declare interface VectorTextArcBaseline {
|
|
@@ -4208,7 +4495,7 @@ export declare interface VectorTextLayoutOptions extends VectorTextOptions {
|
|
|
4208
4495
|
/** Text measurements from the same immutable layout that supplies geometry and SVG outlines. */
|
|
4209
4496
|
export declare interface VectorTextMetrics {
|
|
4210
4497
|
/** Visible curve bounds after alignment, or null when the text has no ink. */
|
|
4211
|
-
readonly bounds:
|
|
4498
|
+
readonly bounds: Bounds2Data | null;
|
|
4212
4499
|
/** Unaligned logical advance and negative baseline displacement in mm; arcs retain [arc length, 0]. */
|
|
4213
4500
|
readonly advance: readonly [number, number];
|
|
4214
4501
|
/** Maximum logical line advance in millimetres, including spaces; arc length on circular baselines. */
|