У меня проблема, когда мне нужно выбрать лица, которые находятся рядом с одним предварительно выбранным лицом.
Это можно сделать легко, но проблема в том, что когда я получаю лицо соседа, мне нужно знать, в каком направлении он смотрит.
Итак, теперь я могу выбрать грани, которые связаны с ребром, но я не могу получить грань, которая, например, находится слева или справа от первой выбранной грани. Я пробовал несколько подходов, но не могу найти решения.
Я пробовал:
pickWalk -
cmds.pickWalk()
- проблема в том, что его поведение невозможно предсказать, поскольку он проходит по сетке с точки зрения камеры.polyInfo -
cmds.polyInfo()
- это очень полезная функция и наиболее близкая к ответу. В этом подходе я пытаюсь выделить края грани, а затем с помощьюedgeToFace()
посмотреть, какие из них являются соседями. Это хорошо работает, но не решает мою проблему. Чтобы уточнить, когдаpolyInfo
возвращает грани с общими краями, он не возвращает их таким образом, чтобы я всегда мог знать, чтоedgesList[0]
(например) - это край, указывающий влево или вправо. Следовательно, если я использую это на разных гранях, полученное лицо может быть обращено в разных направлениях в каждом случае.Трудный путь с множеством преобразований из вершины в ребро, затем в грань и т. д. Но опять же, это та же проблема, когда я не знаю, какое ребро является верхним или левым.
conectedFaces()
method, который я вызываю для выбранного лица, и он возвращает лица, которые связаны с первым лицом, но все равно это та же проблема, я не знаю, какое лицо смотрит в какую сторону.
Для ясности, я не использую заранее выбранный список лиц и не проверяю их, но мне нужно знать лица, не зная и не храня где-нибудь их имена. Кто-нибудь знает способ, который работает с выделением лиц?
Чтобы прояснить свой вопрос, я сделал изображение, чтобы прояснить его:
Как видно из примера, если есть выделенное лицо, мне нужно выбрать любую из заостренных граней, но это должно быть именно то лицо, которое я хочу выбрать. Другие методы выбирают все соседние грани, но мне нужен метод, в котором я могу сказать «выберите право» и выберет правильное из первого выбранного лица.