Files
lan-manager/web/node_modules/@antv/layout/es/layout/fruchterman.d.ts
openclaw 0a5f6a8047 Initial commit: Lan-manager project code
- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs

Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
2026-04-20 00:52:58 +08:00

74 lines
1.8 KiB
TypeScript

/**
* @fileOverview fruchterman layout
* @author shiwu.wyy@antfin.com
*/
import { OutNode, Edge, PointTuple, IndexMap, FruchtermanLayoutOptions } from "./types";
import { Base } from "./base";
type NodeMap = {
[key: string]: INode;
};
type INode = OutNode & {
cluster: string;
};
/**
* fruchterman 布局
*/
export declare class FruchtermanLayout extends Base {
/** 布局中心 */
center: PointTuple;
/** 停止迭代的最大迭代数 */
maxIteration: number;
/** 是否启动 worker */
workerEnabled: boolean;
/** 重力大小,影响图的紧凑程度 */
gravity: number;
/** 速度 */
speed: number;
/** 是否产生聚类力 */
clustering: boolean;
/** 聚类力大小 */
clusterGravity: number;
nodes: INode[] | null;
edges: Edge[] | null;
width: number;
height: number;
nodeMap: NodeMap;
nodeIdxMap: IndexMap;
/** 迭代结束的回调函数 */
onLayoutEnd: () => void;
/** 每次迭代结束的回调函数 */
tick: (() => void) | null;
/** 是否使用 window.setInterval 运行迭代 */
animate: boolean;
/** 迭代中的标识 */
private timeInterval;
constructor(options?: FruchtermanLayoutOptions);
getDefaultCfg(): {
maxIteration: number;
gravity: number;
speed: number;
clustering: boolean;
clusterGravity: number;
animate: boolean;
};
/**
* 执行布局
*/
execute(): {
nodes: INode[];
edges: Edge[] | null;
} | undefined;
run(): {
nodes: INode[];
edges: Edge[] | null;
} | undefined;
private runOneStep;
private applyCalculate;
private calRepulsive;
private calAttractive;
stop(): void;
destroy(): void;
getType(): string;
}
export {};