2017-01-16 58 views
0

如何在Forge Viewer中更改默认导航速度?我的示例模型的默认设置快得多。我想编写代码,以便在会话期间可以改变速度。Forge Viewer中的默认导航速度

+0

嗨,导航的(Pan,Walk,Zoom)速度由viewer3d.js中的私有变量userlookspeed,userZoomSpeed,userPanSpeed设置。而似乎没有一套方法,或者有机会覆盖相关的函数。如果在Forge上连接模型(连接到在线viewer3d.js),我无所适从,因此可能无法更改速度。虽然如果您的Web应用程序已将离线模型数据下载到您的服务器(也就是说,将在您的服务器上提供本地viewer3d.js),那么您可以尝试修改'local'viewer3d.js的这些变量 –

+0

嗨,我的工程师团队双重证实,第一人称工具的当前实现不允许覆盖这些值。虽然您可以尝试在导航时按住SHIFT键。这会让它慢一点。 –

回答

2

从viewer3D.js实现中复制现有的导航工具,根据需要修改速度参数,或者从应用程序中公开动态显示的方法,然后将其设置为活动状态。

可以检查OrbitDollyPanTool L#14545的实施viewer3D.js

Autodesk.Viewing.OrbitDollyPanTool = function(viewerImpl, viewerApi){ 
    var avp = Autodesk.Viewing.Private; 
    var _this = this; 
    var kScreenEpsilon = 0.001; 
    var kEpsilon = 0.00001; 
    var kAutoDeltaZ = 1.5;   // Dolly increment 
    var kAutoDeltaXY = 0.01; 
    var kAutoScreenXY = 20; 
    var kDollyDragScale = 100.0; 
    var kDollyPinchScale = 0.5; 
    var kOrbitScale = 2.0; 

    // ... 

该工具被实例如下(L#40923):

Viewer3D.prototype.createControls = function() { 
    var self = this; 
    var impl = self.impl; 

    self.navigation = new av.Navigation(impl.camera); 
    self.__initAutoCam(impl); 

    self.utilities = new av.ViewingUtilities(impl, self.autocam, self.navigation); 
    self.clickHandler = new av.DefaultHandler(impl, self.navigation, self.utilities); 
    self.toolController = new av.ToolController(impl, self, self.autocam, self.utilities, self.clickHandler); 
    self.toolController.registerTool(new av.GestureHandler(self)); 

    self.toolController.registerTool(av.theHotkeyManager); 
    self.toolController.activateTool(av.theHotkeyManager.getName()); 

    self.registerUniversalHotkeys(); 

    self.toolController.registerTool(new av.OrbitDollyPanTool(impl, self)); 
    self.toolController.activateTool("gestures"); 

    return self.toolController; 
}; 
1

最近我发现你可以使用viewer.navigation.fitBounds(true, THREE.Box3),这将影响导航速度以匹配由这些边界定义的扩展。