sprotty
Version:
A next-gen framework for graphical views
42 lines • 2.31 kB
TypeScript
/********************************************************************************
* Copyright (c) 2019 TypeFox and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
********************************************************************************/
import { Point } from "sprotty-protocol/lib/utils/geometry";
import { SRoutingHandleImpl } from "./model";
import { ResolvedHandleMove } from "../move/move";
import { AnchorComputerRegistry } from "./anchor";
import { AbstractEdgeRouter, LinearRouteOptions } from "./abstract-edge-router";
import { SRoutableElementImpl } from "./model";
import { RoutedPoint } from "./routing";
export interface PolylineRouteOptions extends LinearRouteOptions {
/** The angle in radians below which a routing handle is removed. */
removeAngleThreshold: number;
}
export declare class PolylineEdgeRouter extends AbstractEdgeRouter {
anchorRegistry: AnchorComputerRegistry;
static readonly KIND = "polyline";
get kind(): string;
protected getOptions(edge: SRoutableElementImpl): PolylineRouteOptions;
route(edge: SRoutableElementImpl): RoutedPoint[];
/**
* Remove routed points that are in edit mode and for which the angle between the preceding and
* following points falls below a threshold.
*/
protected filterEditModeHandles(route: RoutedPoint[], edge: SRoutableElementImpl, options: PolylineRouteOptions): RoutedPoint[];
createRoutingHandles(edge: SRoutableElementImpl): void;
getInnerHandlePosition(edge: SRoutableElementImpl, route: RoutedPoint[], handle: SRoutingHandleImpl): Point | undefined;
applyInnerHandleMoves(edge: SRoutableElementImpl, moves: ResolvedHandleMove[]): void;
}
//# sourceMappingURL=polyline-edge-router.d.ts.map