场景预设插件

场景预设是对场景初始化时的一些属性设置的一个集成插件,更方便用户修改,且对其属性进行特殊赋值和做一些设置,达到了一些特殊的效果。

场景预设从表现、场景、效果、交互四个方面对场景属性进行集成,其中包括图层渲染、点击聚焦等众多功能点。

1. 数据结构

1.1 场景预设

interface ISceneSettingModel {
  // 参数
  parameter: ISceneSettingParameter
  // 更新数据
  update(data: ISceneSettingParameter): void
}

1.2 场景预设插件参数

interface ISceneSettingParameter {
  // 是否显示模型边缘线
  edges: boolean,
  // 模型边缘线颜色
  edgesColor: string,
  // 渲染风格: default--默认, cartoon--动画, sketch--素描, technology--科技
  theme: string,
  // 渲染质量: low--流畅, medium--均衡-默认, high--画质
  renderQuality: string,
  // 背景颜色
  bgColor: string,
  // 高亮颜色
  highlightColor: string,
  // 界面风格: light--亮色主题, dark--深色主题
  interfaceTheme: string,
  // 场景地图: gis--GIS场景, static--静态场景-默认
  mapMode: string,
  // 是否显示天空
  sky: boolean,
  // 是否显示帧率
  frameRate: number,
  // 环境光强度
  envLightStrength: number,
  // 是否显示阴影
  shadow: boolean,
  // 是否显示菜单
  contextMenu: false,
  // 鼠标滚动方向, 默认为false
  mouseWheel: string,
  // 鼠标是否单击聚焦, 默认为false
  clickFocus: string
}

2. 使用

2.1 初始化

const settingPlugin = new ubm.SceneSettingPlugin()

2.2 注册插件

scene.plugin.register(settingPlugin)

2.3 插件更新

settingPlugin.model.update({
  edges: true,
  edgesColor: '#eeeeee',
  theme: 'default',
  renderQuality: 'low',
  bgColor: '#407BFF',
  highlightColor: '#407BFF',
  interfaceTheme: 'dark',
  mapMode: 'gis',
  sky: true,
  frameRate: true,
  envLightStrength: 10,
  shadow: true,
  contextMenu: false,
  mouseWheel: false,
  clickFocus: false
})

2.4 卸载插件

scene.plugin.uninstall(settingPlugin)