예제 #1
0
    def normal_at_vertex(a):
        normal = None
        for vertex in vertex_to_vertices[a]:
            if vertex.face.smooth_lit:  # No smooth_lit means no vertex normal
                face = vertex.face

                if normal is None:
                    normal = Vector(face.normal.parent)

                i = face.vertices.index(vertex)
                a = face.vertices[i - 1]
                if i + 1 == len(face.vertices):
                    b = face.vertices[0]
                else:
                    b = face.vertices[i + 1]

                normal.add_mul_vector((vertex >> a).angle_to(vertex >> b), face.normal)

        normal.normalize()
        return normal