视点书签插件

视点书签,是指在场景中,允许用户定义场景的视点,并能快速切换浏览视角。

视点书签插件

视点书签,是指在场景中,允许用户定义场景的视点,并能快速切换浏览视角。

通过视点书签,用户可以保存场景与构件的显示隐藏信息,实现多个场景模型的快速加载和批量显隐的功能,满足对模型查看方式的快速定位。

1. 功能说明

视点书签插件的主要功能为:新建、修改和删除视点书签,把某个视点书签的场景视图设为主视图,并可以动态浏览视点书签所定义的场景视图。具体功能可参考后续方法,其中有详细的介绍和使用。

2. 构造

在SDK中实例化视点书签插件,代码示例如下:

const viewPointPlugin = new ubm.ViewPointPlugin()

3. 属性

属性类型可选说明
dataViewPointItem[]--视点书签数据

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