soonspacejs
Version:
soonspacejs 2.x
38 lines (37 loc) • 1.42 kB
TypeScript
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, };