Используют ли файлы пакета Forge Viewer SVF связанные преобразования родитель-потомок?

Контекст: я извлекал геометрические данные из структур Forge SVF в формат OBJ, используя Forge Extract код Петра. Затем эти данные прозрачно отправляются в другую систему рендеринга для проекта, над которым я работаю. Однако я замечаю, что в группах извлеченных объектов есть неправильные повороты. Не все объекты, а только группы.

В качестве примера, вот визуализация Forge Viewer группы объектов (длинных полюсов) с правильным вращением. Вы можете видеть, что все опоры равномерно размещены по краю опорной плиты и одинаково расположены по отношению друг к другу. правильное вращение

В то время как в визуализированной извлеченной геометрии группа объектов правильно размещена относительно друг друга (равно 3x3), но группа в целом немного повернута вдоль оси Z по отношению к нижней пластине.

неправильное вращение

Это тип поведения, которого я ожидал бы, если бы все отдельные полюса были дочерними объектами некоторого родительского объекта (возможно, невидимого группирующего объекта), а вращение родительского объекта поворачивало бы все полюса в SVF, но это вращение не применялось. во время извлечения геометрии. Это происходит со всеми группировками по отношению к отдельным объектам в сцене.

При просмотре этого вопроса у меня сложилось сильное впечатление, что существует второй аспект вращения но я не понимаю, как это применимо при прямом чтении SVF.


Вопрос: Очевидно, я ищу не решение с прямым кодом, а чтобы подтвердить структуру файлов пакета SVF. Глядя на извлечение, я не вижу ничего, что подразумевало бы группировку родитель-потомок, но мне не удалось придумать альтернативную причину.

Итак, существуют ли такие отношения преобразования родитель-потомок в файлах пакета SVF или глобальный компонент вращения, который применяется только к определенным объектам? Если да, то где это находится в файле пакета. А если нет, то что еще могло вызвать такую ​​систематическую ротацию групп?


person Barbog    schedule 12.06.2019    source источник


Ответы (1)


Формат файла SVF не использует преобразования родитель-потомок - все преобразования фрагментов в основном являются мировыми преобразованиями. Возможно, мой код для анализ преобразований фрагментов неправильно обрабатывает один из типов преобразований. Я бы попробовал отладить метод getTransform для dbId базы или одного из полюсов и сравнить преобразование с преобразованием, проанализированным Forge Viewer.

Кроме того, мне интересно, немного ли это база, а не полюса 3x3?

person Petr Broz    schedule 12.06.2019
comment
Да, я рассматривал то же самое с отдельными объектами. Однако они кажутся правильно размещенными, в любом случае в пределах 0,001 единицы. например, в базовых координатах перечислены XYZ Forge: 4396.771484375, -37926.38671875, -14149 OBJ: 4396.771711947, -37926.385416875, -14149 И я получал аналогичные составы для сообщений. Так что я думаю, что, возможно, центральный стержень не всегда правильный? Или ошибка в getTransform Я реорганизую свой код, чтобы я мог его отладить и опубликовать идеи, если таковые имеются. - person Barbog; 12.06.2019