Warm tip: This article is reproduced from serverfault.com, please click

Forge Viewer-BimWalk传送

(Forge Viewer - BimWalk Teleportation)

发布于 2020-05-06 11:58:24

我想在我自己的伪造查看器功能中使用BimWalk扩展的隐形传送属性。但是,我找不到远程传送的实现细节。有什么方法可以在伪造查看器中传送到模型的特定对象?

Questioner
sercanduyar
Viewed
0
Bryan Huang 2020-05-07 18:26:44

最简单的方法是模仿鼠标交互以触发传送并设置鼠标

// when in first person mode
const bimWalk = viewer.getExtension('Autodesk.BimWalk')
bimWalkExt.tool.navigator.teleporting = true
viewer.select(dbid)

另外,你可以通过直接调用BimWalk扩展程序的导航器工具来设置传送目的地,例如:

  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先前向你建议的那样,由于没有可用的官方文档,因此你需要自己仔细阅读代码...