diff options
Diffstat (limited to 'view.py')
-rwxr-xr-x | view.py | 19 |
1 files changed, 13 insertions, 6 deletions
@@ -6,7 +6,6 @@ from pygame.locals import * import src from camera import * -from solid import * from geometry import * from transform import * @@ -182,6 +181,8 @@ if __name__ == '__main__': import optparse from mesh import * + + import solids import detectors parser = optparse.OptionParser('%prog filename.stl') @@ -197,20 +198,26 @@ if __name__ == '__main__': if ext.lower() == '.stl': geometry = Geometry() - geometry.add_solid(Solid(0, mesh_from_stl(args[0]))) + geometry.add_solid(Solid(mesh_from_stl(args[0]))) geometry.build(options.bits) view(geometry, tail) else: import inspect - members = dict(inspect.getmembers(detectors)) + members = dict(inspect.getmembers(detectors) + inspect.getmembers(solids)) if args[0] in members: - if issubclass(members[args[0]], Geometry): + if type(members[args[0]]) is type and \ + issubclass(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("%s doesn't inherit from a Geometry object" % args[0]) + sys.exit("can't display %s" % args[0]) else: - sys.exit("couldn't find a geometry with name %s" % args[0]) + sys.exit("couldn't find object %s" % args[0]) |