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 之前向您建议的那样,没有可用的官方文档,因此您需要自己查看代码...