#!/usr/bin/env python #--*-python-*- if __name__ == '__main__': import optparse import sys import os from chroma import view, build, EventViewer from chroma import mesh_from_stl from chroma.tools import enable_debug_on_crash parser = optparse.OptionParser('%prog') parser.add_option('--debug', dest='debug', action='store_true', default=False, help='Start python debugger on exception') parser.add_option('-r', '--resolution', dest='resolution', help='specify window resolution', default='1024,576') parser.add_option('-i', dest='io_file', default=None) options, args = parser.parse_args() if len(args) < 1: sys.exit(parser.format_help()) if options.debug: enable_debug_on_crash() size = [int(s) for s in options.resolution.split(',')] if os.path.exists(args[0]) and args[0].lower().endswith(('.stl', '.bz2')): obj = mesh_from_stl(args[0]) else: module_name, function_name = args[0].rsplit('.', 1) try: module = __import__(module_name, fromlist=[function_name]) except ImportError: raise obj = getattr(module, function_name) if options.io_file is None: view(obj, size) else: geometry = build(obj) viewer = EventViewer(geometry, options.io_file, size=size) viewer.start()