201_Normals.py 696 B

123456789101112131415161718192021
  1. import igl
  2. # Load a mesh in OFF format
  3. V = igl.eigen.MatrixXd()
  4. F = igl.eigen.MatrixXi()
  5. igl.readOFF("../tutorial/shared/fandisk.off", V, F);
  6. # Compute per-face normals
  7. N_faces = igl.eigen.MatrixXd()
  8. igl.per_face_normals(V,F,N_faces);
  9. print("igl::per_face_normals: \n", N_faces, sep='')
  10. # Compute per-vertex normals
  11. N_vertices = igl.eigen.MatrixXd()
  12. igl.per_vertex_normals(V,F,igl.PER_VERTEX_NORMALS_WEIGHTING_TYPE_AREA,N_vertices);
  13. print("igl::per_vertex_normals: \n", N_vertices, sep='')
  14. # Compute per-corner normals, |dihedral angle| > 20 degrees --> crease
  15. N_corners = igl.eigen.MatrixXd()
  16. igl.per_corner_normals(V,F,20,N_corners);
  17. print("igl::per_corner_normals: \n", N_corners, sep='')