在 Autodesk.Viewing.Viewer3D 中显示上下文菜单

Show context menu in Autodesk.Viewing.Viewer3D

我正在尝试使用 Autodesk.Viewing.Viewer3D(无头查看器)显示上下文菜单。

使用 Autodesk.Viewing.Private.GuiViewer3D 作为我的查看器类型时,我可以轻松显示上下文菜单,但我不想使用此查看器类型,因为它有工具栏,但我没有不希望它出现在这个观众面前。我不能使用建议的 css 方法 ,因为我还想在同一应用程序的不同查看器中使用工具栏。

我尝试使用 Autodesk.Viewing.Viewer3D(无头查看器)初始化上下文菜单,如下所示:

var contextMenu = new Autodesk.Viewing.UI.ObjectContextMenu(viewer);
        viewer.setContextMenu(contextMenu);
        viewer.registerContextMenuCallback('CustomContextMenuItems', function (menu, status) {
            if (status.hasSelected) {
                if(menu === null){menu=[];}
                while (menu.length > 0) {
                    menu.pop();
                }

                menu.push({
                    title: 'Do Something',
                    target: function () {
                        console.log("Doing something")
                    }
                });

            } 
        });

上下文菜单旨在与 GuiViewer3D 一起使用。它很可能依赖于它的某些 HTML 或 CSS 设置,这就是它导致 Viewer3D 出现问题的原因。如果您需要这种级别的 GUI 自定义,我建议实现一个单独的、简单的上下文菜单,而不是弯曲内置菜单。