Мне нужно скрыть (сделать так, чтобы оно полностью ушло) из панели дерева моделей в Viewer.
Я уже пробовал переопределять методы из Viewer (некоторые другие вещи выполняются таким образом), но Tree-связанные методы и объекты недоступны для расширения.Также кажется слишком опасным возиться с данными instanceTree, как, например, удаление dbId из списка узлов.
Я использую последний код Viewer (6.5.3) и пишу чистые расширения javascript.
Например, я попытался переопределить эту функцию, которая используется внутри, чтобы определить, должен ли узел отображаться или нет.Он не работает и не переопределяет ту же функцию в ModelStructureTreeDelegate:
Autodesk.Viewing.UI.TreeDelegate.prototype.shouldCreateTreeNode = function (dbId)
{
// original code on the viewer.js is:
// return true;
let itGo = true;
// _objectsHiddenInTree is populated with dbIds of objects to be hidden right after initializing the viewer
_objectsHiddenInTree.forEach(x => {
if (x == dbId){
itGo = false;
}
});
// return false; doesn't work either
return itGo;
};
Есть ли способ сделать это со стороны средства просмотра?Я имею в виду, удалить элемент из дерева модели?
Если это более жизнеспособно, удаление объекта со сцены также является допустимым вариантом.Но я не могу удалить его из модели перед отправкой в производную модели, это нужно сделать при открытии Viewer или перед открытием панели Tree Model.