2017-01-16 59 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),這將影響導航速度以匹配由這些邊界定義的擴展。