Получить элементы рядом с данным элементом в средстве просмотра - PullRequest
0 голосов
/ 28 мая 2018

В нашем приложении Forge нам нужно выбрать все элементы, которые находятся рядом с данным элементом .Пример: пользователь выбирает элемент пола, и это приводит к выбору соседних фундаментов, стен и т. Д.Когда я говорю «смежные», я имею в виду пересекающиеся элементы и элементы, в которых поверхности соприкасаются друг с другом.

Мы пытались достичь этого, сравнивая ограничивающие рамки всех элементов друг с другом, но это работает только для простых геометрий (кубов).где размер ограничительной рамки почти идентичен размеру самого элемента, и где края элемента ориентированы вдоль (x, y, z).(Не вращается). Прикрепленное изображение иллюстрирует, как ограничивающая рамка (красного цвета) сложного пола работает плохо , поскольку это приведет к выбору фундаментов и колонн (зеленым цветом), которые четко отделены отfloor.

Итак, я спрашиваю:

  • Есть ли встроенная функция для получения соседних элементов?Если нет;
  • Как получить точки, которые определяют контур элемента?Меня не интересуют визуализированные треугольники WebGL, только исходные точки (например, 8 баллов за куб).

С уважением, Торжус

1 Ответ

0 голосов
/ 28 мая 2018

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

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

...