def tri_mid_vec(vertices, tri_elements):
    tri_vtx = vertices[tri_elements]
    tri_mid = tri_vtx.mean(axis=1)
    tri_normal_vec = np.cross((tri_vtx[:, 1] - tri_vtx[:, 0]), (tri_vtx[:, 2] - tri_vtx[:, 0]))
    tri_normal_vec = (tri_normal_vec * (1.0 / np.linalg.norm(tri_normal_vec, axis=1))[:, np.newaxis])
    return (tri_mid, tri_normal_vec)
def tri_mid_vec(vertices, tri_elements):
    tri_vtx = vertices[tri_elements]
    tri_mid = tri_vtx.mean(axis=1)
    tri_normal_vec = np.cross((tri_vtx[:, 1] - tri_vtx[:, 0]), (tri_vtx[:, 2] - tri_vtx[:, 0]))
    tri_normal_vec = (tri_normal_vec * (1.0 / np.linalg.norm(tri_normal_vec, axis=1))[:, np.newaxis])
    return (tri_mid, tri_normal_vec)