import { Geom2d_Curve, Geom_Surface, BitbybitOcctModule, TopoDS_Edge, TopoDS_Shape, TopoDS_Wire, gp_Circ2d } from "../../../bitbybit-dev-occt/bitbybit-dev-occt"; import * as Inputs from "../../api/inputs"; import { Base } from "../../api/inputs"; import { VectorHelperService } from "../../api/vector-helper.service"; import { ConverterService } from "./converter.service"; import { EntitiesService } from "./entities.service"; import { ShapeGettersService } from "./shape-getters"; import { IteratorService } from "./iterator.service"; import { EnumService } from "./enum.service"; import { GeomService } from "./geom.service"; import { TransformsService } from "./transforms.service"; export declare class EdgesService { private readonly occ; private readonly shapeGettersService; private readonly entitiesService; private readonly iteratorService; private readonly converterService; private readonly enumService; private readonly geomService; private readonly transformsService; private readonly vecHelper; constructor(occ: BitbybitOcctModule, shapeGettersService: ShapeGettersService, entitiesService: EntitiesService, iteratorService: IteratorService, converterService: ConverterService, enumService: EnumService, geomService: GeomService, transformsService: TransformsService, vecHelper: VectorHelperService); getCornerPointsOfEdgesForShape(inputs: Inputs.OCCT.ShapeDto): Inputs.Base.Point3[]; getCircularEdgesAlongWire(inputs: Inputs.OCCT.ShapeDto): TopoDS_Edge[]; getLinearEdgesAlongWire(inputs: Inputs.OCCT.ShapeDto): TopoDS_Edge[]; getEdgesAlongWire(inputs: Inputs.OCCT.ShapeDto): TopoDS_Edge[]; fixEdgeOrientationsAlongWire(inputs: Inputs.OCCT.ShapeDto): TopoDS_Wire; arcThroughThreePoints(inputs: Inputs.OCCT.ArcEdgeThreePointsDto): TopoDS_Edge; arcThroughTwoPointsAndTangent(inputs: Inputs.OCCT.ArcEdgeTwoPointsTangentDto): TopoDS_Edge; arcFromCircleAndTwoAngles(inputs: Inputs.OCCT.ArcEdgeCircleTwoAnglesDto): TopoDS_Edge; arcFromCirclePointAndAngle(inputs: Inputs.OCCT.ArcEdgeCirclePointAngleDto): TopoDS_Edge; lineEdge(inputs: Inputs.OCCT.LineDto): TopoDS_Edge; getEdgeLength(inputs: Inputs.OCCT.ShapeDto): number; getEdgeLengthsOfShape(inputs: Inputs.OCCT.ShapeDto): number[]; getEdgesLengths(inputs: Inputs.OCCT.ShapesDto): number[]; getEdgesCentersOfMass(inputs: Inputs.OCCT.ShapesDto): Base.Point3[]; edgesToPoints(inputs: Inputs.OCCT.EdgesToPointsDto): Inputs.Base.Point3[][]; startPointOnEdge(inputs: Inputs.OCCT.ShapeDto): Base.Point3; endPointOnEdge(inputs: Inputs.OCCT.ShapeDto): Base.Point3; edgeToPoints(inputs: Inputs.OCCT.EdgesToPointsDto): Inputs.Base.Point3[]; makeEdgeFromGeom2dCurveAndSurfaceBounded(inputs: Inputs.OCCT.CurveAndSurfaceDto, umin: number, umax: number): TopoDS_Edge; makeEdgeFromGeom2dCurveAndSurface(inputs: Inputs.OCCT.CurveAndSurfaceDto): TopoDS_Edge; constraintTanLinesFromTwoPtsToCircle(inputs: Inputs.OCCT.ConstraintTanLinesFromTwoPtsToCircleDto): TopoDS_Shape[]; constraintTanLinesFromPtToCircle(inputs: Inputs.OCCT.ConstraintTanLinesFromPtToCircleDto): TopoDS_Shape[]; constraintTanLinesOnTwoCircles(inputs: Inputs.OCCT.ConstraintTanLinesOnTwoCirclesDto): TopoDS_Shape[]; constraintTanCirclesOnCircleAndPnt(inputs: Inputs.OCCT.ConstraintTanCirclesOnCircleAndPntDto): TopoDS_Shape[]; private alignCircle; constraintTanCirclesOnTwoCircles(inputs: Inputs.OCCT.ConstraintTanCirclesOnTwoCirclesDto): TopoDS_Shape[]; divideEdgeByParamsToPoints(inputs: Inputs.OCCT.DivideDto): Inputs.Base.Point3[]; divideEdgeByEqualDistanceToPoints(inputs: Inputs.OCCT.DivideDto): Base.Point3[]; pointOnEdgeAtParam(inputs: Inputs.OCCT.DataOnGeometryAtParamDto): Base.Point3; private reconstructCircleAndAlignBack; arcFromCircleAndTwoPoints(inputs: Inputs.OCCT.ArcEdgeCircleTwoPointsDto): TopoDS_Edge; getCircularEdgePlaneDirection(inputs: Inputs.OCCT.ShapeDto): Inputs.Base.Vector3; getCircularEdgeCenterPoint(inputs: Inputs.OCCT.ShapeDto): Inputs.Base.Point3; getCircularEdgeRadius(inputs: Inputs.OCCT.ShapeDto): number; private getGpCircleFromEdge; getGpCircle2dFromEdge(inputs: Inputs.OCCT.ShapeDto): gp_Circ2d; tangentOnEdgeAtParam(inputs: Inputs.OCCT.DataOnGeometryAtParamDto): Base.Vector3; pointOnEdgeAtLength(inputs: Inputs.OCCT.DataOnGeometryAtLengthDto): Base.Point3; tangentOnEdgeAtLength(inputs: Inputs.OCCT.DataOnGeometryAtLengthDto): Base.Point3; getEdgeBounds(edge: TopoDS_Edge): { uMin: number; uMax: number; }; isEdgeCircular(inputs: Inputs.OCCT.ShapeDto): boolean; isEdgeLinear(inputs: Inputs.OCCT.ShapeDto): boolean; /** * Create symmetric periodic (closed) BSpline edge through points * Uses chord-based tangent constraints to ensure the curve is symmetrical * (e.g., 4 points of a square will produce a perfectly symmetric curve like Rhino) * @param inputs Points to interpolate * @returns Symmetric periodic BSpline edge */ createSymmetricPeriodicBSplineEdge(inputs: Inputs.OCCT.InterpolationDto): TopoDS_Edge; }