【问题标题】:Built-in extensions for Autodesk ViewerAutodesk 查看器的内置扩展
【发布时间】:2016-08-27 15:17:37
【问题描述】:

Autodesk Viewer 可以在“新 Autodesk.Vieweing.Viewer3D”构造函数上加载一些扩展,但有哪些可用选项?下面的代码来自from this tutorial

function initialize() {
   var options = {
      'document' : 'urn:<<SOME URN HERE>>',
      'env':'AutodeskProduction',
      'getAccessToken': getToken,
      'refreshToken': getToken,
   };
   var viewerElement = document.getElementById('viewer');
   var viewer = new Autodesk.Viewing.Viewer3D(viewerElement, { /* Extensions here? */});
   Autodesk.Viewing.Initializer(
      options,
      function() {
         viewer.initialize();
         loadDocument(viewer, options.document);
      }
   );
}

【问题讨论】:

    标签: webgl autodesk-viewer


    【解决方案1】:

    这个关于加载查看器扩展的问题的简单答案是提供一个像这样的对象:

    {
        extensions: [
            'Autodesk.IoTTool', 'Autodesk.FirstPerson'
        ]
    }
    

    并且查看器将在初始化期间为您调用 Viewer3D.loadExtension (name, this.config)。该名称可以是 Autodesk 扩展,也可以是您自己的扩展,如 example 中所示。查看本地的 IoTTool 扩展与来自 Autodesk 服务器的 FirstPerson 扩展。

    然而,这个配置对象可以做更多的事情。例如:

    {
        startOnInitialize: boolean, // (default true) the default behavior is to run the main loop immediately, unless startOnInitialize is provided and is to false.
    
        canvasConfig: { // (default Viewer3D.kDefaultCanvasConfig)
            disableSpinner: boolean,
            disableMouseWheel: boolean, // (default false) the name tells it
            disableTwoFingerSwipe: boolean, // (default false)
    
            COMMAND: {
                onObject: ACTIONS,
                offObject: ACTIONS
            },
    
            ...
    
            // COMMAND: click, clickAlt, clickCtrl, clickShift, clickCtrlShift
            // ACTIONS: selectOnly, selectToggle, deselectAll, isolate, showAll, setCOI, focus, hide
    
        },
    
        extensions: [], // will call this.loadExtension(extensions[i], this.config)
    
        onTriggerContextMenuCallback: <function callback>, // function (event) {}
        onTriggerSelectionChangedCallback: <function callback>, // function (event) {dbid}
        onTriggerDoubleTapCallback: <function callback>, // function (event) {}
        onTriggerSingleTapCallback: <function callback>, // function (event) {}
    
        viewableName: string, // the name appearing on the model dialog box
    
        screenModeDelegate: <class>, // to control fullscreen behaviour
    }
    

    Viewer3D.kDefaultCanvasConfig 默认为:

    Viewer3D.kDefaultCanvasConfig = {
        "click": {
            "onObject": ["selectOnly"],
            "offObject": ["deselectAll"]
        },
        "clickAlt": {
            "onObject": ["setCOI"],
            "offObject": ["setCOI"]
        },
        "clickCtrl": {
            "onObject": ["selectToggle"],
            "offObject": ["deselectAll"]
        },
        "clickShift": {
            "onObject": ["selectToggle"],
            "offObject": ["deselectAll"]
        },
    
        // Features that support disabling
        "disableSpinner": false,
        "disableMouseWheel": false,
        "disableTwoFingerSwipe": false
    }
    

    【讨论】:

    • 我个人更喜欢一个一个显式地加载扩展,这样可以为每个扩展传递特定的选项(如果需要): viewer.loadExtension('MyCustomExtension', {enableAutoBugFix: true, enableKickAssFeatures: true} ) ...
    猜你喜欢
    • 2021-03-19
    • 2021-09-18
    • 2021-01-10
    • 2017-12-31
    • 2020-10-04
    • 2020-11-20
    • 2019-10-11
    • 2017-04-27
    • 2021-02-19
    相关资源
    最近更新 更多