Автоматический режим распознавания оболочки по полигональной сетке
Интерфейс автоматического преобразования C3D B-Shaper представлен двумя функциями: ConvertMeshToShell() и ConvertCollectionToShell().
Метод
MbResultType ConvertMeshToShell( MbMesh & mesh,
MbFaceShell *& shell,
const MbMeshProcessorValues & params = MbMeshProcessorValues() );
выполняет создание оболочки в граничном представлении (B-Rep), соответствующей модели, заданной полигональной сеткой. Алгоритм модуля в автоматическом режиме распознаёт и реконструирует грани, соответствующие элементарным поверхностям (плоскость, цилиндр, конус, сфера, тор), поверхностям вращения или NURBS поверхностям.
Входными параметрами метода являются:
mesh – полигональная сетка модели;
params – настройки преобразования.
Выходным параметром метода является построенная оболочка shell.
При удачной работе алгоритма метод возвращает значение rt_Success, в противном случае метод возвращает код ошибки из перечисления MbResultType.
Метод объявлен в файле action_b_shaper.h.
К настройкам преобразования относится значение точности распознавания, то есть максимально допустимого отстояния вершин полигональной сетки в границах данного сегмента до распознаваемой поверхности. Эта точность может быть абсолютной или относительной: при использовании относительной точности отклонение граней тела от сетки проверяется относительно размера модели. Также пользователю доступна опция переключения режимов распознавания, которая позволяет управлять типами поверхностей при реконструкции. Эти параметры находятся в полях класса MbMeshProcessorValues, который содержит:
useRelativeTolerance – флаг использования относительной точности;
tolerance – точность распознавания;
surfReconstructMode – режим распознавания поверхностей, из перечисления:
srm_All – строить все поверхности;
srm_NoGrids – не строить поверхности на базе триангуляции;
srm_CanonicOnly – строить только элементарные поверхности;
srm_Default – по умолчанию.
Метод
MbResultType ConvertCollectionToShell( MbCollection & collection,
MbFaceShell *& shell,
const MbMeshProcessorValues & params = MbMeshProcessorValues() );
выполняет создание оболочки в граничном представлении (B-Rep), соответствующей коллекции элементов, содержащих полигональную сетку. Алгоритм модуля в автоматическом режиме распознаёт и реконструирует грани, соответствующие элементарным поверхностям (плоскость, цилиндр, конус, сфера, тор).
Входными параметрами метода являются:
collection – коллекция элементов, содержащая полигональную сетку;
params – настройки преобразования.
Выходным параметром метода является построенная оболочка shell.
При удачной работе алгоритма метод возвращает значение rt_Success, в противном случае метод возвращает код ошибки из перечисления MbResultType.
Метод объявлен в файле action_b_shaper.h.
Тестовое приложение выполняет построение оболочки в граничном представлении командой меню «Создать→Тело→На базе полигональной модели→Преобразовать в тело с распознаванием поверхностей».