89 lines
1.8 KiB
Markdown
89 lines
1.8 KiB
Markdown
|
|
# jumpToCamera 方法使用指南
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
`jumpToCamera` 是 BIM 引擎提供的一个视角跳转方法,允许开发者通过传入相机配置 JSON 数据,将 3D 视图快速定位到指定构件或特定视角。
|
|||
|
|
|
|||
|
|
## 方法签名
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
engine.engine.jumpToCamera(cameraData)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 参数
|
|||
|
|
|
|||
|
|
- `cameraData` - 相机配置 JSON 对象
|
|||
|
|
|
|||
|
|
### 返回值
|
|||
|
|
|
|||
|
|
- `true` - 跳转成功
|
|||
|
|
- `false` - 跳转失败
|
|||
|
|
|
|||
|
|
## 基本使用
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 跳转到指定视角
|
|||
|
|
engine.engine.jumpToCamera({
|
|||
|
|
type: "orthographic",
|
|||
|
|
position: { x: 229.68, y: 247.98, z: 233.79 },
|
|||
|
|
target: { x: -4.58, y: 13.72, z: -0.47 },
|
|||
|
|
orthographicHeight: 140.56
|
|||
|
|
});
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配合 getModelPosition 使用
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 1. 获取构件位置数据(返回的 modelJson 中包含 cameraRestorePose)
|
|||
|
|
const data = engine.engine.getModelPosition({
|
|||
|
|
url: "模型URL",
|
|||
|
|
ids: [465979]
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 2. 使用返回的 cameraRestorePose 跳转视角
|
|||
|
|
if (data?.modelJson?.cameraRestorePose) {
|
|||
|
|
engine.engine.jumpToCamera(data.modelJson.cameraRestorePose);
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 调用前确保引擎已初始化
|
|||
|
|
2. 参数为 JSON 对象格式
|
|||
|
|
3. 数据可通过 `getModelPosition` 方法获取
|
|||
|
|
|
|||
|
|
## 完整示例
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
const engine = new BimEngine(container, { theme: 'dark' });
|
|||
|
|
|
|||
|
|
// 初始化引擎
|
|||
|
|
engine.engine.initialize({
|
|||
|
|
version: 'v2',
|
|||
|
|
showStats: false,
|
|||
|
|
showViewCube: true
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 加载模型
|
|||
|
|
engine.engine.loadModel(['模型URL'], {
|
|||
|
|
position: [0, 0, 0],
|
|||
|
|
rotation: [0, 0, 0],
|
|||
|
|
scale: [1, 1, 1]
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 获取构件位置并跳转
|
|||
|
|
const componentData = engine.engine.getModelPosition({
|
|||
|
|
url: "模型URL",
|
|||
|
|
ids: [465979]
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
if (componentData?.modelJson?.cameraRestorePose) {
|
|||
|
|
const success = engine.engine.jumpToCamera(
|
|||
|
|
componentData.modelJson.cameraRestorePose
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
if (success) {
|
|||
|
|
console.log('跳转成功');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|