12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import * as vec2 from 'zrender/lib/core/vector.js';
- import { RectLike } from 'zrender/lib/core/BoundingRect.js';
- interface InputNode {
- p?: vec2.VectorArray;
- fixed?: boolean;
- /**
- * Weight
- */
- w: number;
- /**
- * Repulsion
- */
- rep: number;
- }
- interface InputEdge {
- ignoreForceLayout?: boolean;
- n1: InputNode;
- n2: InputNode;
- /**
- * Distance
- */
- d: number;
- }
- interface LayoutCfg {
- gravity?: number;
- friction?: number;
- rect?: RectLike;
- }
- export declare function forceLayout<N extends InputNode, E extends InputEdge>(inNodes: N[], inEdges: E[], opts: LayoutCfg): {
- warmUp: () => void;
- setFixed: (idx: number) => void;
- setUnfixed: (idx: number) => void;
- /**
- * Before step hook
- */
- beforeStep: (cb: (nodes: N[], edges: E[]) => void) => void;
- /**
- * After step hook
- */
- afterStep: (cb: (nodes: N[], edges: E[], finished: boolean) => void) => void;
- /**
- * Some formulas were originally copied from "d3.js"
- * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js
- * with some modifications made for this project.
- * See the license statement at the head of this file.
- */
- step: (cb?: (finished: boolean) => void) => void;
- };
- export {};
|