Package glitter :: Package convenience :: Module mesh
[hide private]
[frames] | no frames]

Source Code for Module glitter.convenience.mesh

 1  """Mesh loading methods. 
 2   
 3  @todo: Implement loading from obj, ply etc. 
 4   
 5  @author: Stephan Wenger 
 6  @date: 2012-03-06 
 7  """ 
 8   
 9  import os 
10  import h5py 
11  from glitter.convenience.pipeline import Pipeline 
12  from glitter.convenience.defaultpipeline import get_default_program 
13   
14 -def load_mesh(filename, context=None, **kwargs):
15 loader = globals().get("load_%s" % (os.path.splitext(filename)[1][1:].lower())) 16 if not loader: 17 raise ValueError("no loader for '%s'" % filename) 18 return loader(filename, context=context, **kwargs)
19
20 -def load_hdf5(filename, color_defaults_to_position=True, context=None, **kwargs):
21 with h5py.File(filename, "r") as f: 22 kwargs["in_position"] = f["vertices"].value 23 if "colors" in f: 24 kwargs["in_color"] = f["colors"].value 25 elif color_defaults_to_position: 26 kwargs["in_color"] = kwargs["in_position"] 27 if "indices" in f: 28 kwargs["elements"] = f["indices"].value 29 return Pipeline(get_default_program(color=("in_color" in kwargs), context=context), use_framebuffer=False, **kwargs)
30 31 load_mesh.supported_formats = tuple(sorted(key[5:] for key, value in globals().items() 32 if key.startswith("load_") and callable(value) and value is not load_mesh)) 33 34 __all__ = ["load_mesh", "load_hdf5"] 35