Autodesk Forge Viewer устанавливает цвет выбора по умолчанию

при выборе объекта я использую приведенный ниже код, чтобы изменить цвет выбранного объекта,

viewerApp.getCurrentViewer().impl.setSelectionColor(new THREE.Color(1, 0, 0));

Работает нормально, но как установить цвет выделения по умолчанию?

Я пробовал оба


  viewerApp.getCurrentViewer().clearSelection();

а также

viewerApp.getCurrentViewer().clearThemingColors();

но эти методы, похоже, не работают.

Я делаю что-то неправильно ? или как лучше всего изменить цвет и вернуть его к значениям по умолчанию?

версия для просмотра: 6 *


person udda    schedule 07.07.2020    source источник


Ответы (2)


Этот цвет выбора на самом деле жестко запрограммирован и не сохраняется ни в какой конфигурации. Вам нужно сбросить цвет, указав исходный цвет, например:

 .impl.setSelectionColor(new THREE.Color(0.4, 0.6, 1));
person cyrille    schedule 07.07.2020

Если целью является изменение цвета выбранного элемента, я настоятельно рекомендую использовать setThemingColor вместо этого. Это установит цвет темы для определенных dbids, это можно легко очистить в любой момент. Вы можете подключить это к событию выбора, чтобы иметь автоматическую очистку и переназначение цветов. Вы можете справиться с этим после инициализации программы просмотра.

In v7:

viewerApp.getCurrentViewer().viewer.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, event=>{
    viewerApp.getCurrentViewer().clearThemingColors();
    event.dbIdArray.forEach(id => 
    {
       viewerApp.getCurrentViewer().setThemingColor(id, new THREE.Vector4(1,0,0,1)
    })
}
) 

Однако, если вы действительно хотите использовать этот подход, вам нужно будет выяснить, какой цвет используется по умолчанию, и использовать setSelectionColor с этим цветом, чтобы перезаписать его: Изменить Теперь мы знаем, благодаря Сириллу! поэтому отрегулируйте цвет соответствующим образом

viewerApp.getCurrentViewer().impl.setSelectionColor(new THREE.Color(0.4, 0.6, 1));

четкая функция не определена.

person Samuel Middendorp    schedule 07.07.2020
comment
setThemingColor не работает для объектов, у которых в моем случае уже есть цвет. Вам доводилось сталкиваться с подобным сценарием? - person udda; 14.07.2020
comment
Для меня это всегда работало так, как ожидалось. Вы также можете попробовать добавить пользовательский материал с цветом к любому объекту в модели. - person Samuel Middendorp; 14.07.2020
comment
о, ладно, я попробую еще раз, я сделал это, но не сработало, возможно, я сделал это неправильно .. спасибо - person udda; 14.07.2020
comment
Здравствуйте, сможете ли вы предоставить мне правильный пример этого? я имею в виду, как добавить собственный материал с цветом. заранее спасибо - person udda; 15.07.2020