summaryrefslogtreecommitdiff
path: root/bin/chroma-cam
diff options
context:
space:
mode:
authorStan Seibert <stan@mtrr.org>2011-09-16 14:27:46 -0400
committerStan Seibert <stan@mtrr.org>2011-09-16 14:27:46 -0400
commit084dfd08b714faefaea77cb7dc04d2e93dc04b1d (patch)
tree5be8c1f1d30dc52d74c70c4964ec54f66294c265 /bin/chroma-cam
parentcfecff941fc619eb7269128afc62d9c11ae78aff (diff)
downloadchroma-084dfd08b714faefaea77cb7dc04d2e93dc04b1d.tar.gz
chroma-084dfd08b714faefaea77cb7dc04d2e93dc04b1d.tar.bz2
chroma-084dfd08b714faefaea77cb7dc04d2e93dc04b1d.zip
File reorganization to move toward standard python package layout
Diffstat (limited to 'bin/chroma-cam')
-rwxr-xr-xbin/chroma-cam43
1 files changed, 43 insertions, 0 deletions
diff --git a/bin/chroma-cam b/bin/chroma-cam
new file mode 100755
index 0000000..8465aaa
--- /dev/null
+++ b/bin/chroma-cam
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+#--*-python-*-
+
+if __name__ == '__main__':
+ import optparse
+ import sys
+ import imp
+ import os
+
+ from chroma import view, build, EventViewer
+ from chroma import mesh_from_stl
+
+ parser = optparse.OptionParser('%prog')
+ 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())
+
+ 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:
+ name, attr = args[0].split('.')
+
+ try:
+ file, path, description = imp.find_module(name)
+ except ImportError:
+ raise
+
+ module = imp.load_module(name, file, path, description)
+
+ obj = getattr(module, attr)
+
+ if options.io_file is None:
+ view(obj, size)
+ else:
+ geometry = build(obj)
+ viewer = EventViewer(geometry, options.io_file, size=size)
+ viewer.start()