Особенности выделения/снятия выделения через точки в bmesh

Для того чтобы полностью выделить или снять выделение со всего меша, мало изменить выделение только для его точек, нужно также изменить выделение и для ребер и для полигонов меша.

Однако в некоторых случаях у нас нет возможности управлять выделением ребер и граней меша, и мы можем устанавливать и снимать выделение только с его вертексов.

После того как мы изменили выделение для точек меша, мы можем “пересчитать” выделение, распространив его с точек на ребра и фейсы.

Для примера рассмотрим, как нам снять имеющееся выделение с текущего активного меша.

Создадим объект bmesh и перенесем в него активную геометрию. Заодно пересчитаем индексы вертексов меша, чтобы они соответствовали исходным.

Получить список текущих выделенных точек мы можем очень просто.

Если мы просто пройдем по списку и изменим для каждого вертекса его свойство выбора select на False,

мы увидим, что выделение с точек снялось, однако оно осталось нетронутым на ребрах и полигонах меша.

Чтобы снять выделение полностью, мы можем в цикле выбирать linked-ребра и полигоны для нашего списка точек и тоже снять в них выделение, однако можно поступить проще.

Сначала переключим режим выделения в режим выделения точек – “VERTS”. А после снятия выделения с точек, вызовем функцию перерасчета выделения select_flush_mode(), чтобы оно изменилось для всей геометрии меша без исключений.

Теперь мы видим, что выделение с нашего меша полностью снялось.

Точно так же можно действовать и при установке нужного выделения. Выделить нужные точки, а после этого сделать перерасчет выделения.

Например, выделим первые сто точек вместе с прилежащими к ним ребрами и полигонами.

Как и при снятии выделения, благодаря использованию функции select_flush_mode() мы избавлены от необходимости отдельно искать и выделять ребра и полигоны меша, предназначенные для выделения.

Чтобы производимые нами действия отобразились на меше в сцене, не забудем вернуть изменения из bmesh в исходный меш, и очистить занимаемую им память.

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии