Я обнаружил ошибку в расширении Autodesk Viewer LayerManager, которая нарушает функциональность restoreState.Я сохраняю состояние многослойного файла DWG с помощью getState и повторно применяю это состояние с помощью restoreState.Когда я восстанавливаю состояние, большинство или все слои скрыты, даже если они не были сохранены, когда я сохранял состояние.
Похоже, что это проблема того, как состояние сохраняется и интерпретируется.Я копался в состоянии JSON и нашел список видимых слоев (state.objectSet[0].isolated
) в следующем виде:
["0","1","2","3","4","5"]
После некоторых экспериментов я обнаружил, что LayerManager ожидает либо целочисленные индексы слоев, либостроковые имена слоев.Что-то вроде:
[0,1,2,3,4,5]
или
["layer0","layer1","layer2","layer3","layer4","layer5"]
(при условии, что это имена каждого слоя)
Таким образом, текущая реализация ломается, потому что она ищет слои симена «0», «1», «2» и т. д., независимо от того, каковы фактические имена слоев.
Мне интересно, есть ли способ исправить или обойти это.Временное решение состоит в том, чтобы проанализировать состояние JSON и привести числа слоев к целым числам, но это немного хак.