我想在自己的伪造查看器功能中使用BimWalk扩展的隐形传送属性。但是,我找不到远程传送的实现细节。有什么方法可以在伪造查看器中传送到模型的特定对象?
答案 0 :(得分:0)
最简单的方法是模仿鼠标交互以触发传送并设置
// 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先前向您建议的那样,由于没有可用的官方文档,因此您需要自己仔细阅读代码...