Как заставить Autodesk Viewer LayerManager правильно восстановить RestoreState - PullRequest
0 голосов
/ 27 февраля 2019

Я обнаружил ошибку в расширении 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 и привести числа слоев к целым числам, но это немного хак.

1 Ответ

0 голосов
/ 28 февраля 2019

Это известная проблема, которая в настоящее время изучается нашим инженером.Можете оставаться в курсе нашего Forge Blog и искать примечания к выпуску, чтобы следить за исправлением.

Тем временем, в качестве быстрого обходного пути, вы можете программно раскрыть все слои, как только вся графика будетзагружено:

viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, ()=>viewer.showAll())
...