@metamesh/modeling 0.13.0 → 0.14.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 +13 -0
- package/README.md +52 -9
- package/dist/api/engine.d.ts +3 -3
- package/dist/api/geometry.d.ts +521 -185
- package/dist/api/index.d.ts +414 -145
- package/dist/api/text.d.ts +3 -3
- package/dist/docs/guides/concepts.md +114 -11
- package/dist/docs/guides/fonts.md +8 -0
- package/dist/docs/guides/fundamentals.md +4 -2
- package/dist/docs/guides/generation.md +6 -4
- package/dist/docs/guides/hosting.md +7 -4
- package/dist/docs/guides/recipes.md +52 -2
- package/dist/docs/manifest.json +1246 -394
- 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 +1 -1
- package/dist/docs/reference/engine/SessionOptions.md +1 -1
- package/dist/docs/reference/engine/SnapshotPart.md +3 -3
- package/dist/docs/reference/engine/categories/host-lifecycle.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/geometry/AcmeThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/AlignedCircularSegmentsOptions.md +14 -1
- package/dist/docs/reference/geometry/Anchor3.md +9 -5
- package/dist/docs/reference/geometry/ArcCurve2.md +3 -3
- package/dist/docs/reference/geometry/ArcCurve3.md +5 -5
- package/dist/docs/reference/geometry/AttachTransformOptions.md +5 -1
- package/dist/docs/reference/geometry/AxisAngleRotation3.md +6 -1
- package/dist/docs/reference/geometry/Bounds2.md +4 -4
- package/dist/docs/reference/geometry/Bounds3.md +4 -4
- package/dist/docs/reference/geometry/BoundsFit2.md +3 -3
- package/dist/docs/reference/geometry/BoundsFit3.md +3 -3
- package/dist/docs/reference/geometry/BoundsFitOptions.md +1 -1
- package/dist/docs/reference/geometry/BoundsFromSizeOptions.md +1 -1
- package/dist/docs/reference/geometry/BoxAnchorFace.md +8 -1
- package/dist/docs/reference/geometry/BoxAnchorOptions.md +8 -4
- package/dist/docs/reference/geometry/BoxEdge.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeSelection.md +1 -1
- package/dist/docs/reference/geometry/BoxEdgeTreatments.md +1 -1
- package/dist/docs/reference/geometry/BoxOptions.md +3 -3
- package/dist/docs/reference/geometry/ButtressPressureFlankSide.md +1 -1
- package/dist/docs/reference/geometry/ButtressThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ChamferedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/CircleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularPrimitiveOptions.md +1 -1
- package/dist/docs/reference/geometry/CircularResolutionOptions.md +107 -0
- package/dist/docs/reference/geometry/ClearanceHoleDimensions.md +1 -1
- package/dist/docs/reference/geometry/ClearanceHoleFit.md +1 -1
- package/dist/docs/reference/geometry/ClosestPointOnPathOptions.md +34 -0
- package/dist/docs/reference/geometry/ClosestPointOnPathResult.md +65 -0
- package/dist/docs/reference/geometry/CompensatedThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/Contour.md +3 -3
- package/dist/docs/reference/geometry/ContourCurve.md +1 -1
- package/dist/docs/reference/geometry/ContourPoint.md +1 -1
- package/dist/docs/reference/geometry/ContourSegment.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingComponent.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingContour.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfile.md +1 -1
- package/dist/docs/reference/geometry/CorrespondingProfileStation.md +1 -1
- package/dist/docs/reference/geometry/CubicBezierCurve2.md +6 -6
- package/dist/docs/reference/geometry/CubicBezierCurve3.md +6 -6
- package/dist/docs/reference/geometry/Curve2.md +1 -1
- package/dist/docs/reference/geometry/Curve3.md +1 -1
- package/dist/docs/reference/geometry/CurveSamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/CustomThreadProfileSpec.md +3 -3
- package/dist/docs/reference/geometry/CylinderAnchorFace.md +8 -1
- package/dist/docs/reference/geometry/CylinderAnchorOptions.md +7 -3
- package/dist/docs/reference/geometry/CylinderOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearDimensions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearMeshKind.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearOutlineOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairDimensions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionOptions.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairMotionReport.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearPairSpec.md +1 -1
- package/dist/docs/reference/geometry/CylindricalGearSpec.md +1 -1
- package/dist/docs/reference/geometry/DEFAULT_GEOMETRY_TOLERANCE.md +1 -1
- package/dist/docs/reference/geometry/EdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/EllipseContourOptions.md +3 -3
- package/dist/docs/reference/geometry/EndTreatments.md +1 -1
- package/dist/docs/reference/geometry/ExtrudeOptions.md +3 -3
- package/dist/docs/reference/geometry/ExtrusionSamplingOptions.md +3 -3
- package/dist/docs/reference/geometry/FittedTextLayout.md +1 -1
- package/dist/docs/reference/geometry/Frame3.md +6 -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 +10 -1
- package/dist/docs/reference/geometry/GeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/GeometryToleranceOptions.md +1 -1
- package/dist/docs/reference/geometry/GridPatternOptions.md +4 -4
- package/dist/docs/reference/geometry/HeightfieldMeshLimits.md +1 -1
- package/dist/docs/reference/geometry/HeightfieldOptions.md +5 -5
- package/dist/docs/reference/geometry/HeightfieldPreflight.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadRidgeMeshOptions.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshOptions.md +1 -1
- package/dist/docs/reference/geometry/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/geometry/IDENTITY_TRANSFORM3.md +7 -3
- package/dist/docs/reference/geometry/InternalThreadCutterOptions.md +1 -1
- package/dist/docs/reference/geometry/LineCurve2.md +4 -4
- package/dist/docs/reference/geometry/LineCurve3.md +4 -4
- package/dist/docs/reference/geometry/LinearPatternOptions.md +3 -3
- package/dist/docs/reference/geometry/LoftCorrespondence.md +1 -1
- package/dist/docs/reference/geometry/LoftMeshStation.md +1 -1
- package/dist/docs/reference/geometry/LoftOptions.md +1 -1
- package/dist/docs/reference/geometry/LoftPlacement.md +1 -1
- package/dist/docs/reference/geometry/METRIC_FASTENER_STANDARDS.md +1 -1
- package/dist/docs/reference/geometry/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerSize.md +1 -1
- package/dist/docs/reference/geometry/MetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/MetricHexNutDimensions.md +1 -1
- package/dist/docs/reference/geometry/MetricSocketCapHeadDimensions.md +1 -1
- package/dist/docs/reference/geometry/ModelingLimits.md +1 -1
- package/dist/docs/reference/geometry/PRINTABLE_THREAD_FIT_POLICIES.md +1 -1
- package/dist/docs/reference/geometry/Path2.md +3 -3
- package/dist/docs/reference/geometry/Path3.md +3 -3
- package/dist/docs/reference/geometry/PathFrame.md +5 -5
- package/dist/docs/reference/geometry/PathNormalGuide.md +5 -5
- package/dist/docs/reference/geometry/PathPatternOptions.md +1 -1
- package/dist/docs/reference/geometry/PathPlacement.md +4 -4
- package/dist/docs/reference/geometry/Pivot2Options.md +26 -0
- package/dist/docs/reference/geometry/Pivot3Options.md +26 -0
- package/dist/docs/reference/geometry/PlanarMeshOptimizationFallbackReason.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationOptions.md +1 -1
- package/dist/docs/reference/geometry/PlanarMeshOptimizationResult.md +1 -1
- package/dist/docs/reference/geometry/PlanarPatchQuality.md +3 -3
- package/dist/docs/reference/geometry/{Polygon.md → PolygonData.md} +2 -2
- package/dist/docs/reference/geometry/PolylineResamplingOptions.md +1 -1
- package/dist/docs/reference/geometry/PrimitivePlacement.md +1 -1
- package/dist/docs/reference/geometry/PrimitivePlacementOptions.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/geometry/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/Profile.md +1 -1
- package/dist/docs/reference/geometry/ProfileComponent2.md +1 -1
- package/dist/docs/reference/geometry/ProfileContour2.md +1 -1
- package/dist/docs/reference/geometry/ProfileSpan2.md +3 -3
- package/dist/docs/reference/geometry/ProfiledEdgeTreatment.md +3 -3
- package/dist/docs/reference/geometry/RackPitchDimensions.md +1 -1
- package/dist/docs/reference/geometry/RackPitchSpec.md +1 -1
- package/dist/docs/reference/geometry/RadialPatternOptions.md +4 -4
- package/dist/docs/reference/geometry/RadialSizing.md +1 -1
- package/dist/docs/reference/geometry/RadialSizingOptions.md +1 -1
- package/dist/docs/reference/geometry/RectangleContourOptions.md +3 -3
- package/dist/docs/reference/geometry/RectangleCornerTreatment.md +1 -1
- package/dist/docs/reference/geometry/RectangleCornerTreatments.md +1 -1
- package/dist/docs/reference/geometry/RectangleProfileOptions.md +3 -3
- package/dist/docs/reference/geometry/RegionData.md +14 -0
- package/dist/docs/reference/geometry/RegularPolygonContourOptions.md +1 -1
- package/dist/docs/reference/geometry/ResolvedGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/RevolveOptions.md +1 -1
- package/dist/docs/reference/geometry/RoundedEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/RowLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleContourOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/SampleSideProfileOptions.md +1 -1
- package/dist/docs/reference/geometry/SampledCurve2.md +4 -4
- package/dist/docs/reference/geometry/SampledCurve3.md +4 -4
- package/dist/docs/reference/geometry/SampledThreadHelices.md +1 -1
- package/dist/docs/reference/geometry/SideProfileCurve.md +1 -1
- package/dist/docs/reference/geometry/SideProfilePoint.md +1 -1
- package/dist/docs/reference/geometry/SideProfileSegment.md +1 -1
- package/dist/docs/reference/geometry/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/geometry/SolidMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/SphereOptions.md +1 -1
- package/dist/docs/reference/geometry/SquareThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/StrokePathCap.md +1 -1
- package/dist/docs/reference/geometry/StrokePathJoin.md +1 -1
- package/dist/docs/reference/geometry/StrokePathRegionOptions.md +2 -2
- package/dist/docs/reference/geometry/SvgImportOptions.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflight.md +3 -3
- package/dist/docs/reference/geometry/SvgRegionPreflightGeometryMetrics.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightRepairs.md +1 -1
- package/dist/docs/reference/geometry/SvgRegionPreflightSourceMetrics.md +1 -1
- package/dist/docs/reference/geometry/SweepOptions.md +3 -3
- package/dist/docs/reference/geometry/SweepOrientation.md +7 -7
- package/dist/docs/reference/geometry/ThreadBevelOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadCircularSegmentsOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadCompensationOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/geometry/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadHandedness.md +1 -1
- package/dist/docs/reference/geometry/ThreadHelixOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/geometry/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfile.md +3 -3
- package/dist/docs/reference/geometry/ThreadProfileBaseSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/ThreadRole.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutOptions.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/geometry/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/geometry/ThreadedRodOptions.md +1 -1
- package/dist/docs/reference/geometry/TorusOptions.md +1 -1
- package/dist/docs/reference/geometry/Transform2-type.md +255 -0
- package/dist/docs/reference/geometry/Transform2Input.md +19 -0
- package/dist/docs/reference/geometry/Transform2Matrix.md +14 -0
- package/dist/docs/reference/geometry/Transform3-type.md +295 -0
- package/dist/docs/reference/geometry/Transform3Input.md +19 -0
- package/dist/docs/reference/geometry/Transform3Matrix.md +17 -0
- package/dist/docs/reference/geometry/TrapezoidalThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysis.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshAnalysisOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshQualityReport.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignature.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignatureOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshSignatureTolerances.md +1 -1
- package/dist/docs/reference/geometry/TriangleMeshValidationOptions.md +1 -1
- package/dist/docs/reference/geometry/TriangularThreadProfileSpec.md +1 -1
- package/dist/docs/reference/geometry/TubeOptions.md +1 -1
- package/dist/docs/reference/geometry/Vector2-type.md +269 -0
- package/dist/docs/reference/geometry/Vector2Input.md +19 -0
- package/dist/docs/reference/geometry/Vector2Tuple.md +14 -0
- package/dist/docs/reference/geometry/Vector3-type.md +281 -0
- package/dist/docs/reference/geometry/Vector3Input.md +19 -0
- package/dist/docs/reference/geometry/Vector3Tuple.md +14 -0
- package/dist/docs/reference/geometry/VectorTextArcBaseline.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayout.md +1 -1
- package/dist/docs/reference/geometry/VectorTextLayoutOptions.md +1 -1
- package/dist/docs/reference/geometry/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/geometry/VectorTextOptions.md +1 -1
- package/dist/docs/reference/geometry/add2.md +36 -0
- package/dist/docs/reference/geometry/add3.md +10 -6
- package/dist/docs/reference/geometry/analyzeTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/analyzeTriangleMeshQuality.md +1 -1
- package/dist/docs/reference/geometry/anchorFrame3.md +1 -1
- package/dist/docs/reference/geometry/applyTransformDirection3.md +11 -7
- package/dist/docs/reference/geometry/applyTransformPoint3.md +11 -7
- package/dist/docs/reference/geometry/attachTransform.md +8 -4
- package/dist/docs/reference/geometry/boundsCenter.md +7 -7
- package/dist/docs/reference/geometry/boundsFromSize.md +7 -7
- package/dist/docs/reference/geometry/boundsSize.md +7 -7
- package/dist/docs/reference/geometry/boxAnchor3.md +7 -3
- package/dist/docs/reference/geometry/buildHelicalThreadRidgeMesh.md +1 -1
- package/dist/docs/reference/geometry/buildHelicalThreadSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/categories/bounds-layout.md +1 -1
- package/dist/docs/reference/geometry/categories/curves-paths.md +6 -3
- package/dist/docs/reference/geometry/categories/mechanical.md +1 -1
- package/dist/docs/reference/geometry/categories/meshes.md +1 -1
- package/dist/docs/reference/geometry/categories/pattern-placement.md +2 -2
- package/dist/docs/reference/geometry/categories/primitive-options.md +1 -1
- package/dist/docs/reference/geometry/categories/profiles-regions.md +6 -6
- package/dist/docs/reference/geometry/categories/resolution-errors.md +3 -2
- package/dist/docs/reference/geometry/categories/transforms-math.md +37 -8
- package/dist/docs/reference/geometry/categories/vector-import.md +2 -2
- package/dist/docs/reference/geometry/circleContour.md +1 -1
- package/dist/docs/reference/geometry/closeToAxis.md +4 -4
- package/dist/docs/reference/geometry/closestPointOnPath.md +110 -0
- package/dist/docs/reference/geometry/compensateThreadDiameters.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileAxially.md +1 -1
- package/dist/docs/reference/geometry/compensateThreadProfileForFaceting.md +1 -1
- package/dist/docs/reference/geometry/composeTransform3.md +10 -6
- package/dist/docs/reference/geometry/computeClosedParallelTransportFrames.md +5 -5
- package/dist/docs/reference/geometry/computeParallelTransportFrames.md +5 -5
- package/dist/docs/reference/geometry/computeTriangleMeshCentroid.md +4 -4
- package/dist/docs/reference/geometry/containsBounds.md +1 -1
- package/dist/docs/reference/geometry/contourContainsPoint.md +4 -4
- package/dist/docs/reference/geometry/createAnchor3.md +10 -6
- package/dist/docs/reference/geometry/createThreadProfile.md +1 -1
- package/dist/docs/reference/geometry/createTriangleMeshSignature.md +1 -1
- package/dist/docs/reference/geometry/cross2.md +36 -0
- package/dist/docs/reference/geometry/cross3.md +10 -6
- package/dist/docs/reference/geometry/cumulativePathLengths.md +4 -4
- package/dist/docs/reference/geometry/cylinderAnchor3.md +6 -2
- package/dist/docs/reference/geometry/defaultGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/distance2.md +36 -0
- package/dist/docs/reference/geometry/distance3.md +36 -0
- package/dist/docs/reference/geometry/distributeAlongPath.md +4 -4
- package/dist/docs/reference/geometry/dot2.md +36 -0
- package/dist/docs/reference/geometry/dot3.md +9 -5
- package/dist/docs/reference/geometry/ellipseContour.md +1 -1
- package/dist/docs/reference/geometry/eulerTransform3.md +10 -6
- package/dist/docs/reference/geometry/extrudeMesh.md +2 -2
- package/dist/docs/reference/geometry/fitBounds.md +1 -1
- package/dist/docs/reference/geometry/fitTextLayout.md +1 -1
- package/dist/docs/reference/geometry/frameTransform3.md +8 -4
- package/dist/docs/reference/geometry/getMetricClearanceHole.md +1 -1
- package/dist/docs/reference/geometry/getMetricFastenerStandard.md +1 -1
- package/dist/docs/reference/geometry/gridPatternTransforms.md +4 -4
- package/dist/docs/reference/geometry/heightfieldMesh.md +1 -1
- package/dist/docs/reference/geometry/inverseTransform3.md +9 -5
- package/dist/docs/reference/geometry/isGeometryError.md +1 -1
- package/dist/docs/reference/geometry/joinTriangleMeshes.md +1 -1
- package/dist/docs/reference/geometry/layoutRow.md +4 -4
- package/dist/docs/reference/geometry/length2.md +30 -0
- package/dist/docs/reference/geometry/length3.md +8 -4
- package/dist/docs/reference/geometry/lerp2.md +42 -0
- package/dist/docs/reference/geometry/lerp3.md +10 -6
- package/dist/docs/reference/geometry/linearPatternTransforms.md +4 -4
- package/dist/docs/reference/geometry/loftMesh.md +1 -1
- package/dist/docs/reference/geometry/matchProfiles.md +1 -1
- package/dist/docs/reference/geometry/measureInternalCylindricalGearPairMotion.md +3 -2
- package/dist/docs/reference/geometry/measureTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/meshBounds.md +1 -1
- package/dist/docs/reference/geometry/minimumCylindricalGearToothCountWithoutUndercut.md +1 -1
- package/dist/docs/reference/geometry/normalize2.md +36 -0
- package/dist/docs/reference/geometry/normalize3.md +10 -6
- package/dist/docs/reference/geometry/normalizeContour.md +4 -4
- package/dist/docs/reference/geometry/normalizePolygon.md +5 -5
- package/dist/docs/reference/geometry/normalizeRegion.md +5 -5
- package/dist/docs/reference/geometry/optimizePlanarPatches.md +1 -1
- package/dist/docs/reference/geometry/pathLength.md +4 -4
- package/dist/docs/reference/geometry/pathPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/preflightHeightfield.md +1 -1
- package/dist/docs/reference/geometry/preflightHelicalThreadSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/preflightInternalThreadCutter.md +1 -1
- package/dist/docs/reference/geometry/preflightSvgRegion.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedNut.md +1 -1
- package/dist/docs/reference/geometry/preflightThreadedRod.md +1 -1
- package/dist/docs/reference/geometry/projectOntoPlane3.md +10 -6
- package/dist/docs/reference/geometry/radialPatternTransforms.md +6 -6
- package/dist/docs/reference/geometry/rectangleContour.md +2 -2
- package/dist/docs/reference/geometry/rectangleProfile.md +2 -2
- package/dist/docs/reference/geometry/regionArea.md +4 -4
- package/dist/docs/reference/geometry/regionBounds.md +4 -4
- package/dist/docs/reference/geometry/regularPolygonContour.md +4 -4
- package/dist/docs/reference/geometry/resamplePolyline2.md +4 -4
- package/dist/docs/reference/geometry/resamplePolyline3.md +4 -4
- package/dist/docs/reference/geometry/resolveAlignedCircularSegments.md +5 -1
- package/dist/docs/reference/geometry/resolveArcSegments.md +4 -4
- package/dist/docs/reference/geometry/resolveCircularSegments.md +6 -5
- package/dist/docs/reference/geometry/resolveCylindricalGear.md +1 -1
- package/dist/docs/reference/geometry/resolveCylindricalGearPair.md +1 -1
- package/dist/docs/reference/geometry/resolveExtrusionDivisions.md +5 -5
- package/dist/docs/reference/geometry/resolveGeometrySamplingLimits.md +1 -1
- package/dist/docs/reference/geometry/resolveGeometryTolerance.md +1 -1
- package/dist/docs/reference/geometry/resolvePrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/geometry/resolveRackPitch.md +1 -1
- package/dist/docs/reference/geometry/resolveThreadCircularSegments.md +1 -1
- package/dist/docs/reference/geometry/reverseTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/revolveMesh.md +4 -4
- package/dist/docs/reference/geometry/rotate2.md +36 -0
- package/dist/docs/reference/geometry/rotationTransform3.md +10 -6
- package/dist/docs/reference/geometry/roundClosedPolylinePath.md +5 -5
- package/dist/docs/reference/geometry/sampleContour.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve2.md +1 -1
- package/dist/docs/reference/geometry/sampleCurve3.md +1 -1
- package/dist/docs/reference/geometry/sampleCylindricalGearOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleHelix.md +4 -4
- package/dist/docs/reference/geometry/sampleInternalCylindricalGearSpaceOutline.md +1 -1
- package/dist/docs/reference/geometry/sampleRackToothPath.md +1 -1
- package/dist/docs/reference/geometry/sampleSideProfile.md +4 -4
- package/dist/docs/reference/geometry/sampleTextContours.md +1 -1
- package/dist/docs/reference/geometry/sampleThreadHelices.md +1 -1
- package/dist/docs/reference/geometry/scale2.md +36 -0
- package/dist/docs/reference/geometry/scale3.md +9 -5
- package/dist/docs/reference/geometry/scaleTransform3.md +10 -6
- package/dist/docs/reference/geometry/signedContourArea.md +1 -1
- package/dist/docs/reference/geometry/starContour.md +4 -4
- package/dist/docs/reference/geometry/strokePathRegion.md +4 -4
- package/dist/docs/reference/geometry/subtract2.md +36 -0
- package/dist/docs/reference/geometry/subtract3.md +10 -6
- package/dist/docs/reference/geometry/sweepMesh.md +5 -5
- package/dist/docs/reference/geometry/transform2.md +38 -0
- package/dist/docs/reference/geometry/transform3.md +38 -0
- package/dist/docs/reference/geometry/transformContour.md +5 -5
- package/dist/docs/reference/geometry/transformDeterminant3.md +8 -4
- package/dist/docs/reference/geometry/transformPath2.md +5 -5
- package/dist/docs/reference/geometry/transformPath3.md +5 -5
- package/dist/docs/reference/geometry/transformRegionData.md +40 -0
- package/dist/docs/reference/geometry/transformTriangleMesh.md +4 -4
- package/dist/docs/reference/geometry/translationTransform3.md +10 -6
- package/dist/docs/reference/geometry/triangulateContour.md +1 -1
- package/dist/docs/reference/geometry/validateSolidMesh.md +1 -1
- package/dist/docs/reference/geometry/validateTransform3.md +9 -5
- package/dist/docs/reference/geometry/validateTriangleMesh.md +1 -1
- package/dist/docs/reference/geometry/vector2.md +31 -0
- package/dist/docs/reference/geometry/vector3.md +38 -0
- package/dist/docs/reference/geometry.md +2 -2
- package/dist/docs/reference/model/Anchor3.md +5 -5
- package/dist/docs/reference/model/AttachOptions.md +1 -1
- package/dist/docs/reference/model/Bounds2.md +4 -4
- package/dist/docs/reference/model/Bounds3.md +4 -4
- package/dist/docs/reference/model/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 +1 -1
- package/dist/docs/reference/model/ComputedValue.md +1 -1
- package/dist/docs/reference/model/Contour.md +3 -3
- 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 +1 -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 +3 -3
- package/dist/docs/reference/model/FinalizedModel.md +1 -1
- 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 +1 -1
- package/dist/docs/reference/model/GenerateContext.md +5 -5
- package/dist/docs/reference/model/GeneratedPart.md +6 -6
- package/dist/docs/reference/model/GenerationDiagnostic.md +1 -1
- package/dist/docs/reference/model/GenerationError.md +1 -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 +4 -4
- package/dist/docs/reference/model/HeightfieldOptions.md +5 -5
- package/dist/docs/reference/model/HelicalThreadRidgeMeshOptions.md +1 -1
- package/dist/docs/reference/model/HelicalThreadSolidMeshPreflight.md +1 -1
- package/dist/docs/reference/model/HullOptions.md +7 -7
- package/dist/docs/reference/model/ImmutableBuffer-type.md +1 -1
- package/dist/docs/reference/model/ImmutableTriangleMesh.md +1 -1
- package/dist/docs/reference/model/ImplicitOptions.md +4 -4
- package/dist/docs/reference/model/InternalThreadCutterOptions.md +1 -1
- package/dist/docs/reference/model/LinearPatternOptions.md +3 -3
- 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 +2 -2
- package/dist/docs/reference/model/MatchProfilesOptions.md +1 -1
- package/dist/docs/reference/model/ModelProgram.md +1 -1
- package/dist/docs/reference/model/ModelingLimits.md +1 -1
- package/dist/docs/reference/model/NumericArray.md +1 -1
- package/dist/docs/reference/model/PartGeometry.md +1 -1
- package/dist/docs/reference/model/PartOptions.md +6 -6
- package/dist/docs/reference/model/{fromRegion.md → Path2.md} +5 -18
- package/dist/docs/reference/model/PathNormalGuide.md +5 -5
- package/dist/docs/reference/model/PathPatternOptions.md +1 -1
- package/dist/docs/reference/model/PatternSource.md +2 -2
- package/dist/docs/reference/model/Pivot2Options.md +27 -0
- package/dist/docs/reference/model/Pivot3Options.md +27 -0
- package/dist/docs/reference/model/PlaneOptions.md +3 -3
- package/dist/docs/reference/model/{Polygon-type.md → PolygonData.md} +2 -2
- package/dist/docs/reference/model/PolygonOptions.md +81 -4
- package/dist/docs/reference/model/PrimitivePlacement.md +1 -1
- package/dist/docs/reference/model/PrimitivePlacementOptions.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFit.md +1 -1
- package/dist/docs/reference/model/PrintableThreadFitPolicy.md +1 -1
- package/dist/docs/reference/model/Profile.md +1 -1
- package/dist/docs/reference/model/ProfileComponent2.md +1 -1
- package/dist/docs/reference/model/ProfileContour2.md +1 -1
- package/dist/docs/reference/model/ProfileSpan2.md +3 -3
- package/dist/docs/reference/model/ProfiledEdgeTreatment.md +3 -3
- package/dist/docs/reference/model/RadialPatternOptions.md +4 -4
- 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/{Region.md → RegionData.md} +4 -4
- 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 +75 -35
- package/dist/docs/reference/model/SectionHullOptions.md +7 -7
- package/dist/docs/reference/model/SectionInspection.md +4 -4
- package/dist/docs/reference/model/{RegionOffsetJoin.md → SectionOffsetJoin.md} +3 -3
- package/dist/docs/reference/model/{RegionOffsetOptions.md → SectionOffsetOptions.md} +4 -4
- package/dist/docs/reference/model/SmoothEdgeTreatment.md +1 -1
- package/dist/docs/reference/model/Solid.md +44 -21
- package/dist/docs/reference/model/SolidInspection.md +4 -4
- package/dist/docs/reference/model/SolidRayHit.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/StrokeOptions.md +91 -0
- package/dist/docs/reference/model/StrokePathCap.md +16 -0
- package/dist/docs/reference/model/StrokePathJoin.md +16 -0
- 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 +3 -3
- package/dist/docs/reference/model/SweepOrientation.md +7 -7
- package/dist/docs/reference/model/TextSectionOptions.md +1 -1
- package/dist/docs/reference/model/ThreadEndStyle.md +1 -1
- package/dist/docs/reference/model/ThreadEndTreatmentOptions.md +1 -1
- package/dist/docs/reference/model/ThreadHandedness.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInEnvelope.md +1 -1
- package/dist/docs/reference/model/ThreadLeadInShape.md +1 -1
- package/dist/docs/reference/model/ThreadProfile.md +3 -3
- package/dist/docs/reference/model/ThreadRidgeOptions.md +1 -1
- package/dist/docs/reference/model/ThreadedNutBevel.md +1 -1
- package/dist/docs/reference/model/ThreadedNutOptions.md +1 -1
- package/dist/docs/reference/model/ThreadedNutPreflight.md +1 -1
- package/dist/docs/reference/model/ThreadedNutShape.md +1 -1
- package/dist/docs/reference/model/ThreadedRodOptions.md +1 -1
- package/dist/docs/reference/model/TorusOptions.md +1 -1
- package/dist/docs/reference/model/Transform2-type.md +256 -0
- package/dist/docs/reference/model/Transform2Input.md +20 -0
- package/dist/docs/reference/model/Transform2Matrix.md +15 -0
- package/dist/docs/reference/model/Transform3-type.md +296 -0
- package/dist/docs/reference/model/Transform3Input.md +20 -0
- package/dist/docs/reference/model/{Transform3.md → Transform3Matrix.md} +3 -3
- package/dist/docs/reference/model/TriangleMesh.md +1 -1
- package/dist/docs/reference/model/TriangleMeshAnalysis.md +1 -1
- package/dist/docs/reference/model/TriangleMeshMeasurements.md +1 -1
- package/dist/docs/reference/model/TubeOptions.md +1 -1
- package/dist/docs/reference/model/Vector2-type.md +270 -0
- package/dist/docs/reference/model/Vector2Input.md +20 -0
- package/dist/docs/reference/model/{Vector2.md → Vector2Tuple.md} +3 -3
- package/dist/docs/reference/model/Vector3-type.md +282 -0
- package/dist/docs/reference/model/Vector3Input.md +20 -0
- package/dist/docs/reference/model/{Vector3.md → Vector3Tuple.md} +3 -3
- package/dist/docs/reference/model/VectorTextLayout.md +1 -1
- package/dist/docs/reference/model/VectorTextMetrics.md +1 -1
- package/dist/docs/reference/model/anchor.md +1 -1
- package/dist/docs/reference/model/box.md +2 -2
- package/dist/docs/reference/model/categories/boolean-operations.md +4 -4
- package/dist/docs/reference/model/categories/bounded-surfaces.md +3 -3
- package/dist/docs/reference/model/categories/contracts.md +1 -1
- package/dist/docs/reference/model/categories/core-values-errors.md +5 -5
- package/dist/docs/reference/model/categories/explicit-profiles.md +2 -2
- package/dist/docs/reference/model/categories/extrude-revolve-sweep.md +1 -1
- package/dist/docs/reference/model/categories/generation.md +1 -1
- package/dist/docs/reference/model/categories/inspection.md +5 -5
- package/dist/docs/reference/model/categories/mesh-inspection.md +2 -2
- package/dist/docs/reference/model/categories/primitives.md +2 -2
- package/dist/docs/reference/model/categories/resolution.md +1 -1
- package/dist/docs/reference/model/categories/sections.md +11 -8
- package/dist/docs/reference/model/categories/threads.md +1 -1
- package/dist/docs/reference/model/categories/transforms-placement.md +21 -7
- package/dist/docs/reference/model/circle.md +1 -1
- package/dist/docs/reference/model/components.md +7 -4
- 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 +2 -2
- package/dist/docs/reference/model/ellipse.md +1 -1
- package/dist/docs/reference/model/extrude.md +2 -2
- package/dist/docs/reference/model/generate.md +1 -1
- package/dist/docs/reference/model/gridPattern.md +1 -1
- package/dist/docs/reference/model/heightfield.md +2 -2
- package/dist/docs/reference/model/hull.md +2 -2
- package/dist/docs/reference/model/immutableBuffer.md +1 -1
- package/dist/docs/reference/model/immutableMesh.md +1 -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 +1 -1
- package/dist/docs/reference/model/intersect.md +1 -1
- package/dist/docs/reference/model/isEmpty.md +2 -2
- package/dist/docs/reference/model/linearPattern.md +1 -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/pathPattern.md +6 -6
- package/dist/docs/reference/model/polygon.md +1 -1
- package/dist/docs/reference/model/preflightInternalThreadCutter.md +1 -1
- package/dist/docs/reference/model/preflightThreadedNut.md +1 -1
- package/dist/docs/reference/model/preflightThreadedRod.md +1 -1
- package/dist/docs/reference/model/radialPattern.md +5 -5
- package/dist/docs/reference/model/rayCast.md +5 -5
- package/dist/docs/reference/model/rectangle.md +2 -2
- package/dist/docs/reference/model/regularPolygon.md +1 -1
- package/dist/docs/reference/model/revolve.md +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 +74 -0
- package/dist/docs/reference/model/svgPathSection.md +1 -1
- package/dist/docs/reference/model/svgSection.md +1 -1
- package/dist/docs/reference/model/sweep.md +5 -5
- package/dist/docs/reference/model/textSection.md +1 -1
- package/dist/docs/reference/model/threadRidge.md +1 -1
- package/dist/docs/reference/model/threadedNut.md +1 -1
- package/dist/docs/reference/model/threadedRod.md +1 -1
- package/dist/docs/reference/model/toTriangleMesh.md +1 -1
- package/dist/docs/reference/model/torus.md +1 -1
- package/dist/docs/reference/model/transform2.md +39 -0
- package/dist/docs/reference/model/transform3.md +39 -0
- 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 +32 -0
- package/dist/docs/reference/model/vector3.md +39 -0
- package/dist/docs/reference/model.md +7 -7
- package/dist/docs/reference/text/Bounds2.md +4 -4
- package/dist/docs/reference/text/MAX_VECTOR_FONT_BYTES.md +1 -1
- package/dist/docs/reference/text/Vector2Tuple.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 +1 -1
- package/dist/docs/reference/text/VectorTextOptions.md +1 -1
- package/dist/docs/reference/text/categories/font-preparation.md +2 -2
- package/dist/docs/reference/text/prepareVectorFont.md +1 -1
- package/dist/docs/reference/text.md +1 -1
- package/dist/engine/deferred-context.js +11 -181
- package/dist/engine/native/transforms.js +6 -1
- package/dist/engine/pattern-operations.js +2 -2
- package/dist/engine/primitive-profiles.js +1 -0
- package/dist/engine/recipe-realization.js +29 -21
- package/dist/engine/section-operations.js +19 -3
- package/dist/engine/session-graph.js +1 -1
- package/dist/engine/session-native.js +1 -1
- package/dist/engine/session-snapshot.js +3 -2
- package/dist/engine/session.js +3 -3
- package/dist/engine/shape-anchors.js +3 -9
- package/dist/engine/transform-operations.js +42 -25
- package/dist/geometry/index.js +6 -2
- package/dist/geometry/math/immutable-value.js +20 -0
- package/dist/geometry/math/vector-value.js +168 -0
- package/dist/geometry/math/vector2.js +80 -0
- package/dist/geometry/math/vector3.js +37 -7
- package/dist/geometry/mechanical/gear-motion.js +7 -4
- package/dist/geometry/mesh/mesh-solid-intersections.js +5 -1
- package/dist/geometry/paths/closest-point.js +74 -0
- package/dist/geometry/paths/frames.js +3 -3
- package/dist/geometry/primitive-resolution.js +4 -1
- package/dist/geometry/resolution.js +17 -5
- package/dist/geometry/stroke-path.js +48 -44
- package/dist/geometry/sweeps/stations.js +4 -4
- package/dist/geometry/sweeps/sweep-closed.js +3 -3
- package/dist/geometry/sweeps/sweep-open.js +3 -3
- package/dist/geometry/transform-chain.js +172 -0
- package/dist/geometry/transform-geometry.js +28 -24
- package/dist/geometry/transform-matrix.js +14 -0
- package/dist/geometry/transform2.js +60 -0
- package/dist/geometry/transform3.js +70 -26
- package/dist/index.js +3 -0
- package/dist/model/execution-binding.js +10 -5
- package/dist/model/geometry-recipes.js +15 -0
- package/dist/{engine → model}/immutable-generation-data.js +25 -3
- package/dist/model/operation-dispatch.js +10 -3
- package/dist/model/operations.js +21 -10
- package/dist/model/recipe-declaration.js +193 -0
- package/dist/model/shape-handles.js +15 -4
- package/package.json +1 -1
- package/dist/docs/reference/geometry/Region.md +0 -14
- package/dist/docs/reference/geometry/Transform3.md +0 -12
- package/dist/docs/reference/geometry/Vector2.md +0 -7
- package/dist/docs/reference/geometry/Vector3.md +0 -7
- package/dist/docs/reference/geometry/rotateAroundAxis3.md +0 -38
- package/dist/docs/reference/geometry/transformRegion.md +0 -40
- package/dist/docs/reference/model/Transform2.md +0 -15
- package/dist/docs/reference/model/toRegion.md +0 -33
- package/dist/docs/reference/text/Vector2.md +0 -7
- package/dist/engine/geometry-recipes.js +0 -12
- package/dist/engine/pattern-transform.js +0 -9
package/dist/api/geometry.d.ts
CHANGED
|
@@ -11,6 +11,9 @@ export declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
11
11
|
readonly depth?: number;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/** Adds two finite XY vectors component-wise. */
|
|
15
|
+
export declare const add2: (a: Vector2Tuple, b: Vector2Tuple) => Vector2Tuple;
|
|
16
|
+
|
|
14
17
|
/**
|
|
15
18
|
* Adds two finite XYZ vectors component-wise.
|
|
16
19
|
* @example
|
|
@@ -18,10 +21,12 @@ export declare interface AcmeThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
18
21
|
* add3([1, 2, 3], [4, 5, 6]); // [5, 7, 9]
|
|
19
22
|
* ```
|
|
20
23
|
*/
|
|
21
|
-
export declare const add3: (a:
|
|
24
|
+
export declare const add3: (a: Vector3Tuple, b: Vector3Tuple) => Vector3Tuple;
|
|
22
25
|
|
|
23
26
|
/** Controls full-circle sampling that must satisfy one or more topology alignments. */
|
|
24
27
|
export declare interface AlignedCircularSegmentsOptions {
|
|
28
|
+
/** Radial sizing used by adaptive error and edge-length checks. Defaults to vertex. */
|
|
29
|
+
readonly sizing?: RadialSizing;
|
|
25
30
|
/**
|
|
26
31
|
* Non-empty alignment factors. Every value must be a positive safe integer; the returned count
|
|
27
32
|
* is divisible by their checked least common multiple.
|
|
@@ -84,11 +89,11 @@ export declare function analyzeTriangleMeshQuality(
|
|
|
84
89
|
*/
|
|
85
90
|
export declare interface Anchor3 {
|
|
86
91
|
/** Unit outward normal used as the anchor's local +Z direction. */
|
|
87
|
-
readonly direction:
|
|
92
|
+
readonly direction: Vector3Tuple;
|
|
88
93
|
/** World-space attachment position. */
|
|
89
|
-
readonly position:
|
|
94
|
+
readonly position: Vector3Tuple;
|
|
90
95
|
/** Roll guide projected into the plane perpendicular to `direction`. */
|
|
91
|
-
readonly up:
|
|
96
|
+
readonly up: Vector3Tuple;
|
|
92
97
|
}
|
|
93
98
|
|
|
94
99
|
/**
|
|
@@ -113,9 +118,9 @@ export declare function anchorFrame3(
|
|
|
113
118
|
* @returns A fresh transformed direction.
|
|
114
119
|
*/
|
|
115
120
|
export declare function applyTransformDirection3(
|
|
116
|
-
transform:
|
|
117
|
-
direction:
|
|
118
|
-
):
|
|
121
|
+
transform: Transform3Matrix,
|
|
122
|
+
direction: Vector3Tuple,
|
|
123
|
+
): Vector3Tuple;
|
|
119
124
|
|
|
120
125
|
/**
|
|
121
126
|
* Applies an affine transform to a point, including translation.
|
|
@@ -125,16 +130,16 @@ export declare function applyTransformDirection3(
|
|
|
125
130
|
* @returns A fresh transformed point.
|
|
126
131
|
*/
|
|
127
132
|
export declare function applyTransformPoint3(
|
|
128
|
-
transform:
|
|
129
|
-
point:
|
|
130
|
-
):
|
|
133
|
+
transform: Transform3Matrix,
|
|
134
|
+
point: Vector3Tuple,
|
|
135
|
+
): Vector3Tuple;
|
|
131
136
|
|
|
132
137
|
/** Planar circular arc with counterclockwise degree angles. */
|
|
133
138
|
export declare interface ArcCurve2 {
|
|
134
139
|
/** Selects a circular arc in the XY plane. */
|
|
135
140
|
readonly kind: "arc";
|
|
136
141
|
/** Circle center in millimetres. */
|
|
137
|
-
readonly center:
|
|
142
|
+
readonly center: Vector2Tuple;
|
|
138
143
|
/** Positive circular radius in millimetres. */
|
|
139
144
|
readonly radius: number;
|
|
140
145
|
/** Initial angle in degrees; defaults to zero. */
|
|
@@ -148,13 +153,13 @@ export declare interface ArcCurve3 {
|
|
|
148
153
|
/** Selects a circular arc in the supplied plane. */
|
|
149
154
|
readonly kind: "arc";
|
|
150
155
|
/** Circle center in millimetres. */
|
|
151
|
-
readonly center:
|
|
156
|
+
readonly center: Vector3Tuple;
|
|
152
157
|
/** Positive circular radius in millimetres. */
|
|
153
158
|
readonly radius: number;
|
|
154
159
|
/** Orthogonal unit direction at zero degrees. */
|
|
155
|
-
readonly xAxis:
|
|
160
|
+
readonly xAxis: Vector3Tuple;
|
|
156
161
|
/** Orthogonal unit direction at positive ninety degrees. */
|
|
157
|
-
readonly yAxis:
|
|
162
|
+
readonly yAxis: Vector3Tuple;
|
|
158
163
|
/** Initial angle in degrees; defaults to zero. */
|
|
159
164
|
readonly startDegrees?: number;
|
|
160
165
|
/** Nonzero signed sweep in degrees, bounded to one complete turn. */
|
|
@@ -179,7 +184,7 @@ export declare function attachTransform(
|
|
|
179
184
|
source: Anchor3,
|
|
180
185
|
target: Anchor3,
|
|
181
186
|
options?: AttachTransformOptions,
|
|
182
|
-
):
|
|
187
|
+
): Transform3Matrix;
|
|
183
188
|
|
|
184
189
|
/** Options controlling how one anchor is attached to another. */
|
|
185
190
|
export declare interface AttachTransformOptions {
|
|
@@ -213,31 +218,31 @@ export declare type AxisAngleRotation3 =
|
|
|
213
218
|
/** Axis-aligned bounds in two-dimensional model space. */
|
|
214
219
|
export declare interface Bounds2 {
|
|
215
220
|
/** Inclusive maximum X/Y coordinates. */
|
|
216
|
-
readonly max:
|
|
221
|
+
readonly max: Vector2Tuple;
|
|
217
222
|
/** Inclusive minimum X/Y coordinates. */
|
|
218
|
-
readonly min:
|
|
223
|
+
readonly min: Vector2Tuple;
|
|
219
224
|
}
|
|
220
225
|
|
|
221
226
|
/** Axis-aligned bounds in three-dimensional model space. */
|
|
222
227
|
export declare interface Bounds3 {
|
|
223
228
|
/** Inclusive maximum X/Y/Z coordinates. */
|
|
224
|
-
readonly max:
|
|
229
|
+
readonly max: Vector3Tuple;
|
|
225
230
|
/** Inclusive minimum X/Y/Z coordinates. */
|
|
226
|
-
readonly min:
|
|
231
|
+
readonly min: Vector3Tuple;
|
|
227
232
|
}
|
|
228
233
|
|
|
229
234
|
/** Midpoint of finite XY bounds in millimetres. */
|
|
230
|
-
export declare function boundsCenter(bounds: Bounds2):
|
|
235
|
+
export declare function boundsCenter(bounds: Bounds2): Vector2Tuple;
|
|
231
236
|
|
|
232
237
|
/** Midpoint of finite XYZ bounds in millimetres. */
|
|
233
|
-
export declare function boundsCenter(bounds: Bounds3):
|
|
238
|
+
export declare function boundsCenter(bounds: Bounds3): Vector3Tuple;
|
|
234
239
|
|
|
235
240
|
/** A uniform XY scale followed by translation, and the resulting bounds. */
|
|
236
241
|
export declare interface BoundsFit2 {
|
|
237
242
|
/** Positive uniform scale. */
|
|
238
243
|
readonly scale: number;
|
|
239
244
|
/** Millimetre translation applied after scaling around the origin. */
|
|
240
|
-
readonly position:
|
|
245
|
+
readonly position: Vector2Tuple;
|
|
241
246
|
/** Bounds after scaling and translation. */
|
|
242
247
|
readonly bounds: Bounds2;
|
|
243
248
|
}
|
|
@@ -247,7 +252,7 @@ export declare interface BoundsFit3 {
|
|
|
247
252
|
/** Positive uniform scale. */
|
|
248
253
|
readonly scale: number;
|
|
249
254
|
/** Millimetre translation applied after scaling around the origin. */
|
|
250
|
-
readonly position:
|
|
255
|
+
readonly position: Vector3Tuple;
|
|
251
256
|
/** Bounds after scaling and translation. */
|
|
252
257
|
readonly bounds: Bounds3;
|
|
253
258
|
}
|
|
@@ -260,13 +265,13 @@ export declare interface BoundsFitOptions {
|
|
|
260
265
|
|
|
261
266
|
/** Creates immutable centered XY bounds from nonnegative dimensions in millimetres. */
|
|
262
267
|
export declare function boundsFromSize(
|
|
263
|
-
size:
|
|
268
|
+
size: Vector2Tuple,
|
|
264
269
|
options?: BoundsFromSizeOptions,
|
|
265
270
|
): Bounds2;
|
|
266
271
|
|
|
267
272
|
/** Creates immutable centered XYZ bounds from nonnegative dimensions in millimetres. */
|
|
268
273
|
export declare function boundsFromSize(
|
|
269
|
-
size:
|
|
274
|
+
size: Vector3Tuple,
|
|
270
275
|
options?: BoundsFromSizeOptions,
|
|
271
276
|
): Bounds3;
|
|
272
277
|
|
|
@@ -277,10 +282,10 @@ export declare interface BoundsFromSizeOptions {
|
|
|
277
282
|
}
|
|
278
283
|
|
|
279
284
|
/** Inclusive XY dimensions in millimetres; zero extents are retained. */
|
|
280
|
-
export declare function boundsSize(bounds: Bounds2):
|
|
285
|
+
export declare function boundsSize(bounds: Bounds2): Vector2Tuple;
|
|
281
286
|
|
|
282
287
|
/** Inclusive XYZ dimensions in millimetres; zero extents are retained. */
|
|
283
|
-
export declare function boundsSize(bounds: Bounds3):
|
|
288
|
+
export declare function boundsSize(bounds: Bounds3): Vector3Tuple;
|
|
284
289
|
|
|
285
290
|
/** Creates an outward face-center anchor using the same local origin convention as box().
|
|
286
291
|
* @remarks origin applies an explicit translation. For rotated components, transform the
|
|
@@ -295,13 +300,13 @@ export declare type BoxAnchorFace =
|
|
|
295
300
|
/** Box dimensions and construction origin for one named face anchor. */
|
|
296
301
|
export declare interface BoxAnchorOptions {
|
|
297
302
|
/** XYZ dimensions, or one uniform dimension, in millimetres. */
|
|
298
|
-
readonly size: number |
|
|
303
|
+
readonly size: number | Vector3Tuple;
|
|
299
304
|
/** Named outward face whose center is the attachment point. */
|
|
300
305
|
readonly face: BoxAnchorFace;
|
|
301
306
|
/** Centers the box around its construction origin; defaults to true, matching box(). */
|
|
302
307
|
readonly center?: boolean;
|
|
303
308
|
/** Construction origin; centered-box center or noncentered minimum corner. Defaults to zero. */
|
|
304
|
-
readonly origin?:
|
|
309
|
+
readonly origin?: Vector3Tuple;
|
|
305
310
|
}
|
|
306
311
|
|
|
307
312
|
/** Box edges use +Z top, +Y front and +X right; vertical names list front/back first. */
|
|
@@ -339,7 +344,7 @@ export declare interface BoxOptions extends PrimitivePlacement {
|
|
|
339
344
|
*/
|
|
340
345
|
readonly center?: boolean;
|
|
341
346
|
/** Positive uniform size or explicit `[X, Y, Z]` extents in millimetres. */
|
|
342
|
-
readonly size: number |
|
|
347
|
+
readonly size: number | Vector3Tuple;
|
|
343
348
|
/** Uniform treatment or independent disjoint nominal edge/group treatments. */
|
|
344
349
|
readonly treatment?: EdgeTreatment | BoxEdgeTreatments;
|
|
345
350
|
}
|
|
@@ -443,6 +448,12 @@ export declare interface CircularPrimitiveOptions {
|
|
|
443
448
|
readonly resolution?: GeometryResolution;
|
|
444
449
|
}
|
|
445
450
|
|
|
451
|
+
/** Circular sampling measured from the nominal inscribed or circumscribed radius. */
|
|
452
|
+
export declare interface CircularResolutionOptions extends GeometryResolution {
|
|
453
|
+
/** Vertex sizing bounds inward sagitta; face sizing bounds outward excess. Defaults to vertex. */
|
|
454
|
+
readonly sizing?: RadialSizing;
|
|
455
|
+
}
|
|
456
|
+
|
|
446
457
|
/** Close, normal, and loose metric clearance-hole diameters in millimetres. */
|
|
447
458
|
export declare interface ClearanceHoleDimensions {
|
|
448
459
|
/** Close-fit clearance-hole diameter. */
|
|
@@ -456,6 +467,54 @@ export declare interface ClearanceHoleDimensions {
|
|
|
456
467
|
/** Common clearance-hole fit categories, ordered from smallest to largest. */
|
|
457
468
|
export declare type ClearanceHoleFit = "close" | "normal" | "loose";
|
|
458
469
|
|
|
470
|
+
/**
|
|
471
|
+
* Finds the closest position anywhere on an open XY path or closed contour.
|
|
472
|
+
*
|
|
473
|
+
* Open paths need two points; closed paths need three and omit the duplicated seam.
|
|
474
|
+
* Repeated vertices are treated as zero-length edges. Inputs and derived distances must be
|
|
475
|
+
* finite. Only the final result is allocated, so scanning a dense boundary creates no per-edge objects.
|
|
476
|
+
* This measures the sampled boundary, not its filled interior or an underlying analytic curve.
|
|
477
|
+
*
|
|
478
|
+
* @example Find a point on a closed boundary
|
|
479
|
+
* ```ts
|
|
480
|
+
* closestPointOnPath([[0, 0], [10, 0], [10, 10]], [4, -2], { closed: true });
|
|
481
|
+
* ```
|
|
482
|
+
*/
|
|
483
|
+
export declare function closestPointOnPath(
|
|
484
|
+
path: Path2,
|
|
485
|
+
point: Vector2Tuple,
|
|
486
|
+
options?: ClosestPointOnPathOptions,
|
|
487
|
+
): ClosestPointOnPathResult<Vector2Tuple>;
|
|
488
|
+
|
|
489
|
+
/** Finds the closest position on an open XYZ path or explicitly closed spatial loop. */
|
|
490
|
+
export declare function closestPointOnPath(
|
|
491
|
+
path: Path3,
|
|
492
|
+
point: Vector3Tuple,
|
|
493
|
+
options?: ClosestPointOnPathOptions,
|
|
494
|
+
): ClosestPointOnPathResult<Vector3Tuple>;
|
|
495
|
+
|
|
496
|
+
/** Topology and work ceiling for a closest-point query on a sampled path. */
|
|
497
|
+
export declare interface ClosestPointOnPathOptions {
|
|
498
|
+
/** Include the last-to-first edge without duplicating the seam point. Defaults to false. */
|
|
499
|
+
readonly closed?: boolean;
|
|
500
|
+
/** Explicit path point ceiling; defaults to the package sampling limits. */
|
|
501
|
+
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
/** Closest position on a sampled path, measured in millimetres. */
|
|
505
|
+
export declare interface ClosestPointOnPathResult<
|
|
506
|
+
Point extends Vector2Tuple | Vector3Tuple,
|
|
507
|
+
> {
|
|
508
|
+
/** Copied position on the selected edge. */
|
|
509
|
+
readonly point: Point;
|
|
510
|
+
/** Euclidean distance from the query point to the path. */
|
|
511
|
+
readonly distance: number;
|
|
512
|
+
/** Zero-based starting vertex of the selected edge. Equal distances keep the first edge. */
|
|
513
|
+
readonly edgeIndex: number;
|
|
514
|
+
/** Clamped interpolation fraction from the edge's start to its end. */
|
|
515
|
+
readonly fraction: number;
|
|
516
|
+
}
|
|
517
|
+
|
|
459
518
|
/**
|
|
460
519
|
* Closes an open, strictly upward [radius, height] side outline to the radius-zero axis.
|
|
461
520
|
* Adds horizontal bottom/top edges at the endpoint heights, retaining axis endpoints once.
|
|
@@ -464,7 +523,7 @@ export declare type ClearanceHoleFit = "close" | "normal" | "loose";
|
|
|
464
523
|
* This is a solid-body closure, not a hollow-wall or mounting-bore construction.
|
|
465
524
|
*/
|
|
466
525
|
export declare function closeToAxis(
|
|
467
|
-
side: readonly
|
|
526
|
+
side: readonly Vector2Tuple[],
|
|
468
527
|
limits?: Partial<GeometrySamplingLimits>,
|
|
469
528
|
): Contour;
|
|
470
529
|
|
|
@@ -531,9 +590,9 @@ export declare function compensateThreadProfileForFaceting(
|
|
|
531
590
|
* @returns A new frozen transform equal to `after * before`.
|
|
532
591
|
*/
|
|
533
592
|
export declare function composeTransform3(
|
|
534
|
-
after:
|
|
535
|
-
before:
|
|
536
|
-
):
|
|
593
|
+
after: Transform3Matrix,
|
|
594
|
+
before: Transform3Matrix,
|
|
595
|
+
): Transform3Matrix;
|
|
537
596
|
|
|
538
597
|
/**
|
|
539
598
|
* Builds rotation-minimizing frames for a non-duplicated closed path.
|
|
@@ -544,8 +603,8 @@ export declare function composeTransform3(
|
|
|
544
603
|
* The maxPathPoints ceiling (default 100000) bounds path points and frames.
|
|
545
604
|
*/
|
|
546
605
|
export declare const computeClosedParallelTransportFrames: (
|
|
547
|
-
path: readonly
|
|
548
|
-
initialNormal?:
|
|
606
|
+
path: readonly Vector3Tuple[],
|
|
607
|
+
initialNormal?: Vector3Tuple,
|
|
549
608
|
limits?: Partial<GeometrySamplingLimits>,
|
|
550
609
|
) => readonly PathFrame[];
|
|
551
610
|
|
|
@@ -555,8 +614,8 @@ export declare const computeClosedParallelTransportFrames: (
|
|
|
555
614
|
* Paths exceeding maxPathPoints (default 100000) reject before frame allocation or guide evaluation.
|
|
556
615
|
*/
|
|
557
616
|
export declare const computeParallelTransportFrames: (
|
|
558
|
-
path: readonly
|
|
559
|
-
initialNormal?:
|
|
617
|
+
path: readonly Vector3Tuple[],
|
|
618
|
+
initialNormal?: Vector3Tuple,
|
|
560
619
|
normalGuide?: PathNormalGuide,
|
|
561
620
|
limits?: Partial<GeometrySamplingLimits>,
|
|
562
621
|
) => readonly PathFrame[];
|
|
@@ -572,7 +631,7 @@ export declare const computeParallelTransportFrames: (
|
|
|
572
631
|
*/
|
|
573
632
|
export declare function computeTriangleMeshCentroid(
|
|
574
633
|
mesh: TriangleMesh,
|
|
575
|
-
):
|
|
634
|
+
): Vector3Tuple;
|
|
576
635
|
|
|
577
636
|
/** Tests actual XY containment, including touching boundaries; dimensions must match. */
|
|
578
637
|
export declare function containsBounds(outer: Bounds2, inner: Bounds2): boolean;
|
|
@@ -586,12 +645,12 @@ export declare function containsBounds(outer: Bounds3, inner: Bounds3): boolean;
|
|
|
586
645
|
* Polygon exteriors are counter-clockwise and holes are clockwise. Algorithms
|
|
587
646
|
* may reject duplicate adjacent points or fewer than three effective vertices.
|
|
588
647
|
*/
|
|
589
|
-
export declare type Contour = readonly
|
|
648
|
+
export declare type Contour = readonly Vector2Tuple[];
|
|
590
649
|
|
|
591
650
|
/** Returns true when a point lies inside or on the boundary of a loop. */
|
|
592
651
|
export declare function contourContainsPoint(
|
|
593
652
|
loop: Contour,
|
|
594
|
-
point:
|
|
653
|
+
point: Vector2Tuple,
|
|
595
654
|
): boolean;
|
|
596
655
|
|
|
597
656
|
/** One explicitly closed planar contour, independent of editor metadata and parameter contracts. */
|
|
@@ -675,9 +734,9 @@ export declare type CorrespondingProfileStation = LoftPlacement & {
|
|
|
675
734
|
* @throws {@link GeometryError} For non-finite or degenerate inputs.
|
|
676
735
|
*/
|
|
677
736
|
export declare function createAnchor3(
|
|
678
|
-
position:
|
|
679
|
-
direction:
|
|
680
|
-
up?:
|
|
737
|
+
position: Vector3Tuple,
|
|
738
|
+
direction: Vector3Tuple,
|
|
739
|
+
up?: Vector3Tuple,
|
|
681
740
|
tolerance?: GeometryToleranceOptions,
|
|
682
741
|
): Anchor3;
|
|
683
742
|
|
|
@@ -714,6 +773,9 @@ export declare function createTriangleMeshSignature(
|
|
|
714
773
|
options?: TriangleMeshSignatureOptions,
|
|
715
774
|
): TriangleMeshSignature;
|
|
716
775
|
|
|
776
|
+
/** Returns the signed scalar cross product; positive means `b` is counter-clockwise from `a`. */
|
|
777
|
+
export declare const cross2: (a: Vector2Tuple, b: Vector2Tuple) => number;
|
|
778
|
+
|
|
717
779
|
/**
|
|
718
780
|
* Returns the right-handed cross product.
|
|
719
781
|
* @example
|
|
@@ -721,20 +783,20 @@ export declare function createTriangleMeshSignature(
|
|
|
721
783
|
* cross3([1, 0, 0], [0, 1, 0]); // [0, 0, 1]
|
|
722
784
|
* ```
|
|
723
785
|
*/
|
|
724
|
-
export declare const cross3: (a:
|
|
786
|
+
export declare const cross3: (a: Vector3Tuple, b: Vector3Tuple) => Vector3Tuple;
|
|
725
787
|
|
|
726
788
|
/** Planar cubic Bézier with explicit endpoint and control coordinates. */
|
|
727
789
|
export declare interface CubicBezierCurve2 {
|
|
728
790
|
/** Selects a cubic Bézier through two endpoints and two controls. */
|
|
729
791
|
readonly kind: "cubic";
|
|
730
792
|
/** Initial XY point in millimetres. */
|
|
731
|
-
readonly start:
|
|
793
|
+
readonly start: Vector2Tuple;
|
|
732
794
|
/** First XY control point in millimetres. */
|
|
733
|
-
readonly control1:
|
|
795
|
+
readonly control1: Vector2Tuple;
|
|
734
796
|
/** Second XY control point in millimetres. */
|
|
735
|
-
readonly control2:
|
|
797
|
+
readonly control2: Vector2Tuple;
|
|
736
798
|
/** Final XY point in millimetres. */
|
|
737
|
-
readonly end:
|
|
799
|
+
readonly end: Vector2Tuple;
|
|
738
800
|
}
|
|
739
801
|
|
|
740
802
|
/**
|
|
@@ -744,18 +806,18 @@ export declare interface CubicBezierCurve3 {
|
|
|
744
806
|
/** Selects a cubic Bézier through two endpoints and two controls. */
|
|
745
807
|
readonly kind: "cubic";
|
|
746
808
|
/** Initial XYZ point in millimetres. */
|
|
747
|
-
readonly start:
|
|
809
|
+
readonly start: Vector3Tuple;
|
|
748
810
|
/** First XYZ control point in millimetres. */
|
|
749
|
-
readonly control1:
|
|
811
|
+
readonly control1: Vector3Tuple;
|
|
750
812
|
/** Second XYZ control point in millimetres. */
|
|
751
|
-
readonly control2:
|
|
813
|
+
readonly control2: Vector3Tuple;
|
|
752
814
|
/** Final XYZ point in millimetres. */
|
|
753
|
-
readonly end:
|
|
815
|
+
readonly end: Vector3Tuple;
|
|
754
816
|
}
|
|
755
817
|
|
|
756
818
|
/** Returns cumulative arc length for finite points under maxPathPoints (default 100000); rejects overflowing length. */
|
|
757
819
|
export declare const cumulativePathLengths: (
|
|
758
|
-
path: readonly
|
|
820
|
+
path: readonly Vector3Tuple[],
|
|
759
821
|
limits?: Partial<GeometrySamplingLimits>,
|
|
760
822
|
) => readonly number[];
|
|
761
823
|
|
|
@@ -789,7 +851,7 @@ export declare interface CustomThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
|
789
851
|
* Open path spanning exactly `[-pitch/2, pitch/2]`, with both endpoints on the minor envelope,
|
|
790
852
|
* one connected ridge, one contiguous crest, and radial zero at the major envelope.
|
|
791
853
|
*/
|
|
792
|
-
readonly points: readonly
|
|
854
|
+
readonly points: readonly Vector2Tuple[];
|
|
793
855
|
}
|
|
794
856
|
|
|
795
857
|
/** Creates a cap-center or radial-side anchor using cylinder()'s construction origin.
|
|
@@ -816,7 +878,7 @@ export declare interface CylinderAnchorOptions {
|
|
|
816
878
|
/** Centers the cylinder along Z; defaults to true, matching cylinder(). */
|
|
817
879
|
readonly center?: boolean;
|
|
818
880
|
/** Construction origin; centered-axis midpoint or noncentered bottom axis. Defaults to zero. */
|
|
819
|
-
readonly origin?:
|
|
881
|
+
readonly origin?: Vector3Tuple;
|
|
820
882
|
}
|
|
821
883
|
|
|
822
884
|
/**
|
|
@@ -992,6 +1054,12 @@ export declare const DEFAULT_GEOMETRY_TOLERANCE: Readonly<{
|
|
|
992
1054
|
/** Conservative defaults; trusted callers can supply larger explicit ceilings. */
|
|
993
1055
|
export declare const defaultGeometrySamplingLimits: GeometrySamplingLimits;
|
|
994
1056
|
|
|
1057
|
+
/** Returns Euclidean point distance without allocating an intermediate difference vector. */
|
|
1058
|
+
export declare const distance2: (a: Vector2Tuple, b: Vector2Tuple) => number;
|
|
1059
|
+
|
|
1060
|
+
/** Returns Euclidean point distance without allocating an intermediate difference vector. */
|
|
1061
|
+
export declare const distance3: (a: Vector3Tuple, b: Vector3Tuple) => number;
|
|
1062
|
+
|
|
995
1063
|
/**
|
|
996
1064
|
* Places an exact item count at equal arc-length intervals along a sampled path.
|
|
997
1065
|
*
|
|
@@ -1001,12 +1069,15 @@ export declare const defaultGeometrySamplingLimits: GeometrySamplingLimits;
|
|
|
1001
1069
|
* limited by maxPathPoints (default 100000); exact counts exceeding that ceiling reject before length calculation.
|
|
1002
1070
|
*/
|
|
1003
1071
|
export declare const distributeAlongPath: (
|
|
1004
|
-
path: readonly
|
|
1072
|
+
path: readonly Vector3Tuple[],
|
|
1005
1073
|
count: number,
|
|
1006
1074
|
closed: boolean,
|
|
1007
1075
|
limits?: Partial<GeometrySamplingLimits>,
|
|
1008
1076
|
) => readonly PathPlacement[];
|
|
1009
1077
|
|
|
1078
|
+
/** Returns the scalar dot product. */
|
|
1079
|
+
export declare const dot2: (a: Vector2Tuple, b: Vector2Tuple) => number;
|
|
1080
|
+
|
|
1010
1081
|
/**
|
|
1011
1082
|
* Returns the scalar dot product.
|
|
1012
1083
|
* @example
|
|
@@ -1014,7 +1085,7 @@ export declare const distributeAlongPath: (
|
|
|
1014
1085
|
* dot3([1, 0, 0], [0, 1, 0]); // 0
|
|
1015
1086
|
* ```
|
|
1016
1087
|
*/
|
|
1017
|
-
export declare const dot3: (a:
|
|
1088
|
+
export declare const dot3: (a: Vector3Tuple, b: Vector3Tuple) => number;
|
|
1018
1089
|
|
|
1019
1090
|
/**
|
|
1020
1091
|
* Uniform finishing vocabulary shared by applicable solid edges and profile corners.
|
|
@@ -1042,13 +1113,13 @@ export declare type EllipseContourOptions = CircularPrimitiveOptions &
|
|
|
1042
1113
|
(
|
|
1043
1114
|
| {
|
|
1044
1115
|
/** Positive XY radii in millimetres; mutually exclusive with size. */
|
|
1045
|
-
readonly radius:
|
|
1116
|
+
readonly radius: Vector2Tuple;
|
|
1046
1117
|
/** Full XY extents are unavailable when radius is supplied. */
|
|
1047
1118
|
readonly size?: never;
|
|
1048
1119
|
}
|
|
1049
1120
|
| {
|
|
1050
1121
|
/** Positive full XY extents in millimetres; mutually exclusive with radius. */
|
|
1051
|
-
readonly size:
|
|
1122
|
+
readonly size: Vector2Tuple;
|
|
1052
1123
|
/** XY radii are unavailable when size is supplied. */
|
|
1053
1124
|
readonly radius?: never;
|
|
1054
1125
|
}
|
|
@@ -1075,7 +1146,9 @@ export declare interface EndTreatments {
|
|
|
1075
1146
|
* @returns A frozen row-major transform.
|
|
1076
1147
|
* @throws {@link GeometryError} When an angle is non-finite.
|
|
1077
1148
|
*/
|
|
1078
|
-
export declare function eulerTransform3(
|
|
1149
|
+
export declare function eulerTransform3(
|
|
1150
|
+
rotationDegrees: Vector3Tuple,
|
|
1151
|
+
): Transform3Matrix;
|
|
1079
1152
|
|
|
1080
1153
|
/**
|
|
1081
1154
|
* Linearly extrudes one simple profile along +Z with robust ear-clipped caps.
|
|
@@ -1112,7 +1185,7 @@ export declare interface ExtrusionSamplingOptions {
|
|
|
1112
1185
|
/** Operation-level physical policy over the nearest model scope. */
|
|
1113
1186
|
readonly resolution?: GeometryResolution;
|
|
1114
1187
|
/** Finite uniform or XY scale of the top profile; defaults to one. */
|
|
1115
|
-
readonly scaleTop?: number |
|
|
1188
|
+
readonly scaleTop?: number | Vector2Tuple;
|
|
1116
1189
|
/** Finite rotation of the top profile about +Z, in degrees; defaults to zero. */
|
|
1117
1190
|
readonly twistDegrees?: number;
|
|
1118
1191
|
}
|
|
@@ -1161,13 +1234,13 @@ export declare function fitTextLayout(
|
|
|
1161
1234
|
/** A right-handed orthonormal coordinate frame expressed in world coordinates. */
|
|
1162
1235
|
export declare interface Frame3 {
|
|
1163
1236
|
/** World-space origin of the local frame. */
|
|
1164
|
-
readonly origin:
|
|
1237
|
+
readonly origin: Vector3Tuple;
|
|
1165
1238
|
/** Unit vector defining the local +X axis. */
|
|
1166
|
-
readonly xAxis:
|
|
1239
|
+
readonly xAxis: Vector3Tuple;
|
|
1167
1240
|
/** Unit vector defining the local +Y axis. */
|
|
1168
|
-
readonly yAxis:
|
|
1241
|
+
readonly yAxis: Vector3Tuple;
|
|
1169
1242
|
/** Unit vector defining the local +Z axis. */
|
|
1170
|
-
readonly zAxis:
|
|
1243
|
+
readonly zAxis: Vector3Tuple;
|
|
1171
1244
|
}
|
|
1172
1245
|
|
|
1173
1246
|
/**
|
|
@@ -1181,7 +1254,7 @@ export declare interface Frame3 {
|
|
|
1181
1254
|
export declare function frameTransform3(
|
|
1182
1255
|
frame: Frame3,
|
|
1183
1256
|
tolerance?: GeometryToleranceOptions,
|
|
1184
|
-
):
|
|
1257
|
+
): Transform3Matrix;
|
|
1185
1258
|
|
|
1186
1259
|
/**
|
|
1187
1260
|
* Error raised when a geometry precondition or invariant is not satisfied.
|
|
@@ -1297,22 +1370,22 @@ export declare type GridPatternOptions = {
|
|
|
1297
1370
|
} & (
|
|
1298
1371
|
| {
|
|
1299
1372
|
/** Positive integer counts on X and Y. */
|
|
1300
|
-
readonly count:
|
|
1373
|
+
readonly count: Vector2Tuple;
|
|
1301
1374
|
/** Signed millimetres between adjacent copies on X and Y. */
|
|
1302
|
-
readonly spacing:
|
|
1375
|
+
readonly spacing: Vector2Tuple;
|
|
1303
1376
|
}
|
|
1304
1377
|
| {
|
|
1305
1378
|
/** Positive integer counts on X, Y and Z. */
|
|
1306
|
-
readonly count:
|
|
1379
|
+
readonly count: Vector3Tuple;
|
|
1307
1380
|
/** Signed millimetres between adjacent copies on X, Y and Z. */
|
|
1308
|
-
readonly spacing:
|
|
1381
|
+
readonly spacing: Vector3Tuple;
|
|
1309
1382
|
}
|
|
1310
1383
|
);
|
|
1311
1384
|
|
|
1312
1385
|
/** XY or XYZ grid placements in millimetres, in X-fastest order. */
|
|
1313
1386
|
export declare function gridPatternTransforms(
|
|
1314
1387
|
options: GridPatternOptions,
|
|
1315
|
-
): readonly
|
|
1388
|
+
): readonly Transform3Matrix[];
|
|
1316
1389
|
|
|
1317
1390
|
/**
|
|
1318
1391
|
* Builds a closed indexed mesh from a rectilinear top, matched boundary walls, and flat base.
|
|
@@ -1349,7 +1422,7 @@ export declare type HeightfieldMeshLimits = Partial<
|
|
|
1349
1422
|
*/
|
|
1350
1423
|
export declare type HeightfieldOptions = {
|
|
1351
1424
|
/** Absolute top Z at the supplied XY point. Every sample must be above baseZ. */
|
|
1352
|
-
readonly height: (point:
|
|
1425
|
+
readonly height: (point: Vector2Tuple) => number;
|
|
1353
1426
|
/** Flat bottom Z. Defaults to zero. */
|
|
1354
1427
|
readonly baseZ?: number;
|
|
1355
1428
|
/**
|
|
@@ -1362,11 +1435,11 @@ export declare type HeightfieldOptions = {
|
|
|
1362
1435
|
} & (
|
|
1363
1436
|
| {
|
|
1364
1437
|
/** Positive XY footprint for uniform sampling. */
|
|
1365
|
-
readonly size:
|
|
1438
|
+
readonly size: Vector2Tuple;
|
|
1366
1439
|
/** Exact positive integer X/Y interval counts. */
|
|
1367
1440
|
readonly segments: readonly [x: number, y: number];
|
|
1368
1441
|
/** Lower-left footprint XY. Omitted centers the footprint on XY. */
|
|
1369
|
-
readonly origin?:
|
|
1442
|
+
readonly origin?: Vector2Tuple;
|
|
1370
1443
|
/** Explicit coordinates cannot be combined with uniform sampling. */
|
|
1371
1444
|
readonly coordinates?: never;
|
|
1372
1445
|
}
|
|
@@ -1460,7 +1533,7 @@ export declare interface HelicalThreadSolidMeshPreflight {
|
|
|
1460
1533
|
}
|
|
1461
1534
|
|
|
1462
1535
|
/** Identity transform, safe to share because it is frozen. */
|
|
1463
|
-
export declare const IDENTITY_TRANSFORM3:
|
|
1536
|
+
export declare const IDENTITY_TRANSFORM3: Transform3Matrix;
|
|
1464
1537
|
|
|
1465
1538
|
/** Options for a compensated internal-thread subtraction tool along +Z. */
|
|
1466
1539
|
export declare interface InternalThreadCutterOptions
|
|
@@ -1479,7 +1552,9 @@ export declare interface InternalThreadCutterOptions
|
|
|
1479
1552
|
* @param transform - Transform to invert.
|
|
1480
1553
|
* @returns A new frozen transform whose composition with the input is identity.
|
|
1481
1554
|
*/
|
|
1482
|
-
export declare function inverseTransform3(
|
|
1555
|
+
export declare function inverseTransform3(
|
|
1556
|
+
transform: Transform3Matrix,
|
|
1557
|
+
): Transform3Matrix;
|
|
1483
1558
|
|
|
1484
1559
|
/**
|
|
1485
1560
|
* Recognizes structured geometry errors from separately bundled Modeling copies in the same realm.
|
|
@@ -1509,20 +1584,34 @@ export declare function joinTriangleMeshes(
|
|
|
1509
1584
|
export declare function layoutRow(
|
|
1510
1585
|
bounds: readonly Bounds3[],
|
|
1511
1586
|
options?: RowLayoutOptions,
|
|
1512
|
-
): readonly
|
|
1587
|
+
): readonly Vector3Tuple[];
|
|
1513
1588
|
|
|
1514
1589
|
/** Returns Euclidean vector length in the vector's coordinate units. */
|
|
1515
|
-
export declare const
|
|
1590
|
+
export declare const length2: (vector: Vector2Tuple) => number;
|
|
1591
|
+
|
|
1592
|
+
/** Returns Euclidean vector length in the vector's coordinate units. */
|
|
1593
|
+
export declare const length3: (vector: Vector3Tuple) => number;
|
|
1594
|
+
|
|
1595
|
+
/** Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. */
|
|
1596
|
+
export declare const lerp2: (
|
|
1597
|
+
a: Vector2Tuple,
|
|
1598
|
+
b: Vector2Tuple,
|
|
1599
|
+
t: number,
|
|
1600
|
+
) => Vector2Tuple;
|
|
1516
1601
|
|
|
1517
1602
|
/** Linearly interpolates two vectors; `t` is dimensionless and may extrapolate. */
|
|
1518
|
-
export declare const lerp3: (
|
|
1603
|
+
export declare const lerp3: (
|
|
1604
|
+
a: Vector3Tuple,
|
|
1605
|
+
b: Vector3Tuple,
|
|
1606
|
+
t: number,
|
|
1607
|
+
) => Vector3Tuple;
|
|
1519
1608
|
|
|
1520
1609
|
/**
|
|
1521
1610
|
* Equal linear intervals determined by exactly two of count, spacing and total length.
|
|
1522
1611
|
*/
|
|
1523
1612
|
export declare type LinearPatternOptions = {
|
|
1524
1613
|
/** Direction of repetition; magnitude is ignored. Defaults to +X. */
|
|
1525
|
-
readonly direction?:
|
|
1614
|
+
readonly direction?: Vector3Tuple;
|
|
1526
1615
|
} & (
|
|
1527
1616
|
| {
|
|
1528
1617
|
/** Positive copy count, including the original. */
|
|
@@ -1553,16 +1642,16 @@ export declare type LinearPatternOptions = {
|
|
|
1553
1642
|
/** Equal linear placements in millimetres, including the original at the origin. */
|
|
1554
1643
|
export declare function linearPatternTransforms(
|
|
1555
1644
|
options: LinearPatternOptions,
|
|
1556
|
-
): readonly
|
|
1645
|
+
): readonly Transform3Matrix[];
|
|
1557
1646
|
|
|
1558
1647
|
/** Straight planar curve in millimetres. */
|
|
1559
1648
|
export declare interface LineCurve2 {
|
|
1560
1649
|
/** Selects straight interpolation between the two endpoints. */
|
|
1561
1650
|
readonly kind: "line";
|
|
1562
1651
|
/** Initial XY point in millimetres. */
|
|
1563
|
-
readonly start:
|
|
1652
|
+
readonly start: Vector2Tuple;
|
|
1564
1653
|
/** Final XY point in millimetres. */
|
|
1565
|
-
readonly end:
|
|
1654
|
+
readonly end: Vector2Tuple;
|
|
1566
1655
|
}
|
|
1567
1656
|
|
|
1568
1657
|
/** Straight spatial curve in millimetres. */
|
|
@@ -1570,9 +1659,9 @@ export declare interface LineCurve3 {
|
|
|
1570
1659
|
/** Selects straight interpolation between the two endpoints. */
|
|
1571
1660
|
readonly kind: "line";
|
|
1572
1661
|
/** Initial XYZ point in millimetres. */
|
|
1573
|
-
readonly start:
|
|
1662
|
+
readonly start: Vector3Tuple;
|
|
1574
1663
|
/** Final XYZ point in millimetres. */
|
|
1575
|
-
readonly end:
|
|
1664
|
+
readonly end: Vector3Tuple;
|
|
1576
1665
|
}
|
|
1577
1666
|
|
|
1578
1667
|
/**
|
|
@@ -1684,7 +1773,8 @@ export declare interface MatchProfilesOptions {
|
|
|
1684
1773
|
/**
|
|
1685
1774
|
* Measures sampled kinematic interference over one tooth cycle of an internal gear pair.
|
|
1686
1775
|
*
|
|
1687
|
-
* The driver and ring
|
|
1776
|
+
* The driver and ring start with half-tooth offsets for odd tooth counts, then rotate in the
|
|
1777
|
+
* same direction at their resolved tooth-count ratio. Each
|
|
1688
1778
|
* sampled pinion outline is subtracted from the ring's center-and-space opening; remaining area is
|
|
1689
1779
|
* solid overlap. This catches involute, tip, and trimming interference that a single assembled pose
|
|
1690
1780
|
* misses. It is a deterministic model check, not a certified gear-rating calculation.
|
|
@@ -1807,8 +1897,25 @@ export declare interface ModelingLimits extends GeometrySamplingLimits {
|
|
|
1807
1897
|
readonly maxBytes: number;
|
|
1808
1898
|
}
|
|
1809
1899
|
|
|
1810
|
-
/**
|
|
1811
|
-
|
|
1900
|
+
/**
|
|
1901
|
+
* Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`).
|
|
1902
|
+
* Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with
|
|
1903
|
+
* `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively.
|
|
1904
|
+
*/
|
|
1905
|
+
export declare const normalize2: (
|
|
1906
|
+
vector: Vector2Tuple,
|
|
1907
|
+
epsilon?: number,
|
|
1908
|
+
) => Vector2Tuple;
|
|
1909
|
+
|
|
1910
|
+
/**
|
|
1911
|
+
* Returns a unit vector; `epsilon` is a finite, non-negative length threshold (default `1e-12`).
|
|
1912
|
+
* Rejects invalid thresholds, nonfinite lengths, and lengths at or below the threshold with
|
|
1913
|
+
* `INVALID_TOLERANCE`, `NON_FINITE_VALUE`, and `DEGENERATE_GEOMETRY` respectively.
|
|
1914
|
+
*/
|
|
1915
|
+
export declare const normalize3: (
|
|
1916
|
+
vector: Vector3Tuple,
|
|
1917
|
+
epsilon?: number,
|
|
1918
|
+
) => Vector3Tuple;
|
|
1812
1919
|
|
|
1813
1920
|
/**
|
|
1814
1921
|
* Cleans and validates one closed loop.
|
|
@@ -1819,7 +1926,7 @@ export declare const normalize3: (vector: Vector3, epsilon?: number) => Vector3;
|
|
|
1819
1926
|
* returned unchanged when their winding and tolerance policy match.
|
|
1820
1927
|
*/
|
|
1821
1928
|
export declare function normalizeContour(
|
|
1822
|
-
input: readonly
|
|
1929
|
+
input: readonly Vector2Tuple[],
|
|
1823
1930
|
counterClockwise: boolean,
|
|
1824
1931
|
tolerance?: GeometryToleranceOptions,
|
|
1825
1932
|
): Contour;
|
|
@@ -1832,18 +1939,18 @@ export declare function normalizeContour(
|
|
|
1832
1939
|
* may be returned unchanged under the same tolerance policy.
|
|
1833
1940
|
*/
|
|
1834
1941
|
export declare function normalizePolygon(
|
|
1835
|
-
polygon:
|
|
1942
|
+
polygon: PolygonData,
|
|
1836
1943
|
tolerance?: GeometryToleranceOptions,
|
|
1837
|
-
):
|
|
1944
|
+
): PolygonData;
|
|
1838
1945
|
|
|
1839
1946
|
/**
|
|
1840
1947
|
* Validates a disjoint explicit region and returns immutable normalized data.
|
|
1841
1948
|
* Previously validated immutable results may be returned unchanged under the same tolerance policy.
|
|
1842
1949
|
*/
|
|
1843
1950
|
export declare function normalizeRegion(
|
|
1844
|
-
region:
|
|
1951
|
+
region: RegionData,
|
|
1845
1952
|
tolerance?: GeometryToleranceOptions,
|
|
1846
|
-
):
|
|
1953
|
+
): RegionData;
|
|
1847
1954
|
|
|
1848
1955
|
/**
|
|
1849
1956
|
* Improves pathological planar triangulation with bounded legal diagonal flips.
|
|
@@ -1864,28 +1971,28 @@ export declare function optimizePlanarPatches(
|
|
|
1864
1971
|
): PlanarMeshOptimizationResult;
|
|
1865
1972
|
|
|
1866
1973
|
/** An ordered, open sequence of two-dimensional points. */
|
|
1867
|
-
export declare type Path2 = readonly
|
|
1974
|
+
export declare type Path2 = readonly Vector2Tuple[];
|
|
1868
1975
|
|
|
1869
1976
|
/**
|
|
1870
1977
|
* An ordered, open sequence of three-dimensional points.
|
|
1871
1978
|
*/
|
|
1872
|
-
export declare type Path3 = readonly
|
|
1979
|
+
export declare type Path3 = readonly Vector3Tuple[];
|
|
1873
1980
|
|
|
1874
1981
|
/** Orthonormal right-handed frame sampled along a path. */
|
|
1875
1982
|
export declare interface PathFrame {
|
|
1876
1983
|
/** Unit path tangent. */
|
|
1877
|
-
readonly tangent:
|
|
1984
|
+
readonly tangent: Vector3Tuple;
|
|
1878
1985
|
/** Unit transported profile X axis. */
|
|
1879
|
-
readonly normal:
|
|
1986
|
+
readonly normal: Vector3Tuple;
|
|
1880
1987
|
/** Unit profile Y axis equal to tangent × normal. */
|
|
1881
|
-
readonly binormal:
|
|
1988
|
+
readonly binormal: Vector3Tuple;
|
|
1882
1989
|
}
|
|
1883
1990
|
|
|
1884
1991
|
/**
|
|
1885
1992
|
* Returns total sampled 3D path length, or zero for an empty path.
|
|
1886
1993
|
*/
|
|
1887
1994
|
export declare const pathLength: (
|
|
1888
|
-
path: readonly
|
|
1995
|
+
path: readonly Vector3Tuple[],
|
|
1889
1996
|
limits?: Partial<GeometrySamplingLimits>,
|
|
1890
1997
|
) => number;
|
|
1891
1998
|
|
|
@@ -1897,9 +2004,9 @@ export declare const pathLength: (
|
|
|
1897
2004
|
* @returns A finite guide vector that is not parallel to the local path tangent.
|
|
1898
2005
|
*/
|
|
1899
2006
|
export declare type PathNormalGuide = (
|
|
1900
|
-
point:
|
|
2007
|
+
point: Vector3Tuple,
|
|
1901
2008
|
index: number,
|
|
1902
|
-
) =>
|
|
2009
|
+
) => Vector3Tuple;
|
|
1903
2010
|
|
|
1904
2011
|
/** Equal physical arc-length placements along an open or implicitly closed sampled path. */
|
|
1905
2012
|
export declare interface PathPatternOptions {
|
|
@@ -1917,17 +2024,29 @@ export declare interface PathPatternOptions {
|
|
|
1917
2024
|
* Explicit sampling ceilings bound both input points and output placements.
|
|
1918
2025
|
*/
|
|
1919
2026
|
export declare function pathPatternTransforms(
|
|
1920
|
-
path: readonly
|
|
2027
|
+
path: readonly Vector3Tuple[],
|
|
1921
2028
|
options: PathPatternOptions,
|
|
1922
2029
|
limits?: Partial<GeometrySamplingLimits>,
|
|
1923
|
-
): readonly
|
|
2030
|
+
): readonly Transform3Matrix[];
|
|
1924
2031
|
|
|
1925
2032
|
/** Position and unit tangent for one path-distributed item. */
|
|
1926
2033
|
export declare interface PathPlacement {
|
|
1927
2034
|
/** Interpolated point on the sampled path. */
|
|
1928
|
-
readonly position:
|
|
2035
|
+
readonly position: Vector3Tuple;
|
|
1929
2036
|
/** Unit tangent of the path segment containing the placement. */
|
|
1930
|
-
readonly tangent:
|
|
2037
|
+
readonly tangent: Vector3Tuple;
|
|
2038
|
+
}
|
|
2039
|
+
|
|
2040
|
+
/** A fixed XY point in world coordinates; omitted pivots use the coordinate origin. */
|
|
2041
|
+
export declare interface Pivot2Options {
|
|
2042
|
+
/** World-space point left fixed by rotation or scaling. */
|
|
2043
|
+
readonly pivot?: Vector2Input;
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2046
|
+
/** A fixed XYZ point in world coordinates; omitted pivots use the coordinate origin. */
|
|
2047
|
+
export declare interface Pivot3Options {
|
|
2048
|
+
/** World-space point left fixed by rotation or scaling. */
|
|
2049
|
+
readonly pivot?: Vector3Input;
|
|
1931
2050
|
}
|
|
1932
2051
|
|
|
1933
2052
|
/** Stable reason why planar optimization returned the original mesh unchanged. */
|
|
@@ -2008,7 +2127,7 @@ export declare interface PlanarPatchQuality {
|
|
|
2008
2127
|
/** Smallest interior triangle angle in degrees. */
|
|
2009
2128
|
readonly minimumTriangleAngleDegrees: number;
|
|
2010
2129
|
/** Consistently wound unit normal for the patch plane. */
|
|
2011
|
-
readonly normal:
|
|
2130
|
+
readonly normal: Vector3Tuple;
|
|
2012
2131
|
/** Plane offset in `dot(normal, position) = planeOffset` form, in model units. */
|
|
2013
2132
|
readonly planeOffset: number;
|
|
2014
2133
|
/** Total patch area in squared model units. */
|
|
@@ -2026,7 +2145,7 @@ export declare interface PlanarPatchQuality {
|
|
|
2026
2145
|
* their duplicated closing point. Holes must lie inside `outer` and must not
|
|
2027
2146
|
* intersect each other or the exterior.
|
|
2028
2147
|
*/
|
|
2029
|
-
export declare interface
|
|
2148
|
+
export declare interface PolygonData {
|
|
2030
2149
|
/** Clockwise interior boundaries, each omitting its duplicated closing point. */
|
|
2031
2150
|
readonly holes: readonly Contour[];
|
|
2032
2151
|
/** Counter-clockwise exterior boundary, omitting its duplicated closing point. */
|
|
@@ -2178,7 +2297,7 @@ export declare interface ProfiledEdgeTreatment {
|
|
|
2178
2297
|
* First coordinates decrease and second coordinates increase. Cylinder/extrusion ends use
|
|
2179
2298
|
* cap inset first, side setback second; planar corners use incoming then outgoing edges.
|
|
2180
2299
|
*/
|
|
2181
|
-
readonly profile: readonly
|
|
2300
|
+
readonly profile: readonly Vector2Tuple[];
|
|
2182
2301
|
}
|
|
2183
2302
|
|
|
2184
2303
|
/** An identified line, circular arc, or cubic Bézier between corresponding landmarks. */
|
|
@@ -2194,15 +2313,15 @@ export declare type ProfileSpan2 = {
|
|
|
2194
2313
|
/** Selects a straight span. */
|
|
2195
2314
|
readonly kind: "line";
|
|
2196
2315
|
/** Start point in millimetres. */
|
|
2197
|
-
readonly start:
|
|
2316
|
+
readonly start: Vector2Tuple;
|
|
2198
2317
|
/** End point in millimetres. */
|
|
2199
|
-
readonly end:
|
|
2318
|
+
readonly end: Vector2Tuple;
|
|
2200
2319
|
}
|
|
2201
2320
|
| {
|
|
2202
2321
|
/** Selects the geometric curve or span family. */
|
|
2203
2322
|
readonly kind: "arc";
|
|
2204
2323
|
/** Center point in millimetres. */
|
|
2205
|
-
readonly center:
|
|
2324
|
+
readonly center: Vector2Tuple;
|
|
2206
2325
|
/** Circular radius in millimetres. */
|
|
2207
2326
|
readonly radius: number;
|
|
2208
2327
|
/** Initial counterclockwise angle in degrees. */
|
|
@@ -2214,21 +2333,21 @@ export declare type ProfileSpan2 = {
|
|
|
2214
2333
|
/** Selects a cubic Bézier span with the same coordinates as CubicBezierCurve2. */
|
|
2215
2334
|
readonly kind: "cubic";
|
|
2216
2335
|
/** Start point in millimetres. */
|
|
2217
|
-
readonly start:
|
|
2336
|
+
readonly start: Vector2Tuple;
|
|
2218
2337
|
/** First control point in millimetres. */
|
|
2219
|
-
readonly control1:
|
|
2338
|
+
readonly control1: Vector2Tuple;
|
|
2220
2339
|
/** Second control point in millimetres. */
|
|
2221
|
-
readonly control2:
|
|
2340
|
+
readonly control2: Vector2Tuple;
|
|
2222
2341
|
/** End point in millimetres. */
|
|
2223
|
-
readonly end:
|
|
2342
|
+
readonly end: Vector2Tuple;
|
|
2224
2343
|
}
|
|
2225
2344
|
);
|
|
2226
2345
|
|
|
2227
2346
|
/** Removes the component parallel to a normalized plane normal. */
|
|
2228
2347
|
export declare const projectOntoPlane3: (
|
|
2229
|
-
vector:
|
|
2230
|
-
normal:
|
|
2231
|
-
) =>
|
|
2348
|
+
vector: Vector3Tuple,
|
|
2349
|
+
normal: Vector3Tuple,
|
|
2350
|
+
) => Vector3Tuple;
|
|
2232
2351
|
|
|
2233
2352
|
/** Resolved pitch-line dimensions for a finite rack segment. */
|
|
2234
2353
|
export declare interface RackPitchDimensions {
|
|
@@ -2275,21 +2394,19 @@ export declare interface RadialPatternOptions {
|
|
|
2275
2394
|
/** Number of solids to return, including the original. */
|
|
2276
2395
|
readonly count: number;
|
|
2277
2396
|
/** Axis of the right-handed rotation. Its magnitude is ignored. */
|
|
2278
|
-
readonly axis:
|
|
2397
|
+
readonly axis: Vector3Tuple;
|
|
2279
2398
|
/** Signed rotation from one copy to the next, in degrees. */
|
|
2280
2399
|
readonly angleDegrees: number;
|
|
2281
2400
|
/** Rotation center in world coordinates. Defaults to the origin. */
|
|
2282
|
-
readonly center?:
|
|
2401
|
+
readonly center?: Vector3Tuple;
|
|
2283
2402
|
}
|
|
2284
2403
|
|
|
2285
2404
|
/** Rotations about an explicit axis; angles use degrees and the first placement is identity. */
|
|
2286
2405
|
export declare function radialPatternTransforms(
|
|
2287
2406
|
options: RadialPatternOptions,
|
|
2288
|
-
): readonly
|
|
2407
|
+
): readonly Transform3Matrix[];
|
|
2289
2408
|
|
|
2290
|
-
/**
|
|
2291
|
-
* Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces.
|
|
2292
|
-
*/
|
|
2409
|
+
/** Radial dimensions refer to polygon vertices or compensate faceting to meet polygon faces. */
|
|
2293
2410
|
export declare type RadialSizing = "vertex" | "face";
|
|
2294
2411
|
|
|
2295
2412
|
/**
|
|
@@ -2319,7 +2436,7 @@ export declare function rectangleContour(
|
|
|
2319
2436
|
*/
|
|
2320
2437
|
export declare interface RectangleContourOptions {
|
|
2321
2438
|
/** Positive uniform size or explicit XY extents in millimetres. */
|
|
2322
|
-
readonly size: number |
|
|
2439
|
+
readonly size: number | Vector2Tuple;
|
|
2323
2440
|
/** Center on XY; otherwise the minimum corner is the origin. Defaults to true. */
|
|
2324
2441
|
readonly center?: boolean;
|
|
2325
2442
|
/** Uniform treatment or four corner treatments. Exact round segments describe a complete circle and must divide by four. */
|
|
@@ -2362,9 +2479,6 @@ export declare interface RectangleProfileOptions extends RectangleContourOptions
|
|
|
2362
2479
|
readonly id?: string;
|
|
2363
2480
|
}
|
|
2364
2481
|
|
|
2365
|
-
/** A two-dimensional region represented by disjoint filled polygons. */
|
|
2366
|
-
export declare type Region = readonly Polygon[];
|
|
2367
|
-
|
|
2368
2482
|
/**
|
|
2369
2483
|
* Returns the total filled area of a normalized region in square millimetres.
|
|
2370
2484
|
*
|
|
@@ -2375,10 +2489,13 @@ export declare type Region = readonly Polygon[];
|
|
|
2375
2489
|
* @param region - Normalized disjoint polygons with CCW outers and clockwise holes.
|
|
2376
2490
|
* @returns Total filled area in square millimetres.
|
|
2377
2491
|
*/
|
|
2378
|
-
export declare function regionArea(region:
|
|
2492
|
+
export declare function regionArea(region: RegionData): number;
|
|
2379
2493
|
|
|
2380
2494
|
/** Returns finite axis-aligned bounds for a non-empty region. */
|
|
2381
|
-
export declare function regionBounds(region:
|
|
2495
|
+
export declare function regionBounds(region: RegionData): Bounds2;
|
|
2496
|
+
|
|
2497
|
+
/** A two-dimensional region represented by disjoint filled polygons. */
|
|
2498
|
+
export declare type RegionData = readonly PolygonData[];
|
|
2382
2499
|
|
|
2383
2500
|
/**
|
|
2384
2501
|
* Creates a centered CCW point loop with vertex or face radial sizing and an implicit seam.
|
|
@@ -2390,7 +2507,7 @@ export declare function regionBounds(region: Region): Bounds2;
|
|
|
2390
2507
|
*/
|
|
2391
2508
|
export declare const regularPolygonContour: (
|
|
2392
2509
|
options: RegularPolygonContourOptions,
|
|
2393
|
-
) => readonly
|
|
2510
|
+
) => readonly Vector2Tuple[];
|
|
2394
2511
|
|
|
2395
2512
|
/** Exact regular polygon dimensions and counterclockwise degree rotation. */
|
|
2396
2513
|
export declare interface RegularPolygonContourOptions extends RadialSizingOptions {
|
|
@@ -2410,7 +2527,7 @@ export declare interface RegularPolygonContourOptions extends RadialSizingOption
|
|
|
2410
2527
|
* ```
|
|
2411
2528
|
*/
|
|
2412
2529
|
export declare function resamplePolyline2(
|
|
2413
|
-
path: readonly
|
|
2530
|
+
path: readonly Vector2Tuple[],
|
|
2414
2531
|
options?: PolylineResamplingOptions,
|
|
2415
2532
|
): SampledCurve2;
|
|
2416
2533
|
|
|
@@ -2426,7 +2543,7 @@ export declare function resamplePolyline2(
|
|
|
2426
2543
|
* ```
|
|
2427
2544
|
*/
|
|
2428
2545
|
export declare function resamplePolyline3(
|
|
2429
|
-
path: readonly
|
|
2546
|
+
path: readonly Vector3Tuple[],
|
|
2430
2547
|
options?: PolylineResamplingOptions,
|
|
2431
2548
|
): SampledCurve3;
|
|
2432
2549
|
|
|
@@ -2478,7 +2595,7 @@ export declare function resolveAlignedCircularSegments(
|
|
|
2478
2595
|
export declare function resolveArcSegments(
|
|
2479
2596
|
radius: number,
|
|
2480
2597
|
angleDegrees: number,
|
|
2481
|
-
policy?:
|
|
2598
|
+
policy?: CircularResolutionOptions,
|
|
2482
2599
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2483
2600
|
): number;
|
|
2484
2601
|
|
|
@@ -2486,7 +2603,8 @@ export declare function resolveArcSegments(
|
|
|
2486
2603
|
* Resolves a deterministic full-circle segment count for one radius.
|
|
2487
2604
|
*
|
|
2488
2605
|
* An exact `circularSegments` value wins. Otherwise the smallest regular polygon satisfying both
|
|
2489
|
-
* physical error criteria is used.
|
|
2606
|
+
* physical error criteria is used. Face sizing bounds the circumscribed polygon's outward
|
|
2607
|
+
* excess and actual edge length. A safety cap that would violate either criterion raises
|
|
2490
2608
|
* `COMPLEXITY_LIMIT` rather than silently reducing quality.
|
|
2491
2609
|
*
|
|
2492
2610
|
* @param radius - Circle radius in millimetres.
|
|
@@ -2504,7 +2622,7 @@ export declare function resolveArcSegments(
|
|
|
2504
2622
|
*/
|
|
2505
2623
|
export declare function resolveCircularSegments(
|
|
2506
2624
|
radius: number,
|
|
2507
|
-
policy?:
|
|
2625
|
+
policy?: CircularResolutionOptions,
|
|
2508
2626
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2509
2627
|
): number;
|
|
2510
2628
|
|
|
@@ -2559,7 +2677,7 @@ export declare interface ResolvedGeometryTolerance {
|
|
|
2559
2677
|
* @returns Number of intermediate copies, excluding the two end profiles.
|
|
2560
2678
|
*/
|
|
2561
2679
|
export declare function resolveExtrusionDivisions(
|
|
2562
|
-
profile: Contour |
|
|
2680
|
+
profile: Contour | RegionData,
|
|
2563
2681
|
height: number,
|
|
2564
2682
|
options?: ExtrusionSamplingOptions,
|
|
2565
2683
|
): number;
|
|
@@ -2635,7 +2753,7 @@ export declare function reverseTriangleMesh(mesh: TriangleMesh): TriangleMesh;
|
|
|
2635
2753
|
* ```
|
|
2636
2754
|
*/
|
|
2637
2755
|
export declare const revolveMesh: (
|
|
2638
|
-
profile: readonly
|
|
2756
|
+
profile: readonly Vector2Tuple[],
|
|
2639
2757
|
options?: RevolveOptions,
|
|
2640
2758
|
) => TriangleMesh;
|
|
2641
2759
|
|
|
@@ -2654,12 +2772,14 @@ export declare interface RevolveOptions extends CircularPrimitiveOptions {
|
|
|
2654
2772
|
readonly limits?: Partial<ModelingLimits>;
|
|
2655
2773
|
}
|
|
2656
2774
|
|
|
2657
|
-
/**
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2775
|
+
/**
|
|
2776
|
+
* Rotates a finite vector counter-clockwise in XY by `degrees` about the origin.
|
|
2777
|
+
* Throws `NON_FINITE_VALUE` for nonfinite coordinates, angles, or derived coordinates.
|
|
2778
|
+
*/
|
|
2779
|
+
export declare const rotate2: (
|
|
2780
|
+
vector: Vector2Tuple,
|
|
2781
|
+
degrees: number,
|
|
2782
|
+
) => Vector2Tuple;
|
|
2663
2783
|
|
|
2664
2784
|
/**
|
|
2665
2785
|
* Creates a right-handed axis-angle rotation transform.
|
|
@@ -2670,10 +2790,10 @@ export declare const rotateAroundAxis3: (
|
|
|
2670
2790
|
* @returns A frozen row-major transform.
|
|
2671
2791
|
*/
|
|
2672
2792
|
export declare function rotationTransform3(
|
|
2673
|
-
axis:
|
|
2793
|
+
axis: Vector3Tuple,
|
|
2674
2794
|
angle: AxisAngleRotation3,
|
|
2675
2795
|
tolerance?: GeometryToleranceOptions,
|
|
2676
|
-
):
|
|
2796
|
+
): Transform3Matrix;
|
|
2677
2797
|
|
|
2678
2798
|
/**
|
|
2679
2799
|
* Replaces each vertex of a non-duplicated closed polyline with a sampled
|
|
@@ -2685,11 +2805,11 @@ export declare function rotationTransform3(
|
|
|
2685
2805
|
* Coordinates and radius must be finite; input and output are each limited by maxPathPoints (default 100000).
|
|
2686
2806
|
*/
|
|
2687
2807
|
export declare const roundClosedPolylinePath: (
|
|
2688
|
-
points: readonly
|
|
2808
|
+
points: readonly Vector3Tuple[],
|
|
2689
2809
|
radius: number,
|
|
2690
2810
|
segmentsPerCorner: number,
|
|
2691
2811
|
limits?: Partial<GeometrySamplingLimits>,
|
|
2692
|
-
) => readonly
|
|
2812
|
+
) => readonly Vector3Tuple[];
|
|
2693
2813
|
|
|
2694
2814
|
/**
|
|
2695
2815
|
* A circular edge or corner roundover with explicit physical sampling.
|
|
@@ -2793,9 +2913,9 @@ export declare function sampleCylindricalGearOutline(
|
|
|
2793
2913
|
/** Immutable planar points and corresponding directed unit tangents. */
|
|
2794
2914
|
export declare interface SampledCurve2 {
|
|
2795
2915
|
/** Curves retain both endpoints, including full-circle seams; closed resampling omits its seam. */
|
|
2796
|
-
readonly points: readonly
|
|
2916
|
+
readonly points: readonly Vector2Tuple[];
|
|
2797
2917
|
/** Directed unit vectors; stationary derivatives use the nearest usable direction. */
|
|
2798
|
-
readonly tangents: readonly
|
|
2918
|
+
readonly tangents: readonly Vector2Tuple[];
|
|
2799
2919
|
}
|
|
2800
2920
|
|
|
2801
2921
|
/**
|
|
@@ -2803,9 +2923,9 @@ export declare interface SampledCurve2 {
|
|
|
2803
2923
|
*/
|
|
2804
2924
|
export declare interface SampledCurve3 {
|
|
2805
2925
|
/** Curves retain both endpoints, including full-circle seams; closed resampling omits its seam. */
|
|
2806
|
-
readonly points: readonly
|
|
2926
|
+
readonly points: readonly Vector3Tuple[];
|
|
2807
2927
|
/** Directed unit vectors; stationary derivatives use the nearest usable direction. */
|
|
2808
|
-
readonly tangents: readonly
|
|
2928
|
+
readonly tangents: readonly Vector3Tuple[];
|
|
2809
2929
|
}
|
|
2810
2930
|
|
|
2811
2931
|
/** Sampled paths plus conventional pitch and lead measurements. */
|
|
@@ -2832,7 +2952,7 @@ export declare const sampleHelix: ({
|
|
|
2832
2952
|
segments,
|
|
2833
2953
|
limits,
|
|
2834
2954
|
axialWeight,
|
|
2835
|
-
}: SampleHelixOptions) => readonly
|
|
2955
|
+
}: SampleHelixOptions) => readonly Vector3Tuple[];
|
|
2836
2956
|
|
|
2837
2957
|
/** Options for a sampled +Z helix with millimetre dimensions. */
|
|
2838
2958
|
export declare interface SampleHelixOptions {
|
|
@@ -2903,7 +3023,7 @@ export declare function sampleRackToothPath(
|
|
|
2903
3023
|
export declare function sampleSideProfile(
|
|
2904
3024
|
curve: SideProfileCurve,
|
|
2905
3025
|
options?: SampleSideProfileOptions,
|
|
2906
|
-
): readonly
|
|
3026
|
+
): readonly Vector2Tuple[];
|
|
2907
3027
|
|
|
2908
3028
|
/** Physical scaling and bounded adaptive subdivision for an open profile. */
|
|
2909
3029
|
export declare interface SampleSideProfileOptions {
|
|
@@ -2942,6 +3062,12 @@ export declare function sampleThreadHelices(
|
|
|
2942
3062
|
options: ThreadHelixOptions,
|
|
2943
3063
|
): SampledThreadHelices;
|
|
2944
3064
|
|
|
3065
|
+
/** Multiplies a vector by a dimensionless scalar. */
|
|
3066
|
+
export declare const scale2: (
|
|
3067
|
+
vector: Vector2Tuple,
|
|
3068
|
+
scale: number,
|
|
3069
|
+
) => Vector2Tuple;
|
|
3070
|
+
|
|
2945
3071
|
/**
|
|
2946
3072
|
* Multiplies a vector by a dimensionless scalar.
|
|
2947
3073
|
* @example
|
|
@@ -2949,7 +3075,10 @@ export declare function sampleThreadHelices(
|
|
|
2949
3075
|
* scale3([1, 2, 3], 2); // [2, 4, 6]
|
|
2950
3076
|
* ```
|
|
2951
3077
|
*/
|
|
2952
|
-
export declare const scale3: (
|
|
3078
|
+
export declare const scale3: (
|
|
3079
|
+
vector: Vector3Tuple,
|
|
3080
|
+
scale: number,
|
|
3081
|
+
) => Vector3Tuple;
|
|
2953
3082
|
|
|
2954
3083
|
/**
|
|
2955
3084
|
* Creates an immutable axis-aligned scale transform.
|
|
@@ -2960,7 +3089,9 @@ export declare const scale3: (vector: Vector3, scale: number) => Vector3;
|
|
|
2960
3089
|
* @param factors - Finite, non-zero XYZ scale factors.
|
|
2961
3090
|
* @returns A frozen row-major transform.
|
|
2962
3091
|
*/
|
|
2963
|
-
export declare function scaleTransform3(
|
|
3092
|
+
export declare function scaleTransform3(
|
|
3093
|
+
factors: Vector3Tuple,
|
|
3094
|
+
): Transform3Matrix;
|
|
2964
3095
|
|
|
2965
3096
|
/** An open radius/height outline; consumers own closure, mounting geometry, and wall policy. */
|
|
2966
3097
|
export declare interface SideProfileCurve {
|
|
@@ -3066,7 +3197,7 @@ export declare const starContour: (
|
|
|
3066
3197
|
points: number,
|
|
3067
3198
|
innerRadius?: number,
|
|
3068
3199
|
limits?: Partial<GeometrySamplingLimits>,
|
|
3069
|
-
) => readonly
|
|
3200
|
+
) => readonly Vector2Tuple[];
|
|
3070
3201
|
|
|
3071
3202
|
/** End-cap treatment for an open stroked path. */
|
|
3072
3203
|
export declare type StrokePathCap = "butt" | "round" | "square";
|
|
@@ -3085,9 +3216,9 @@ export declare type StrokePathJoin = "bevel" | "miter" | "round";
|
|
|
3085
3216
|
export declare function strokePathRegion(
|
|
3086
3217
|
path: Path2,
|
|
3087
3218
|
options: StrokePathRegionOptions,
|
|
3088
|
-
):
|
|
3219
|
+
): RegionData;
|
|
3089
3220
|
|
|
3090
|
-
/** Physical stroke and topology controls
|
|
3221
|
+
/** Physical stroke and topology controls shared by pure regions and native Sections. */
|
|
3091
3222
|
export declare interface StrokePathRegionOptions {
|
|
3092
3223
|
/** Explicit path, circular and expanded-profile allocation ceilings. */
|
|
3093
3224
|
readonly limits?: Partial<GeometrySamplingLimits>;
|
|
@@ -3103,6 +3234,12 @@ export declare interface StrokePathRegionOptions {
|
|
|
3103
3234
|
readonly width: number;
|
|
3104
3235
|
}
|
|
3105
3236
|
|
|
3237
|
+
/** Subtracts `b` from `a` component-wise. */
|
|
3238
|
+
export declare const subtract2: (
|
|
3239
|
+
a: Vector2Tuple,
|
|
3240
|
+
b: Vector2Tuple,
|
|
3241
|
+
) => Vector2Tuple;
|
|
3242
|
+
|
|
3106
3243
|
/**
|
|
3107
3244
|
* Subtracts `b` from `a`.
|
|
3108
3245
|
* @example
|
|
@@ -3110,7 +3247,10 @@ export declare interface StrokePathRegionOptions {
|
|
|
3110
3247
|
* subtract3([4, 5, 6], [1, 2, 3]); // [3, 3, 3]
|
|
3111
3248
|
* ```
|
|
3112
3249
|
*/
|
|
3113
|
-
export declare const subtract3: (
|
|
3250
|
+
export declare const subtract3: (
|
|
3251
|
+
a: Vector3Tuple,
|
|
3252
|
+
b: Vector3Tuple,
|
|
3253
|
+
) => Vector3Tuple;
|
|
3114
3254
|
|
|
3115
3255
|
/** Sampling controls for deterministic SVG-to-region conversion. */
|
|
3116
3256
|
export declare interface SvgImportOptions {
|
|
@@ -3134,7 +3274,7 @@ export declare interface SvgRegionPreflight {
|
|
|
3134
3274
|
/** Appearance-preserving cleanup observed during parsing and normalization. */
|
|
3135
3275
|
readonly repairs: SvgRegionPreflightRepairs;
|
|
3136
3276
|
/** Canonical millimetre, Y-up geometry. */
|
|
3137
|
-
readonly region:
|
|
3277
|
+
readonly region: RegionData;
|
|
3138
3278
|
/** Bounded source and flattening complexity measurements. */
|
|
3139
3279
|
readonly source: SvgRegionPreflightSourceMetrics;
|
|
3140
3280
|
}
|
|
@@ -3200,7 +3340,7 @@ export declare interface SvgRegionPreflightSourceMetrics {
|
|
|
3200
3340
|
*/
|
|
3201
3341
|
export declare function sweepMesh(
|
|
3202
3342
|
profile: Contour,
|
|
3203
|
-
path: readonly
|
|
3343
|
+
path: readonly Vector3Tuple[],
|
|
3204
3344
|
options?: SweepOptions,
|
|
3205
3345
|
): TriangleMesh;
|
|
3206
3346
|
|
|
@@ -3221,7 +3361,7 @@ export declare interface SweepOptions {
|
|
|
3221
3361
|
/** Twist advances by physical path length (default), or normalized authored station position, including a closed seam gap. */
|
|
3222
3362
|
readonly twistBy?: "length" | "stations";
|
|
3223
3363
|
/** Positive uniform/XY scale, or one XY pair per path station. Defaults to one. */
|
|
3224
|
-
readonly scale?: number |
|
|
3364
|
+
readonly scale?: number | Vector2Tuple | readonly Vector2Tuple[];
|
|
3225
3365
|
/** Corresponding point-index advance at a rotationally equivalent closed seam. */
|
|
3226
3366
|
readonly seamProfileOffset?: number;
|
|
3227
3367
|
}
|
|
@@ -3234,13 +3374,13 @@ export declare type SweepOrientation =
|
|
|
3234
3374
|
/** Minimizes frame rotation by parallel transport. */
|
|
3235
3375
|
readonly kind: "transport";
|
|
3236
3376
|
/** Initial profile +X guide, projected perpendicular to the first tangent. */
|
|
3237
|
-
readonly initialNormal?:
|
|
3377
|
+
readonly initialNormal?: Vector3Tuple;
|
|
3238
3378
|
}
|
|
3239
3379
|
| {
|
|
3240
3380
|
/** Projects one fixed world-space normal at every path station. */
|
|
3241
3381
|
readonly kind: "fixed-normal";
|
|
3242
3382
|
/** Directed profile +X guide; must not be parallel to any local tangent. */
|
|
3243
|
-
readonly normal:
|
|
3383
|
+
readonly normal: Vector3Tuple;
|
|
3244
3384
|
}
|
|
3245
3385
|
| {
|
|
3246
3386
|
/** Uses an explicitly directed normal callback at each original normalized station. */
|
|
@@ -3451,7 +3591,7 @@ export declare interface ThreadProfile {
|
|
|
3451
3591
|
/** Adjacent axial thread spacing in millimetres. */
|
|
3452
3592
|
readonly pitch: number;
|
|
3453
3593
|
/** Immutable open `[axial, radial]` path spanning one pitch. */
|
|
3454
|
-
readonly points: readonly
|
|
3594
|
+
readonly points: readonly Vector2Tuple[];
|
|
3455
3595
|
/** Axial width of the flat at the minor envelope. */
|
|
3456
3596
|
readonly rootFlatWidth: number;
|
|
3457
3597
|
}
|
|
@@ -3496,13 +3636,116 @@ export declare interface TorusOptions extends PrimitivePlacement {
|
|
|
3496
3636
|
readonly resolution?: GeometryResolution;
|
|
3497
3637
|
}
|
|
3498
3638
|
|
|
3639
|
+
/** Immutable reusable XY placement. Methods apply in written order; angles are degrees. */
|
|
3640
|
+
export declare interface Transform2 {
|
|
3641
|
+
/** Applies a translation in model units after this placement. */
|
|
3642
|
+
translate(offset: Vector2Input): Transform2;
|
|
3643
|
+
/** Rotates counterclockwise in degrees about an optional world-space pivot (default origin). */
|
|
3644
|
+
rotate(degrees: number, options?: Pivot2Options): Transform2;
|
|
3645
|
+
/** Scales about an optional world-space pivot; finite nonzero factors may reflect. */
|
|
3646
|
+
scale(factors: number | Vector2Input, options?: Pivot2Options): Transform2;
|
|
3647
|
+
/** Applies this placement first, then `next`; neither operand is mutated. */
|
|
3648
|
+
andThen(next: Transform2Input): Transform2;
|
|
3649
|
+
/** Returns the inverse; singular and numerically unstable transforms throw GeometryError. */
|
|
3650
|
+
inverse(): Transform2;
|
|
3651
|
+
/** Transforms a finite point, including translation. Returns a fresh immutable vector. */
|
|
3652
|
+
applyPoint(point: Vector2Input): Vector2;
|
|
3653
|
+
/** Transforms a finite direction, excluding translation and retaining scale. This is not a normal transform. */
|
|
3654
|
+
applyDirection(direction: Vector2Input): Vector2;
|
|
3655
|
+
/** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
|
|
3656
|
+
applyNormal(normal: Vector2Input): Vector2;
|
|
3657
|
+
/** Returns the frozen canonical row-major 3x3 matrix for interchange. */
|
|
3658
|
+
toMatrix(): Transform2Matrix;
|
|
3659
|
+
/** Embeds this placement in XYZ, leaving Z unchanged, for solids and 3D paths. */
|
|
3660
|
+
to3D(): Transform3;
|
|
3661
|
+
}
|
|
3662
|
+
|
|
3663
|
+
/**
|
|
3664
|
+
* Creates an immutable XY transform, identity by default. Matrices are copied and validated.
|
|
3665
|
+
* Pass it directly to Section.transform() and planar data helpers; to3D() explicitly crosses into XYZ.
|
|
3666
|
+
* Zero scales and singular matrices throw GeometryError; negative scales reflect.
|
|
3667
|
+
*
|
|
3668
|
+
* @example
|
|
3669
|
+
* ```ts
|
|
3670
|
+
* const placement = transform2().rotate(90).translate([10, 0]);
|
|
3671
|
+
* placement.applyPoint([1, 0]).toArray(); // approximately [10, 1]
|
|
3672
|
+
* ```
|
|
3673
|
+
*/
|
|
3674
|
+
export declare function transform2(matrix?: Transform2Matrix): Transform2;
|
|
3675
|
+
|
|
3676
|
+
/** An immutable XY transform or its canonical row-major matrix for interchange. */
|
|
3677
|
+
export declare type Transform2Input = Transform2 | Transform2Matrix;
|
|
3678
|
+
|
|
3679
|
+
/**
|
|
3680
|
+
* A row-major affine 3x3 XY matrix applied to column vectors.
|
|
3681
|
+
* Translation occupies indices 2 and 5; the final row is `[0, 0, 1]`.
|
|
3682
|
+
*/
|
|
3683
|
+
export declare type Transform2Matrix = readonly [
|
|
3684
|
+
m00: number,
|
|
3685
|
+
m01: number,
|
|
3686
|
+
m02: number,
|
|
3687
|
+
m10: number,
|
|
3688
|
+
m11: number,
|
|
3689
|
+
m12: number,
|
|
3690
|
+
m20: number,
|
|
3691
|
+
m21: number,
|
|
3692
|
+
m22: number,
|
|
3693
|
+
];
|
|
3694
|
+
|
|
3695
|
+
/** Immutable reusable XYZ placement. Methods apply in written order; angles are degrees. */
|
|
3696
|
+
export declare interface Transform3 {
|
|
3697
|
+
/** Applies a translation in model units after this placement. */
|
|
3698
|
+
translate(offset: Vector3Input): Transform3;
|
|
3699
|
+
/** Rotates about global X, then Y, then Z in degrees, about an optional world-space pivot. */
|
|
3700
|
+
rotate(degrees: Vector3Input, options?: Pivot3Options): Transform3;
|
|
3701
|
+
/** Rotates right-handed in degrees about a nonzero axis and optional world-space pivot. */
|
|
3702
|
+
rotateAxis(
|
|
3703
|
+
axis: Vector3Input,
|
|
3704
|
+
degrees: number,
|
|
3705
|
+
options?: Pivot3Options,
|
|
3706
|
+
): Transform3;
|
|
3707
|
+
/** Scales about an optional world-space pivot; finite nonzero factors may reflect. */
|
|
3708
|
+
scale(factors: number | Vector3Input, options?: Pivot3Options): Transform3;
|
|
3709
|
+
/** Applies this placement first, then `next`; equivalent to composeTransform3(next, current). */
|
|
3710
|
+
andThen(next: Transform3Input): Transform3;
|
|
3711
|
+
/** Returns the inverse; singular and numerically unstable transforms throw GeometryError. */
|
|
3712
|
+
inverse(): Transform3;
|
|
3713
|
+
/** Transforms a finite point, including translation. Returns a fresh immutable vector. */
|
|
3714
|
+
applyPoint(point: Vector3Input): Vector3;
|
|
3715
|
+
/** Transforms a finite direction, excluding translation and retaining scale. This is not a normal transform. */
|
|
3716
|
+
applyDirection(direction: Vector3Input): Vector3;
|
|
3717
|
+
/** Applies the inverse transpose and normalizes. Ignores translation; rejects zero normals. */
|
|
3718
|
+
applyNormal(normal: Vector3Input): Vector3;
|
|
3719
|
+
/** Returns the frozen canonical row-major 4x4 matrix for interchange. */
|
|
3720
|
+
toMatrix(): Transform3Matrix;
|
|
3721
|
+
/** Restricts to XY; throws GeometryError for a plane change or singular XY restriction. */
|
|
3722
|
+
to2D(): Transform2;
|
|
3723
|
+
}
|
|
3724
|
+
|
|
3725
|
+
/**
|
|
3726
|
+
* Creates an immutable XYZ transform, identity by default. Matrices are copied and validated.
|
|
3727
|
+
* Calls apply in written order; rotations use degrees and pivots use current world coordinates.
|
|
3728
|
+
* Zero scales, singular matrices, nonfinite inputs and zero rotation axes throw GeometryError.
|
|
3729
|
+
* Use frameTransform3(frame) as the input for existing orthonormal frame placement.
|
|
3730
|
+
*
|
|
3731
|
+
* @example
|
|
3732
|
+
* ```ts
|
|
3733
|
+
* const placement = transform3().rotate([0, 0, 90]).translate([10, 0, 0]);
|
|
3734
|
+
* placement.applyPoint([1, 0, 0]).toArray(); // approximately [10, 1, 0]
|
|
3735
|
+
* ```
|
|
3736
|
+
*/
|
|
3737
|
+
export declare function transform3(matrix?: Transform3Matrix): Transform3;
|
|
3738
|
+
|
|
3739
|
+
/** An immutable XYZ transform or its canonical row-major matrix for interchange. */
|
|
3740
|
+
export declare type Transform3Input = Transform3 | Transform3Matrix;
|
|
3741
|
+
|
|
3499
3742
|
/**
|
|
3500
3743
|
* A row-major affine 4x4 matrix applied to column vectors.
|
|
3501
3744
|
*
|
|
3502
3745
|
* Translation occupies indices 3, 7, and 11. The final row must be
|
|
3503
3746
|
* `[0, 0, 0, 1]` within the active geometry tolerance.
|
|
3504
3747
|
*/
|
|
3505
|
-
export declare type
|
|
3748
|
+
export declare type Transform3Matrix = readonly [
|
|
3506
3749
|
m00: number,
|
|
3507
3750
|
m01: number,
|
|
3508
3751
|
m02: number,
|
|
@@ -3522,13 +3765,13 @@ export declare type Transform3 = readonly [
|
|
|
3522
3765
|
];
|
|
3523
3766
|
|
|
3524
3767
|
/**
|
|
3525
|
-
*
|
|
3768
|
+
* Applies a canonical affine XY transform to a closed loop and preserves its original winding.
|
|
3526
3769
|
*
|
|
3527
3770
|
* Reflections reverse the point order automatically through normalization.
|
|
3528
3771
|
*/
|
|
3529
3772
|
export declare function transformContour(
|
|
3530
3773
|
loop: Contour,
|
|
3531
|
-
transform:
|
|
3774
|
+
transform: Transform2Input,
|
|
3532
3775
|
tolerance?: GeometryToleranceOptions,
|
|
3533
3776
|
): Contour;
|
|
3534
3777
|
|
|
@@ -3540,27 +3783,32 @@ export declare function transformContour(
|
|
|
3540
3783
|
* @param transform - Valid affine transform.
|
|
3541
3784
|
* @returns Signed linear determinant.
|
|
3542
3785
|
*/
|
|
3543
|
-
export declare function transformDeterminant3(
|
|
3786
|
+
export declare function transformDeterminant3(
|
|
3787
|
+
transform: Transform3Matrix,
|
|
3788
|
+
): number;
|
|
3544
3789
|
|
|
3545
|
-
/** Applies
|
|
3790
|
+
/** Applies a canonical affine XY transform to a 2D path without changing point order. */
|
|
3546
3791
|
export declare function transformPath2(
|
|
3547
3792
|
path: Path2,
|
|
3548
|
-
transform:
|
|
3793
|
+
transform: Transform2Input,
|
|
3549
3794
|
tolerance?: GeometryToleranceOptions,
|
|
3550
3795
|
): Path2;
|
|
3551
3796
|
|
|
3552
3797
|
/** Applies an affine transform to a 3D path without mutating its points. */
|
|
3553
3798
|
export declare function transformPath3(
|
|
3554
3799
|
path: Path3,
|
|
3555
|
-
|
|
3800
|
+
placement: Transform3Input,
|
|
3556
3801
|
): Path3;
|
|
3557
3802
|
|
|
3558
|
-
/**
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3803
|
+
/**
|
|
3804
|
+
* Transforms serialized polygon data with reflection-safe winding, without an engine.
|
|
3805
|
+
* Use Section.transform(placement) when authoring filled geometry; this utility serves pure data preparation.
|
|
3806
|
+
*/
|
|
3807
|
+
export declare function transformRegionData(
|
|
3808
|
+
region: RegionData,
|
|
3809
|
+
transform: Transform2Input,
|
|
3562
3810
|
tolerance?: GeometryToleranceOptions,
|
|
3563
|
-
):
|
|
3811
|
+
): RegionData;
|
|
3564
3812
|
|
|
3565
3813
|
/**
|
|
3566
3814
|
* Applies an affine transform to a mesh and preserves outward face orientation.
|
|
@@ -3574,7 +3822,7 @@ export declare function transformRegion(
|
|
|
3574
3822
|
*/
|
|
3575
3823
|
export declare function transformTriangleMesh(
|
|
3576
3824
|
mesh: TriangleMesh,
|
|
3577
|
-
transform:
|
|
3825
|
+
transform: Transform3Matrix,
|
|
3578
3826
|
): TriangleMesh;
|
|
3579
3827
|
|
|
3580
3828
|
/**
|
|
@@ -3583,7 +3831,9 @@ export declare function transformTriangleMesh(
|
|
|
3583
3831
|
* @param offset - Finite XYZ translation in model units.
|
|
3584
3832
|
* @returns A frozen row-major transform.
|
|
3585
3833
|
*/
|
|
3586
|
-
export declare function translationTransform3(
|
|
3834
|
+
export declare function translationTransform3(
|
|
3835
|
+
offset: Vector3Tuple,
|
|
3836
|
+
): Transform3Matrix;
|
|
3587
3837
|
|
|
3588
3838
|
/** Trapezoidal thread profile with a configurable included angle. */
|
|
3589
3839
|
export declare interface TrapezoidalThreadProfileSpec extends ThreadProfileBaseSpec {
|
|
@@ -3802,9 +4052,9 @@ export declare function validateSolidMesh(
|
|
|
3802
4052
|
* @throws {@link GeometryError} For non-finite, non-affine, or singular matrices.
|
|
3803
4053
|
*/
|
|
3804
4054
|
export declare function validateTransform3(
|
|
3805
|
-
transform:
|
|
4055
|
+
transform: Transform3Matrix,
|
|
3806
4056
|
tolerance?: GeometryToleranceOptions,
|
|
3807
|
-
):
|
|
4057
|
+
): Transform3Matrix;
|
|
3808
4058
|
|
|
3809
4059
|
/**
|
|
3810
4060
|
* Validates mesh buffers, indices, triangle area, and optionally closed topology.
|
|
@@ -3823,11 +4073,97 @@ export declare function validateTriangleMesh(
|
|
|
3823
4073
|
options?: TriangleMeshValidationOptions,
|
|
3824
4074
|
): TriangleMesh;
|
|
3825
4075
|
|
|
4076
|
+
/** Immutable XY arithmetic; vector operations return new values and measurements return numbers. */
|
|
4077
|
+
export declare interface Vector2 {
|
|
4078
|
+
/** X coordinate in the vector's coordinate units. */
|
|
4079
|
+
readonly x: number;
|
|
4080
|
+
/** Y coordinate in the vector's coordinate units. */
|
|
4081
|
+
readonly y: number;
|
|
4082
|
+
/** Adds another vector component-wise. */
|
|
4083
|
+
add(other: Vector2Input): Vector2;
|
|
4084
|
+
/** Subtracts another vector component-wise. */
|
|
4085
|
+
subtract(other: Vector2Input): Vector2;
|
|
4086
|
+
/** Multiplies by a finite dimensionless scalar. */
|
|
4087
|
+
scale(factor: number): Vector2;
|
|
4088
|
+
/** Returns a unit vector; rejects length at or below finite nonnegative `epsilon` (default `1e-12`). */
|
|
4089
|
+
normalize(epsilon?: number): Vector2;
|
|
4090
|
+
/** Interpolates toward another vector by finite dimensionless `t`; extrapolation is allowed. */
|
|
4091
|
+
lerp(other: Vector2Input, t: number): Vector2;
|
|
4092
|
+
/** Returns the scalar dot product. */
|
|
4093
|
+
dot(other: Vector2Input): number;
|
|
4094
|
+
/** Returns the signed scalar cross product; positive means the other vector is counterclockwise. */
|
|
4095
|
+
cross(other: Vector2Input): number;
|
|
4096
|
+
/** Returns Euclidean length in the vector's coordinate units. */
|
|
4097
|
+
length(): number;
|
|
4098
|
+
/** Returns Euclidean distance to another vector in the same coordinate units. */
|
|
4099
|
+
distance(other: Vector2Input): number;
|
|
4100
|
+
/** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
|
|
4101
|
+
toArray(): Vector2Tuple;
|
|
4102
|
+
}
|
|
4103
|
+
|
|
4104
|
+
/**
|
|
4105
|
+
* Creates immutable XY arithmetic from a finite tuple or vector, snapshotting the coordinates.
|
|
4106
|
+
* Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
|
|
4107
|
+
* and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
4108
|
+
* Use transform2().applyDirection(value) for rotations and nonuniform scaling.
|
|
4109
|
+
*/
|
|
4110
|
+
export declare function vector2(input: Vector2Input): Vector2;
|
|
4111
|
+
|
|
4112
|
+
/** An XY tuple or immutable fluent vector accepted by vector operations. */
|
|
4113
|
+
export declare type Vector2Input = Vector2Tuple | Vector2;
|
|
4114
|
+
|
|
3826
4115
|
/** A two-dimensional Cartesian vector or point. */
|
|
3827
|
-
export declare type
|
|
4116
|
+
export declare type Vector2Tuple = readonly [x: number, y: number];
|
|
4117
|
+
|
|
4118
|
+
/** Immutable XYZ arithmetic; vector operations return new values and measurements return numbers. */
|
|
4119
|
+
export declare interface Vector3 {
|
|
4120
|
+
/** X coordinate in the vector's coordinate units. */
|
|
4121
|
+
readonly x: number;
|
|
4122
|
+
/** Y coordinate in the vector's coordinate units. */
|
|
4123
|
+
readonly y: number;
|
|
4124
|
+
/** Z coordinate in the vector's coordinate units. */
|
|
4125
|
+
readonly z: number;
|
|
4126
|
+
/** Adds another vector component-wise. */
|
|
4127
|
+
add(other: Vector3Input): Vector3;
|
|
4128
|
+
/** Subtracts another vector component-wise. */
|
|
4129
|
+
subtract(other: Vector3Input): Vector3;
|
|
4130
|
+
/** Multiplies by a finite dimensionless scalar. */
|
|
4131
|
+
scale(factor: number): Vector3;
|
|
4132
|
+
/** Returns a unit vector; rejects length at or below finite nonnegative `epsilon` (default `1e-12`). */
|
|
4133
|
+
normalize(epsilon?: number): Vector3;
|
|
4134
|
+
/** Interpolates toward another vector by finite dimensionless `t`; extrapolation is allowed. */
|
|
4135
|
+
lerp(other: Vector3Input, t: number): Vector3;
|
|
4136
|
+
/** Returns the scalar dot product. */
|
|
4137
|
+
dot(other: Vector3Input): number;
|
|
4138
|
+
/** Returns the right-handed cross product as a new vector. */
|
|
4139
|
+
cross(other: Vector3Input): Vector3;
|
|
4140
|
+
/** Returns Euclidean length in the vector's coordinate units. */
|
|
4141
|
+
length(): number;
|
|
4142
|
+
/** Returns Euclidean distance to another vector in the same coordinate units. */
|
|
4143
|
+
distance(other: Vector3Input): number;
|
|
4144
|
+
/** Returns this value's frozen readonly tuple for interchange; repeated calls do not allocate. */
|
|
4145
|
+
toArray(): Vector3Tuple;
|
|
4146
|
+
}
|
|
4147
|
+
|
|
4148
|
+
/**
|
|
4149
|
+
* Creates immutable XYZ arithmetic from a finite tuple or vector, snapshotting the coordinates.
|
|
4150
|
+
* Values and results are finite. Invalid dimensions throw `INVALID_ARGUMENT`; nonfinite coordinates
|
|
4151
|
+
* and overflow throw `NON_FINITE_VALUE` GeometryError.
|
|
4152
|
+
* Use transform3().applyDirection(value) for rotations and nonuniform scaling.
|
|
4153
|
+
*
|
|
4154
|
+
* @example
|
|
4155
|
+
* ```ts
|
|
4156
|
+
* const direction = vector3([1, 2, 3]).add([4, 0, 0]).normalize().scale(10);
|
|
4157
|
+
* const alignment = direction.dot([0, 0, 1]);
|
|
4158
|
+
* ```
|
|
4159
|
+
*/
|
|
4160
|
+
export declare function vector3(input: Vector3Input): Vector3;
|
|
4161
|
+
|
|
4162
|
+
/** An XYZ tuple or immutable fluent vector accepted by vector operations. */
|
|
4163
|
+
export declare type Vector3Input = Vector3Tuple | Vector3;
|
|
3828
4164
|
|
|
3829
4165
|
/** A three-dimensional Cartesian vector or point. */
|
|
3830
|
-
export declare type
|
|
4166
|
+
export declare type Vector3Tuple = readonly [x: number, y: number, z: number];
|
|
3831
4167
|
|
|
3832
4168
|
/** A circular baseline centered at the XY origin, with rigid shaped glyph groups. */
|
|
3833
4169
|
export declare interface VectorTextArcBaseline {
|