bd-admin
Version:
一款能根据需求快速配置vue后台管理的脚手架
102 lines (91 loc) • 3.29 kB
text/typescript
interface Controls {
enableZoom?: boolean; // 启用或禁用摄像机的缩放。==>true
zoomSpeed?: number; // 摄像机缩放的速度 ==>0.5
enableDamping?: boolean; //启用阻尼 ==> true
maxDistance?: number; // 相机向外移动多少 ==> 1000
minDistance?: number; // 相机向内移动多少 ==> 30
rotateSpeed?: number; // 旋转的速度 ==> 0.5
maxPolarAngle?: number; // 垂直旋转的角度的上限,范围是0到Math.PI ==> Math.PI / 2
maxAzimuthAngle?: number; // 水平旋转的角度的上限,范围是-Math.PI到Math.PI(或Infinity无限制) ==> Math.PI / 4,
minAzimuthAngle?: number; // 水平旋转的角度的下限,范围是-Math.PI到Math.PI(或-Infinity无限制) ==> -Math.PI / 4,
}
export interface Params {
id: string;
cameraPosition: Vector3; // 相机坐标
lookAt?: Vector3; // 相机视角
timeMultiply?: number; // 模拟太阳光旋转时间倍率 timeMultiply * 31.4秒 仅 shadow为true有效
shadow?: boolean; // 阴影
far?: number; // 摄像机视锥体远端面
lightPostion?: Vector3; // 光照高度
intensity?: number; // 光照强度
bgImageArray?: string[]; // 背景图
controls?: Controls; //相机控制器
}
export type Vector3 = {
x: number;
y: number;
z: number;
};
export interface SetModel {
name: string;
position: Vector3;
}
export interface ModelParams {
name: string; // 模型名
url: string; // 模型路径
KTX2?: string; //KTX2材质
position: Vector3; // 模型坐标
scale?: Vector3; // 模型缩放比例
rotation?: Vector3; // 模型旋转弧度
activeAction?: string; //模型默认播放动画
DRACO?: string;
}
export interface ModelMove {
name: string;
speed: number[];
dt: number;
}
// 注册回调事件类型,点击事件click和渲染事件render,精灵图点击spriteClick,模型点击modelClick
export type FnRenderType = "click" | "spriteClick" | "modelClick" | "mouseMove";
export type ModelMap = {
mode: any; // 模型
actions: {
// 播放动画使用
[key: string]: THREE.AnimationAction;
};
mixerArray: THREE.AnimationMixer[]; // 推进混合器时间并更新动画,在渲染循环中完成
};
export interface Loader {
loaderStartTime: number; //加载开始时间
loaderEndTime: number; // 加载结束时间
loader: number; // 加载进度
renderStatus: boolean; // 状态
renderTime: null | number; // 渲染时间
}
export interface SpriteParams {
value: string;
x?: number;
y?: number;
z?: number;
width?: number;
height?: number;
color?: string;
zoom?: number;
name?: string;
}
export interface ShapeGeometry {
name: string; // 围栏名称 *唯一性
visible?: boolean; // 围栏显示状态 默认显示
type?: "curve" | "line" | "face"; // 围栏类型 , curve曲线 line 直线 默认值为line
color?: string; //"围栏颜色"
linewidth?: number; // 围栏宽度
linecap?: "butt" | "round" | "square"; // 两端的样式 默认值为 'round'
}
export type LabelType = "CSS2DObject" | "CSS3DObject" | "CSS3DSprite";
export interface LabelParams {
name: string; // 标签名称 *唯一性
type: LabelType; // 标签类型
element: HTMLElement; // html
position?: Vector3; // 坐标
scale?: Vector3; // 缩放比例
}