'Generate normals for polygons by using the first three points.
This normal of course might not make sense for polygons with
more than three points not lying in a plane.'

def _generate_normals(self, polygons):

    normals = []
    for verts in polygons:
        v1 = (np.array(verts[0]) - np.array(verts[1]))
        v2 = (np.array(verts[2]) - np.array(verts[0]))
        normals.append(np.cross(v1, v2))
    return normals
