#!/usr/bin/env python2
import ui_PyVEFViewer as ui
from opster import command, dispatch
from sys import exit
from os.path import splitext; ext = lambda fn: splitext(fn)[1]
class VEFViewerWindow(ui.QtGui.QWidget):
def __init__(self, parent = None):
super(VEFViewerWindow, self).__init__(parent)
self.ui = ui.Ui_MainWindow()
self.ui.setupUi(self)
@command(usage = '%name [options]',
options = [('p', 'points', [], 'files with points'), # TODO: add completer for filenames
('e', 'edges', [], 'files with edges'),
('t', 'triangles', [], 'files with triangles')])
def main(*args, **opts):
points = opts['points']
edges = opts['edges']
triangles = opts['triangles']
# Guess types from extensions
for fn in args:
if ext(fn) == '.vrt' or ext(fn) == '.pts':
points.append(fn)
elif ext(fn) == '.edg':
edges.append(fn)
elif ext(fn) == '.stl':
triangles.append(fn)
else:
print "Cannot guess type from extension:", fn
exit(1)
qapp = ui.QtGui.QApplication([])
win = VEFViewerWindow()
win.show()
win.ui.viewer.set_list(win.ui.modelList)
win.ui.viewer.read_points(points)
win.ui.viewer.read_edges(edges)
win.ui.viewer.read_triangles(triangles)
win.ui.viewer.normalize_view()
qapp.exec_()
if __name__ == '__main__':
main()