import { BitbybitOcctModule, TopoDS_Edge, TopoDS_Face, TopoDS_Shape, TopoDS_Wire } from "../../../bitbybit-dev-occt/bitbybit-dev-occt"; import * as Inputs from "../../api/inputs"; import { VectorHelperService } from "../../api/vector-helper.service"; import { IteratorService } from "./iterator.service"; import { ConverterService } from "./converter.service"; import { EntitiesService } from "./entities.service"; import { EdgesService } from "./edges.service"; import { ShapeGettersService } from "./shape-getters"; import { TransformsService } from "./transforms.service"; import { OperationsService } from "./operations.service"; import { FacesService } from "./faces.service"; export declare class FilletsService { private readonly occ; private readonly vecHelper; private readonly iteratorService; private readonly converterService; private readonly entitiesService; private readonly transformsService; private readonly shapeGettersService; private readonly edgesService; private readonly operationsService; private readonly facesService; constructor(occ: BitbybitOcctModule, vecHelper: VectorHelperService, iteratorService: IteratorService, converterService: ConverterService, entitiesService: EntitiesService, transformsService: TransformsService, shapeGettersService: ShapeGettersService, edgesService: EdgesService, operationsService: OperationsService, facesService: FacesService); filletEdges(inputs: Inputs.OCCT.FilletDto): TopoDS_Shape; filletEdgesListOneRadius(inputs: Inputs.OCCT.FilletEdgesListOneRadiusDto): TopoDS_Shape; filletEdgesList(inputs: Inputs.OCCT.FilletEdgesListDto): TopoDS_Shape; filletEdgeVariableRadius(inputs: Inputs.OCCT.FilletEdgeVariableRadiusDto): TopoDS_Shape; filletEdgesSameVariableRadius(inputs: Inputs.OCCT.FilletEdgesSameVariableRadiusDto): TopoDS_Shape; filletEdgesVariableRadius(inputs: Inputs.OCCT.FilletEdgesVariableRadiusDto): TopoDS_Shape; private assignVariableFilletToEdge; chamferEdges(inputs: Inputs.OCCT.ChamferDto): TopoDS_Shape; chamferEdgesList(inputs: Inputs.OCCT.ChamferEdgesListDto): TopoDS_Shape; chamferEdgeTwoDistances(inputs: Inputs.OCCT.ChamferEdgeTwoDistancesDto): TopoDS_Shape; chamferEdgesTwoDistances(inputs: Inputs.OCCT.ChamferEdgesTwoDistancesDto): TopoDS_Shape; chamferEdgesTwoDistancesLists(inputs: Inputs.OCCT.ChamferEdgesTwoDistancesListsDto): TopoDS_Shape; chamferEdgeDistAngle(inputs: Inputs.OCCT.ChamferEdgeDistAngleDto): TopoDS_Shape; chamferEdgesDistsAngles(inputs: Inputs.OCCT.ChamferEdgesDistsAnglesDto): TopoDS_Shape; chamferEdgesDistAngle(inputs: Inputs.OCCT.ChamferEdgesDistAngleDto): TopoDS_Shape; fillet2d(inputs: Inputs.OCCT.FilletDto): TopoDS_Face | TopoDS_Wire; /** * Fillets the corners of a wire that does not lie in a plane. * * OCCT has no 3D wire fillet, so the wire is extruded into a shell, the shell's edges are filleted, * and the wanted edge of each resulting face is collected back into a wire. That makes the whole * operation depend on how OCCT numbers the edges of an extrusion, which is observed behaviour * rather than anything documented, and cannot be worked out from first principles: * * - a 0-based corner `i >= 2` becomes extruded edge `4 + 3 * (i - 2)` * - a closed wire has its edge list rotated by one before that mapping applies * - on an open wire, corner 0 becomes edge 1 * - after filleting, the edge wanted from each resulting face is always at index 3 * * The assembled wire is finally translated back along the negated extrusion direction, undoing the * lift. The 2D fillet also falls back to this path whenever a wire is not made purely of straight * and circular edges, because the planar routine only handles those. * @param inputs wire, radius or radius list, corner indexes and the extrusion direction * @returns the filleted wire */ fillet3DWire(inputs: Inputs.OCCT.Fillet3DWireDto): TopoDS_Shape; private applyRadiusToVertex; chamfer2dVertices(inputs: Inputs.OCCT.Chamfer2dVertexDto): TopoDS_Face | TopoDS_Wire; private collectCornerVertices; private findEdgeContainingVertex; }