| 123456789101112131415161718192021222324252627282930 |
- import Edge from "../../graph/edge/Edge.js"
- import Layering from "../../graph/layering/Layering.js";
- import Node from "../../graph/node/Node.js"
- import { AlgorithmContext } from "../AlgorithmContext.js"
- import Grid from "./grid/Grid.js";
- import DummyNode from "../../graph/node/DummyNode.js";
- /**
- * Набор рёбер обратной связи - рёбра, которые были инвертированы на этапе удаления циклов и должны быть восстановлены на этапе назначения координат.
- */
- export type FeedbackSet = Edge<Node>[];
- /**
- * Информация о разбиении длинного ребра на сегменты с dummy-вершинами. Содержит ссылку на исходное ребро и, при наличии, ссылки на новые рёбра, образованные в результате разбиения.
- */
- export type EdgeSubdivision<TNode extends Node> = {
- originalEdge: Edge<TNode>;
- segments: Edge<TNode>[];
- dummies: DummyNode[];
- };
- /**
- * Контекст, передаваемый между шагами алгоритма Сигуямы. Содержит всю необходимую информацию о графе, его разбиении на слои, сетке и рёбрах обратной связи, которая может быть использована и модифицирована на каждом этапе оптимизации.
- */
- export type SiguiyamaContext = AlgorithmContext & Partial<{
- feedbackSet: FeedbackSet,
- layering: Layering<Node, Edge<Node>>,
- grid: Grid<Node>,
- edgeSubdivisions: Map<string, EdgeSubdivision<Node>>
- }>
|