def test_writing_bin_ply(self): m = Mesh(filename=self.test_ply_path) (_, tempname) = tempfile.mkstemp() m.write_ply(tempname) with open(tempname, 'rb') as f: candidate = f.read() os.remove(tempname) with open(self.test_bin_ply_path, 'rb') as f: truth = f.read() self.assertEqual(candidate, truth)
def test_loop_subdivision_smoke_test(self): from psbody.mesh import Mesh from psbody.mesh.topology.subdivision import loop_subdivider m1 = Mesh( filename=os.path.join(test_data_folder, 'female_template.ply')) sdv = loop_subdivider(m1) self.assertIsNotNone(sdv) self.assertTrue(hasattr(sdv, "faces")) f_new = sdv.faces v_new = sdv(m1.v) self.assertIsNotNone(v_new) v_new = v_new.reshape((-1, 3)) v_new_want_edge = sdv(m1.v, want_edges=True) self.assertIsNotNone(v_new_want_edge) v_new_want_edge = v_new_want_edge.reshape((-1, 3)) m2 = Mesh(v=v_new, f=f_new) m1.reset_normals() m2.reset_normals() m1.write_ply(os.path.join(temporary_files_folder, 'lowres.ply')) m2.write_ply(os.path.join(temporary_files_folder, 'highres.ply')) if 0: from psbody.mesh import MeshViewers mvs = MeshViewers(shape=(2, 2)) mvs[0][0].set_static_meshes([m1]) m1.f = [] mvs[0][1].set_static_meshes([m1]) mvs[1][0].set_static_meshes([m2]) m2.f = [] mvs[1][1].set_static_meshes([m2])