Пример #1
0
def load_mesh(filename, check=True, normalize=True, *args, **kwargs):
    ext = path.splitext(filename)[1].lower()
    if ext == '.obj':
        result = loadobj(filename, *args, **kwargs)
    elif ext == '.off':
        if not 'no_colors' in kwargs:
            kwargs['no_colors'] = True
        result = read_mesh(filename, *args, **kwargs)
        if len(result) == 3:
            result = [result[0], result[2], result[1]]
    elif ext == '.mat':
        result = load_nrw_mat(filename, *args, **kwargs)
    elif ext == '.ply':
        from tvtk.api import tvtk
        reader = tvtk.PLYReader(file_name=filename)
        reader.update()
        pd = reader.output
        faces = pd.polys.to_array().reshape((-1, 4))
        assert np.all(faces[:, 0] == 3)  # ensure triangles
        result = pd.points.to_array(), faces[:, 1:]
    else:
        raise ValueError("cannot load meshes with extension %s" % ext)
    if normalize:
        verts = result[0]
        verts[:] = verts - verts.mean(axis=0)
        verts[:] = verts / verts.std()
    if check:
        check_mesh(result[0], result[1], filename)
    return result
Пример #2
0
 def __reader_dict_default(self):
     """Default value for reader dict."""
     rd = {'stl':tvtk.STLReader(),
          'stla':tvtk.STLReader(),
          'stlb':tvtk.STLReader(),
          'txt':tvtk.SimplePointsReader(),
          'raw':tvtk.ParticleReader(),
          'ply':tvtk.PLYReader(),
          'pdb':tvtk.PDBReader(),
          'slc':tvtk.SLCReader(),
          'xyz':tvtk.XYZMolReader(),
          'obj':tvtk.OBJReader(),
          'facet':tvtk.FacetReader(),
          'cube':tvtk.GaussianCubeReader(),
          'g':tvtk.BYUReader(),
         }
     return rd