Appearance
类型定义
这里会集中详细介绍 SoonSpace.js 内部的基础接口和类型定义,这些 接口和类型 会在后续的文档字段类型描述时使用。
类型定义使用 TypeScript Interfaces、Literal Types 特性方式展示。
如下: IVector2 表示该接口必须具有 x、y 俩个属性,属性类型为 number; IVector3 表示从接口 IVector2 继承属性名定义后,扩展 z 属性,属性类型为 number; IColor 定义该值类型应该为 string 或者 number; AxisEnum 定义该值类型为 string,且具体可选枚举为 x | y | z。
...
IVector2
二维向量
ts
interface IVector2 {
x: number;
y: number;
}PlaneIVector2
平面二维向量
ts
interface PlaneIVector2 {
x: number;
z: number;
}IVector3
三维向量
ts
interface IVector3 extends IVector2 {
z: number;
}Position
空间坐标点
ts
interface Position extends IVector3 {}Rotation
旋转弧度
ts
interface Rotation extends IVector3 {}Scale
空间缩放比
ts
interface Scale extends IVector3 {}Level
物体可视层级范围
ts
interface Level {
max: number | null;
min: number | null;
}ScaleFixed
缩放比例固定
支持 Poi、PoiNode
ts
interface ScaleFixed {
originScale: number;
fixedScale: number;
distance: number;
}OffsetPoint
偏移量
ts
interface OffsetPoint {
offsetX: number;
offsetY: number;
}AxisType
空间轴类型
ts
type AxisType = 'x' | 'y' | 'z';SceneEventType
场景触发事件类型
ts
type SceneEventType = 'hover' | 'click' | 'rightClick' | 'dblClick';PoiType
Poi 展示类型
ts
type PoiType = '2d' | '2D' | '2.5d' | '2.5D' | '3d' | '3D';PoiNodeType
PoiNode 展示模式类型
ts
type PoiNodeType = PoiType;IColor
颜色
ts
import type { ColorRepresentation } from 'three';
type IColor = ColorRepresentation;CameraViewpointData
相机视角数据
ts
interface CameraViewpointData {
position: Position;
target: Position;
zoom: number;
}FlyToViewpoint
飞向视角枚举
ts
type FlyToViewpoint =
| 'current'
| 'top'
| 'bottom'
| 'front'
| 'back'
| 'left'
| 'right'
| 'frontTop'
| 'backTop'
| 'leftTop'
| 'rightTop'
| 'leftFrontTop'
| 'rightFrontTop'
| 'leftBackTop'
| 'rightBackTop';BaseObjectInfo
基础对象创建时的参入参数(BaseMesh、Point 等等)
ts
interface BaseObjectInfo {
id: string | number;
name?: string;
//
level?: Level;
visible?: boolean;
//
position?: Position;
rotation?: Rotation;
scale?: Scale;
//
userData?: any;
}BaseObject3DInfo
基础 3D 对象创建时的参入参数(BaseObject3D、Poi、PoiNode 等等)
ts
interface BaseObject3DInfo extends BaseObjectInfo {
//
onLoad?: ((object: Object3D) => void) | null;
//
onClick?: ((object: Object3D) => void) | null;
onDblClick?: ((object: Object3D) => void) | null;
onRightClick?: ((object: Object3D) => void) | null;
}BaseSelectOptions
选中模型的基础参数
ts
interface BaseSelectOptions {
color?: IColor;
opacity?: number;
}BaseHelperOptions
helper 的基础参数
ts
interface BaseHelperOptions {
id: string | number;
}Interpolate
线性插值
ts
interface Interpolate {
t: number;
}