【问题标题】:Forge Viewer - BimWalk TeleportationForge Viewer - BimWalk 传送
【发布时间】:2020-08-21 09:12:54
【问题描述】:

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

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢 Bryan,我可以使用您的指南实现自己的代码。
    • 我无法理解 getTempVector
    猜你喜欢
    • 2021-05-01
    • 2020-10-21
    • 2018-10-13
    • 2021-09-04
    • 2018-02-05
    • 2018-08-12
    • 2020-05-06
    • 2021-09-08
    • 2017-10-17
    相关资源
    最近更新 更多