Есть ли у кого-нибудь хорошие стратегии реализации или ресурсы для создания системы моделирования b-rep?
Очевидно, OpenCascade - это хорошая библиотека для моделирования b-rep (используемая FreeCad и PythonOCC очень круты)но библиотека огромна, сложна и, возможно, не является хорошей отправной точкой для изучения «движков» моделирования b-rep.
Я довольно много читал исследовательскую работу, и хотя фундаментальная математикаполезно понять, почему все работает, поэтому у меня остались некоторые вопросы о реализации.
Структура данных half edge представляется предпочтительным способом хранения информации оbody в реализациях b-rep.
Итак, несколько вопросов в произвольном порядке:
Используя структуру данных с половинной гранью, как обычно выполняется рендеринг?Триангуляция на основе границ твердого тела?
Как обычно применяются круглые грани / криволинейные поверхности?Например, цилиндр в одном базовом введении к б-репу, который я читал, был внутренне сохранен как призма.То есть экструдированный треугольник и метаданные были сохранены вокруг граней шапки, обозначая, что они действительно были круглыми.
Как обычно выполняются булевы операции?Я читал о генерации BSP-Tree вдоль кривых пересечений, а затем о комбинировании этих деревьев для создания новой геометрии.Существуют ли другие способы реализации логических операций и какие у них есть плюсы / минусы?
Спасибо!
Если вы хотите предоставитьПример кода: не беспокойтесь о языке - вопросы больше о алгоритмических / структурных деталях реализации