UNPKG

soonspacejs

Version:
38 lines (37 loc) 1.46 kB
import { Tween } from 'three/examples/jsm/libs/tween.module.js'; import { BaseObject3D } from './BaseObject3D'; import { Node, NodeInfo } from './Node'; import { Circle, CircleInfo } from './Circle'; import { Link, LinkInfo } from './Link'; import { TopologyNodeInfo, TopologyEffectInfo, TopologyInnerNodeInfo, IVector2, BaseObjectInfo } from '../Interface'; type TopologyType = 'line' | 'network'; interface TopologyInfo extends BaseObjectInfo, TopologyEffectInfo { nodes: TopologyNodeInfo[]; type: TopologyType; } interface TopologyInnerInfo extends BaseObjectInfo, TopologyEffectInfo { nodes: TopologyInnerNodeInfo[]; type: TopologyType; } type TopologyLinkImgAnimation = Pick<TopologyEffectInfo, 'imgUrl' | 'animation'>; declare class Topology extends BaseObject3D { topologyType: TopologyType; nodes: Node[]; links: Link[]; linksImgAnimation: Tween<IVector2> | null; info: TopologyInnerInfo; constructor(params?: TopologyInnerInfo); create(): void; createNode(params: NodeInfo): Node; createCircle(params: CircleInfo): Circle; createLink(params: LinkInfo): Link; /** * link 贴图动画 * @param params */ updateLinksImgAnimation(params?: TopologyLinkImgAnimation): void; resetNodes(newNodes: TopologyInnerNodeInfo[]): void; updateLinks(): void; getLength(): number; } export { Topology, TopologyInfo, TopologyInnerInfo, };