import open3d as o3d
import numpy as np

if __name__ == "__main__":
    
    # Loading mesh data
    print("Loading mesh data")
    Mesh = o3d.io.read_triangle_mesh("bunny.ply")

    # Calculation of normal vector   
    Mesh.compute_vertex_normals()
    print(np.asarray(Mesh.triangle_normals))
        
    # Mesh decimation
    MeshSimple = Mesh.simplify_quadric_decimation(target_number_of_triangles=10000)

    # Confirmation
    print(Mesh)
    print(MeshSimple)

    # Visualization in window
    o3d.visualization.draw_geometries([Mesh],mesh_show_back_face=True)
    o3d.visualization.draw_geometries([MeshSimple],mesh_show_back_face=True)
    
    # Saving mesh
    o3d.io.write_triangle_mesh("MeshSimple.ply", MeshSimple)