Обнаружение границы плоскости в Blender Python API - PullRequest
0 голосов
/ 10 января 2012

Я работаю над сценарием для создания здания из самолета.В то время как нормальная плоскость - это прямоугольник, это довольно просто - вы ищете большинство вершин - / + X, - / + Y, - / + Z, но что если плоскость не имеет правильной формы?Есть ли хорошее решение в Python API в Blender?На самом деле, есть ли какой-нибудь умный способ обнаружить грани / ребра / вершины на границе?

1 Ответ

1 голос
/ 02 февраля 2012

Ищите грани границ: это будут те, которые прикреплены только к одному лицу. Посмотрите на класс Mesh , в частности атрибуты ребер , граней и вершин . К сожалению, ребра не содержат списка принадлежащих им граней, поэтому вам придется создать такое отображение, например,

EdgeFaces = {} # mapping from edge to adjacent faces
for ThisFace in TheMesh.faces :
    for ThisEdge in ThisFace.edge_keys :
        if not ThisEdge in EdgeFaces :
            EdgeFaces[ThisEdge] = []
        #end if
        EdgeFaces[ThisEdge].append(ThisFace.edge_keys)
    #end for
#end for

Затем вы просто просматриваете EdgeFaces для всех ключей, которые отображаются в одноэлементные списки.

...