SuperAPI AI 工具集

thatopen-impl-navigation

通用与其它

查看项目

更新于 10-15 22:18

技能介绍

用途:OrthoPerspectiveCamera 扩展 SimpleCamera,封装 camera-controls 库并同时管理 Three.js 的透视与正交两台相机,用于三维场景中的相机导航与投影切换。属于 @thatopen/components 核心包,依赖 camera-controls >= 3.1.2。

主要能力:内置三种导航模式,可用 camera.set(mode) 切换。Orbit(默认)围绕目标点旋转,适合三维模型查看;FirstPerson 为第一人称环视与移动,仅支持透视投影;Plan 锁定旋转,仅平移与缩放,适合建筑平面图。projection 管理器提供 set("Perspective")、set("Orthographic")、toggle() 切换投影,并可通过 onChanged 事件监听变化。还提供 fit(meshes, offset) 与 fitToItems() 取景、setUserInput(false/true) 临时禁用或恢复输入、addCustomNavigationMode() 注册自定义导航模式,以及 controls 低层接口。

使用方式:创建 world 时须将 OrthoPerspectiveCamera 指定为相机类型,设置 world.camera 后再调用 components.init()。程序化定位应使用 camera.controls.setLookAt(),不要直接设置 camera.three.position。切换投影时需 await projection.set()。

适用场景:三维模型检视、建筑漫游、配合剖切平面的平面图浏览。

限制:FirstPerson 不能与正交投影组合,否则会回退到 Orbit;使用 setUserInput(false) 时映射会被暂存并在恢复时还原;清理时应调用 camera.dispose()(world 释放时自动处理)。自定义模式须符合 NavigationMode 接口。资料未提供收费或价格信息。