У меня есть код для переключения всех линий в 2D-чертеже в Forge Viewer на черный, применяя тему (как описано в блоге) и возвращая исходные цвета.Но версия Viewer 6.4.0 что-то сломала при возврате, и теперь все линии остаются белыми.Работают все версии до 6.3.5.Изменилось ли что-то, что требует нового кода для этой работы?
Это то, что я делаю сегодня, раньше работало без нареканий, но не сейчас:
color2D.onClick = function (e) {
if (blackWiteToggle) {
window._viewerSecondary.impl.toggleSwapBlackAndWhite(false);
paint2DToBlackAndWhite(_viewerSecondary);
blackWiteToggle = false;
} else {
window._viewerSecondary.impl.toggleSwapBlackAndWhite(true);
window._viewerSecondary.clearThemingColors();
window._viewerSecondary.restoreState(stateDefalult);
blackWiteToggle = true;
}
};
function paint2DToBlackAndWhite(viewerToPaint) {
var frags = viewerToPaint.model.getFragmentList().fragments.fragId2dbId;
frags.forEach(function(frag){
frag.forEach(function(dbId){
if (dbId < 0) return;
viewerToPaint.setThemingColor(dbId, new THREE.Vector4(0, 0, 0, 1), viewerToPaint.model)
});
});
}
Что произошло раньше:рисунок имеет цвета изначально.Когда пользователь нажимает кнопку, ко всем строкам применяется тема черного цвета (и белый фон, но не имеющий отношения к проблеме).Когда пользователь нажимает снова, цвета темы очищаются, а 2D-рисунок снова окрашивается.
Что происходит после 6.4.0: линии правильно получают тему черного цвета.Когда пользователь нажимает снова, все линии становятся белыми, когда им нужно вернуть исходные цвета.