.. role:: blue :class: blue Редактирование сегментации полигональной сетки ============================================= .. _Polygon_mesh_segmentation_editing: .. версия ядра: Часто полигональные сетки моделей, являясь результатом 3D-сканирования, имеют сложное внутреннее устройство с наличием «шумов» – случайных выбросов точек за пределы габаритов грани. Преобразование таких сеток предполагает более плотное интерактивное взаимодействие с пользователем, так как автоматическое распознавание затруднено. Для коррекции результатов сегментации предусмотрены несколько инструментов. Метод .. code-block:: cpp MbResultType SegmentMesh( bool createSurfaces = true ); выполняет сегментирование заданной полигональной сетки. Входным параметром метода является: - *createSurfaces* – флаг создания поверхностей на сегментах. При удачной работе алгоритма метод возвращает значение *rt_Success*, в противном случае метод возвращает код ошибки из перечисления :blue:`MbResultType`. Метод : .. code-block:: cpp void UniteSegments( size_t firstSegmentIdx, size_t secondSegmentIdx ); объединяет два сегмента в текущей сегментации полигональной сетки. Входными параметрами метода являются: - *firstSegmentIdx* – индекс первого сегмента для объединения; - *secondSegmentIdx* – индекс второго сегмента для объединения. Результат объединения доступен через коллекцию, возвращаемую методом :blue:`GetSegmentedMesh`\(). Метод .. code-block:: cpp MbResultType SegmentMeshBySeparators( const std::vector> & separators ); выполняет сегментацию полигональной сетки по разделителям сегментов. Входным параметром метода является: - *separators* – массив разделителей, каждый из которых содержит путь по вершинам сетки, рёбра которого разделяют сегменты. При удачной работе алгоритма метод возвращает значение *rt_Success*, в противном случае метод возвращает код ошибки из перечисления :blue:`MbResultType`.