def load_scene(filename): obj = model.Model(filename, is_point_cloud=True) m = obj._add_mesh() with open(filename, "rb") as f: dtype = [] count = 0 format = None line = None header = '' while line != 'end_header\n' and line != '': line = f.readline() header += line # Discart faces header = header.split('element face ')[0].split('\n') if header[0] == 'ply': for line in header: if 'format ' in line: format = line.split(' ')[1] break if format is not None: if format == 'ascii': fm = '' elif format == 'binary_big_endian': fm = '>' elif format == 'binary_little_endian': fm = '<' df = {'float': fm + 'f', 'uchar': fm + 'B'} dt = {'x': 'v', 'nx': 'n', 'red': 'c', 'alpha': 'a'} ds = {'x': 3, 'nx': 3, 'red': 3, 'alpha': 1} for line in header: if 'element vertex ' in line: count = int(line.split('element vertex ')[1]) elif 'property ' in line: props = line.split(' ') if props[2] in list(dt.keys()): dtype = dtype + [(dt[props[2]], df[props[1]], (ds[props[2]], ))] dtype = np.dtype(dtype) if format is not None: if format == 'ascii': m._prepare_vertex_count(count) _load_ascii(m, f, dtype, count) elif format == 'binary_big_endian' or format == 'binary_little_endian': _load_binary(m, f, dtype, count) obj._post_process_after_load() return obj else: logger.error("Error: incorrect file format.") return None
def load_scene(filename): obj = model.Model(filename) m = obj._add_mesh() with open(filename, "rb") as f: if f.read(5).lower() == "solid": _load_ascii(m, f) else: _load_binary(m, f) obj._post_process_after_load() return obj
def loadScene(filename): obj = model.Model(filename) m = obj._addMesh() with open(filename, "rb") as f: if f.read(5).lower() == "solid": _loadAscii(m, f) else: _loadBinary(m, f) obj._postProcessAfterLoad() return obj
def create_default_object(self): self._clear_scene() self._object = model.Model(None, is_point_cloud=True) self._object._add_mesh() self._object._mesh._prepare_vertex_count(4000000)
def createDefaultObject(self): self._clearScene() self._object = model.Model(None, isPointCloud=True) self._object._addMesh() self._object._mesh._prepareVertexCount(2000000)