@realsee/five
Version:
Realsee Renderer SDK
73 lines (72 loc) • 1.88 kB
TypeScript
import type { BasePlugin } from '../BasePlugin';
import * as THREE from 'three';
/** 插件数据 */
export type PluginData = {
points: THREE.Vector3[];
};
/** 服务端数据 */
export type ServerData = {
points: Array<{
x: number;
y: number;
z: number;
}>;
};
/** 插件配置 */
export interface Config {
/** 线条数量 */
lineCount?: number;
/** 线条间距 */
spacing?: number;
/** 曲线分段数 */
divisions?: number;
/** 线宽 */
lineWidth?: number;
/** 线条颜色 */
color?: number;
/** 流光速度(单位距离/秒,值越大速度越快) */
speed?: number;
/** 流光过渡范围 */
range?: number;
/** 波动幅度 */
waveAmp?: number;
/** 波动频率 */
waveFreq?: number;
/** 粒子数量 */
particleCount?: number;
/** 粒子最大飘散距离 */
maxDistance?: number;
/** 子网格 Y 轴偏移 */
subMeshYOffset?: number;
/** 子网格宽度 */
subMeshWidth?: number;
/** 子网格底色 */
subMeshColor?: number;
/** 子网格基础透明度 */
subMeshOpacity?: number;
}
/** 插件初始化参数 */
export interface Params {
config?: Partial<Config>;
initialState?: Partial<State>;
/** 初始路径点 */
points?: THREE.Vector3[];
}
/** 插件状态 */
export interface State extends BasePlugin.State {
/** 插件是否启用 */
enabled: boolean;
/** 插件整体是否可见 */
visible: boolean;
/** 动画是否正在播放 */
playing: boolean;
}
/** 插件事件 */
export interface EventMap extends BasePlugin.EventMap<State, PluginData> {
/** 动画开始播放 */
animationStart: () => void;
/** 动画停止播放 */
animationStop: () => void;
/** 路径点更新 */
pointsUpdate: (points: THREE.Vector3[]) => void;
}