Forge Viewer - BimWalk 传送
Forge Viewer - BimWalk Teleportation
我想在我自己的 Forge 查看器功能中使用 BimWalk 扩展的传送 属性。但是,我无法找到传送的实现细节。有什么方法可以在 forge viewer 中传送到模型的特定对象吗?
最简单的方法是模仿鼠标交互来触发传送并设置
// when in first person mode
const bimWalk = viewer.getExtension('Autodesk.BimWalk')
bimWalkExt.tool.navigator.teleporting = true
viewer.select(dbid)
或者直接调用BimWalk扩展的navigator工具设置传送的目的地,如:
const navigator = bimWalkExt.tool.navigator
const camera = viewer.navigation.getCamera()
navigator.teleporting = true;
navigator.teleportTime = 0;
navigator.teleportInitial.copy(camera.position);
// Set target position, collision plus camera's height.
const cameraUp = getTempVector(camera.worldup);
cameraUp.multiplyScalar(navigator.get('cameraDistanceFromFloor') * this.metersToModel);
this.teleportTarget.copy(intersection.intersectPoint).add(cameraUp);
// On floor teleport ends on the spot.
this.teleportVelocity.set(0,0,0);
正如 Eason 之前向您建议的那样,没有可用的官方文档,因此您需要自己查看代码...
我想在我自己的 Forge 查看器功能中使用 BimWalk 扩展的传送 属性。但是,我无法找到传送的实现细节。有什么方法可以在 forge viewer 中传送到模型的特定对象吗?
最简单的方法是模仿鼠标交互来触发传送并设置
// when in first person mode
const bimWalk = viewer.getExtension('Autodesk.BimWalk')
bimWalkExt.tool.navigator.teleporting = true
viewer.select(dbid)
或者直接调用BimWalk扩展的navigator工具设置传送的目的地,如:
const navigator = bimWalkExt.tool.navigator
const camera = viewer.navigation.getCamera()
navigator.teleporting = true;
navigator.teleportTime = 0;
navigator.teleportInitial.copy(camera.position);
// Set target position, collision plus camera's height.
const cameraUp = getTempVector(camera.worldup);
cameraUp.multiplyScalar(navigator.get('cameraDistanceFromFloor') * this.metersToModel);
this.teleportTarget.copy(intersection.intersectPoint).add(cameraUp);
// On floor teleport ends on the spot.
this.teleportVelocity.set(0,0,0);
正如 Eason 之前向您建议的那样,没有可用的官方文档,因此您需要自己查看代码...