2017-01-16 3 views
0

Wie kann die Standardgeschwindigkeit der Navigation im Forge Viewer geändert werden? Die Standardeinstellung ist bei meinen Beispielmodellen viel zu schnell. Ich möchte Code schreiben, damit die Geschwindigkeit während einer Sitzung geändert werden kann.Standardgeschwindigkeit der Navigation in Forge Viewer

+0

Hallo, die (Pan, Walk, Zoom) Geschwindigkeit der Navigation durch die privaten Variablen userlookspeed, userZoomSpeed, userPanSpeed ​​in viewer3d.js gesetzt. während es scheint, gibt es keine set-Methode oder eine Chance, die releded Funktionen zu überschreiben. Ich bin begeistert, wenn Sie das Modell auf Forge verbinden (Verbindung zum Online-Viewer3d.js), ist es möglicherweise nicht möglich, die Geschwindigkeit zu ändern. Wenn Ihre Webanwendung die Offline-Modelldaten auf Ihren Server heruntergeladen hat (dh ein lokaler viewer3d.js wird auf Ihrem Server bereitgestellt), könnten Sie versuchen, diese Variablen des 'lokalen' viewer3d.js –

+0

zu ändern Hallo, ich bin von unserem Engineerteam doppelt bestätigt worden, dass die aktuelle Implementierung des First Person-Tools es nicht erlaubt, diese Werte zu überschreiben. Während Sie versuchen könnten, die UMSCHALTTASTE während der Navigation zu halten. Es würde es ein bisschen langsamer machen. –

Antwort

2

Kopieren eines bestehenden Navigationswerkzeug aus der viewer3D.js Implementierung, ändern Sie die Geschwindigkeitsparameter, wie Sie Methoden wollen oder freizulegen, so dynamisch aus Ihrer Anwendung zu tun, dann setzen sie aktiv.

können Sie überprüfen die Implementierung von OrbitDollyPanTool L # 14545 in 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; 

    // ... 

Das Tool wie folgt instanziiert wird (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

ich, dass Sie fand heraus, vor kurzem kann viewer.navigation.fitBounds(true, THREE.Box3) verwenden, was sich auf die Navigationsgeschwindigkeit auswirkt, um die durch diese Grenzen definierten Grenzen zu erreichen.

Verwandte Themen