1

我们的元素是彩色编码的,所以当用户选择一个时,我们只想在视图中隔离它(按预期工作)但我们不希望它更改为选择颜色 - 我们在哪里可以控制它?

4

2 回答 2

0

使用选择事件查找已选择的对象,取消选择并隔离选择的 dbId,这是您要查找的行为吗?

AutodeskNamespace("Autodesk.ADN.Viewing.Extension");

Autodesk.ADN.Viewing.Extension.Basic = function (viewer, options) {

  Autodesk.Viewing.Extension.call(this, viewer, options);

  var _this = this;

  _this.load = function () {

    console.log('LOAD')

    viewer.addEventListener(
        Autodesk.Viewing.AGGREGATE_SELECTION_CHANGED_EVENT, function(e) {

            //console.log(e)

            if(e.selections.length) {
                var dbId = e.selections[0].dbIdArray[0]
                viewer.select([])
                viewer.isolate(dbId)
            }
        })


    return true;
  };

  _this.unload = function () {

    Autodesk.Viewing.theExtensionManager.unregisterExtension(
      "Autodesk.ADN.Viewing.Extension.Basic");

    return true;
  };
};

Autodesk.ADN.Viewing.Extension.Basic.prototype =
  Object.create(Autodesk.Viewing.Extension.prototype);

Autodesk.ADN.Viewing.Extension.Basic.prototype.constructor =
  Autodesk.ADN.Viewing.Extension.Basic;

Autodesk.Viewing.theExtensionManager.registerExtension(
  "Autodesk.ADN.Viewing.Extension.Basic",
  Autodesk.ADN.Viewing.Extension.Basic);
于 2016-10-13T22:21:53.253 回答
0

如果您想保留选择而不是在 UI 中将其设为蓝色,您可以将选择材料的不透明度更改为透明:

viewer.impl.selectionMaterialBase.opacity = 0;
viewer.impl.selectionMaterialTop.opacity = 0;

现在,当您单击一个对象时,它不会变成蓝色。

于 2016-10-14T15:01:19.220 回答