Skip to content

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视图导航
  • 实时同步相机状态

方向参考

  • 提供空间方向参考
  • 显示当前视图方向
  • 帮助用户理解空间关系

交互控制

  • 通过点击立方体面切换视图
  • 通过点击立方体边和角切换视图
  • 提供直观的视图控制方式

相关链接

文档内容为北京逆维悦动科技有限公司版权所有,禁止未授权转载