2017-01-16 6 views
0

Как изменить скорость навигации по умолчанию в Forge Viewer? Значение по умолчанию для моих моделей образцов очень быстро. Я хотел бы написать код, чтобы скорость могла быть изменена во время сеанса.Скорость навигации по умолчанию в Forge Viewer

+0

Привет, скорость перемещения (панорамирование, прокрутка, масштабирование) задаются частными переменными userlookspeed, userZoomSpeed, userPanSpeed ​​в viewer3d.js. в то время как кажется, что не существует установленного метода или возможности переопределить повторяющиеся функции. Я подключаюсь к модели Forge (подключаясь к on-line viewer3d.js), возможно, будет невозможно изменить скорость. Хотя если ваше веб-приложение загрузило данные автономной модели на ваш сервер (это означает, что локальный viewer3d.js будет предоставлен на вашем сервере), вы можете попытаться изменить эти переменные «local» viewer3d.js –

+0

Привет, я дважды подтвердил нашей инженерной командой, что текущая реализация инструмента First Person не позволяет переопределить эти значения. Хотя вы можете попытаться удерживать клавишу 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), который будет влиять на скорость навигации в соответствии с расширениями, определенными этими границами.

 Смежные вопросы

  • Нет связанных вопросов^_^