ViewCubeControl
NIVIOBIM视图立方体控制功能模块,提供3D场景的视图导航工具,提供直观的3D视图导航体验。
类定义
javascript
class ViewCubeControl extends Plugin构造函数
constructor(viewer3D, options)
创建视图立方体控制插件实例,初始化视图立方体,设置控制参数。
参数:
viewer3D{Viewer3D} - Viewer3D实例,提供场景和相机管理器访问options{Object} - 插件配置选项options.containerDom{Element} - 视图立方体的容器DOM元素
示例:
javascript
// 创建视图立方体控制插件
const viewCubeControl = new ViewCubeControl(viewer3D, {
containerDom: document.getElementById('viewCubeContainer')
});属性
enabled
视图立方体控制是否启用,控制视图立方体是否处于活动状态。
类型: {boolean}
默认值: false
示例:
javascript
// 启用视图立方体
viewCubeControl.enabled = true;
// 禁用视图立方体
viewCubeControl.enabled = false;
// 检查视图立方体是否启用
if (viewCubeControl.enabled) {
console.log('视图立方体已启用');
}cubeSize
视图立方体大小,控制视图立方体的尺寸。
类型: {number}
默认值: 25
edgeSize
视图立方体边缘大小,控制视图立方体边缘的尺寸。
类型: {number}
默认值: 5
orbitCtrl
轨道控制器实例,用于控制主相机的旋转。
类型: {OrbitControl}
只读: true
domElement
视图立方体的DOM元素,用于渲染视图立方体。
类型: {HTMLCanvasElement}
只读: true
方法
update(param)
更新视图立方体,同步视图立方体与主相机的旋转状态。
参数:
param{number} - 时间参数,用于动画更新
示例:
javascript
// 在渲染循环中更新视图立方体
viewCubeControl.update(deltaTime);setQuaternion(quaternion)
设置视图立方体的四元数,用于与主相机保持同步。
参数:
quaternion{Quaternion} - 四元数,用于设置立方体的旋转
示例:
javascript
// 设置视图立方体的旋转
viewCubeControl.setQuaternion(quaternion);getCamera()
获取视图立方体的相机,返回视图立方体使用的独立相机实例。
返回值:
- {PerspectiveCamera} 视图立方体的相机实例
示例:
javascript
// 获取视图立方体的相机
const camera = viewCubeControl.getCamera();getCube()
获取视图立方体实例,返回视图立方体的3D对象实例。
返回值:
- {ViewCube} 视图立方体实例
示例:
javascript
// 获取视图立方体实例
const cube = viewCubeControl.getCube();dispose()
销毁视图立方体控制插件,清理插件资源,移除事件监听器,清理DOM元素和3D对象。
示例:
javascript
// 销毁视图立方体控制插件
viewCubeControl.dispose();使用场景
视图导航
- 快速切换到标准视图(前、后、左、右、上、下)
- 直观的3D视图导航
- 实时同步相机状态
方向参考
- 提供空间方向参考
- 显示当前视图方向
- 帮助用户理解空间关系
交互控制
- 通过点击立方体面切换视图
- 通过点击立方体边和角切换视图
- 提供直观的视图控制方式
相关链接
- Plugin - 插件基类
- Viewer3D - 主引擎类
- CameraManager - 相机管理器