视点书签插件
视点书签,是指在场景中,允许用户定义场景的视点,并能快速切换浏览视角。
视点书签插件
视点书签,是指在场景中,允许用户定义场景的视点,并能快速切换浏览视角。
通过视点书签,用户可以保存场景与构件的显示隐藏信息,实现多个场景模型的快速加载和批量显隐的功能,满足对模型查看方式的快速定位。
1. 功能说明
视点书签插件的主要功能为:新建、修改和删除视点书签,把某个视点书签的场景视图设为主视图,并可以动态浏览视点书签所定义的场景视图。具体功能可参考后续方法,其中有详细的介绍和使用。
2. 构造
在SDK中实例化视点书签插件,代码示例如下:
const viewPointPlugin = new ubm.ViewPointPlugin()
3. 属性
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
| data | ViewPointItem[] | -- | 视点书签数据 |
3.1 视点书签数据
ViewPointItem的数据结构如下:
interface ViewPointItem {
// ID
id?: number
// 视图编码,仅用于排序
view_code: number
// 视图名称
view_name: string
// 视图名称
view_img: string
// 相机中心点坐标X
camera_x: number
// 相机中心点坐标Y
camera_y: number
// 相机中心点坐标Z
camera_z: number
// 相机俯仰角
camera_pitch: number
// 相机偏航角
camera_yaw: number
}
获取视点书签数据,代码示例如下:
const viewPointData = viewPointPlugin.model.data
4. 方法
| 方法 | 说明 |
|---|---|
| addViewPoint() | 新建视点 |
| viewPointPlugin() | 修改视点 |
| delete() | 删除视点 |
| animate() | 视点动画 |
| setFrontView() | 设为主视图 |
4.1 新建视点
addViewPoint(name: string): void
参数name为新建的视点书签名称。
新建一个视点书签,代码示例如下:
viewPointPlugin.model.addViewPoint('1111')
4.2 修改视点
editViewPoint(viewPointItem: ViewPointItem): void
参数viewPointItem是传入的需要修改的视点书签数据。
修改视点书签,代码示例如下:
viewPointPlugin.model.editViewPoint({
// 修改id=1的视点书签数据
"id": 1,
// 以下是update的数据
"view_code": 1725258122375,
"view_img": "data:image/jpeg;base64,xxx",
"view_name": "222",
"camera_x": 12616126.459646633,
"camera_y": 2665917.257166225,
"camera_z": 170.26271403016244,
"camera_pitch": 60.000000000012754,
"camera_yaw": 0
})
4.3 删除视点
delete(id: number): void
参数id是需要删除的视点书签id。
删除id为1的视点书签,代码示例如下:
viewPointPlugin.model.delete(1)
4.4 视点动画
animate(viewPoints: ViewPointItem[], animateOption?: AnimateOptions): void
参数viewPoints是视点书签数据集,即场景模型依次运动的视点书签数据集合。
参数animateOption是动画选项,默认为{},其数据结构如下:
interface AnimateOptions {
// 是否显示动画
animate?: boolean
// 动画速度
speedFactor?: number
// 动画持续时间
duration?: number
// 动画最大允许持续时间
maxDuration?: number
// 动画函数
easing?: Easing
}
可以传递多个不同场景的视点书签进行动态切换,代码示例如下:
viewPointPlugin.model.animate([Item1,Item2,...])
4.5 设为主视图
setFrontView(item: ViewPointItem): void
获取一个视点书签数据,把其设为主视图,效果查看需要和主视图'home'控件结合,代码示例如下:
viewPointPlugin.model.setFrontView(viewPointPlugin.model.data[0])

BIMFlux AI
