# Class to read class MeshPly: def __init__(self, filename, color=[0., 0., 0.]): f = open(filename, 'r') self.vertices = [] self.colors = [] self.indices = [] self.normals = [] vertex_mode = False face_mode = False nb_vertices = 0 nb_faces = 0 idx = 0 with f as open_file_object: for line in open_file_object: elements = line.split() if vertex_mode: self.vertices.append([float(i) for i in elements[:3]]) self.normals.append([float(i) for i in elements[3:6]]) if elements[6:9]: self.colors.append([float(i) / 255. for i in elements[6:9]]) else: self.colors.append([float(i) / 255. for i in color]) idx += 1 if idx == nb_vertices: vertex_mode = False face_mode = True idx = 0 elif face_mode: self.indices.append([float(i) for i in elements[1:4]]) idx += 1 if idx == nb_faces: face_mode = False elif elements[0] == 'element': if elements[1] == 'vertex': nb_vertices = int(elements[2]) elif elements[1] == 'face': nb_faces = int(elements[2]) elif elements[0] == 'end_header': vertex_mode = True if __name__ == '__main__': path_model = '' mesh = MeshPly(path_model)