diff options
author | Stan Seibert <stan@mtrr.org> | 2011-06-21 20:59:54 -0400 |
---|---|---|
committer | Stan Seibert <stan@mtrr.org> | 2011-06-21 20:59:54 -0400 |
commit | ff489255117030ea263225cd1bc7b2f4f151ed76 (patch) | |
tree | fd36717bab2f359850da42f80d45054e79216e47 /view.py | |
parent | 81c4bf14e0357b597570dbb551a37c54cc1806de (diff) | |
parent | f04ecc51cd9d634a7c418a611946944b05c6bec4 (diff) | |
download | chroma-ff489255117030ea263225cd1bc7b2f4f151ed76.tar.gz chroma-ff489255117030ea263225cd1bc7b2f4f151ed76.tar.bz2 chroma-ff489255117030ea263225cd1bc7b2f4f151ed76.zip |
Merge speedup of build()
Diffstat (limited to 'view.py')
-rwxr-xr-x | view.py | 37 |
1 files changed, 21 insertions, 16 deletions
@@ -1,5 +1,6 @@ #!/usr/bin/env python import os +import sys import numpy as np import pygame @@ -16,9 +17,9 @@ from pycuda import autoinit from pycuda.compiler import SourceModule from pycuda import gpuarray -def view(geometry, name=''): +def view(viewable, name='', bits=8): """ - Render `geometry` in a pygame window. + Render `viewable` in a pygame window. Movement: - zoom: scroll the mouse wheel @@ -26,6 +27,20 @@ def view(geometry, name=''): - move: shift+click and drag the mouse """ + if isinstance(viewable, Geometry): + geometry = viewable + geometry.build(bits) + elif isinstance(viewable, Solid): + geometry = Geometry() + geometry.add_solid(viewable) + geometry.build(bits) + elif isinstance(viewable, Mesh): + geometry = Geometry() + geometry.add_solid(Solid(viewable)) + geometry.build(bits) + else: + sys.exit("can't display %s" % args[0]) + lower_bound = np.array([np.min(geometry.mesh[:][:,:,0]), np.min(geometry.mesh[:][:,:,1]), np.min(geometry.mesh[:][:,:,2])]) @@ -192,12 +207,12 @@ def view(geometry, name=''): if event.key == K_LSHIFT or event.key == K_RSHIFT: shift = False + pygame.display.quit() + if __name__ == '__main__': - import os - import sys import optparse - from stl import * + from stl import mesh_from_stl import solids import detectors @@ -224,16 +239,6 @@ if __name__ == '__main__': members = dict(inspect.getmembers(detectors) + inspect.getmembers(solids)) if args[0] in members: - if isinstance(members[args[0]], Geometry): - geometry = members[args[0]] - geometry.build(options.bits) - view(geometry, args[0]) - elif isinstance(members[args[0]], Solid): - geometry = Geometry() - geometry.add_solid(members[args[0]]) - geometry.build(options.bits) - view(geometry, args[0]) - else: - sys.exit("can't display %s" % args[0]) + view(members[args[0]], args[0], options.bits) else: sys.exit("couldn't find object %s" % args[0]) |