Forge 查看器中的默认导航速度



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

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

您可以在viewer3D中检查OrbitDollyPanTool L#14545的实现.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;
}; 

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

最新更新