From d6583ebf40c9e99bfbec3652f8ef8639160f5fb6 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Thu, 07 Jul 2016 14:40:36 +0000
Subject: [PATCH] Another fix. still not working if we have inititer.

---
 python/trisurf/tsmgr.py |   69 +++++++++++++++++++++++++++++++---
 1 files changed, 62 insertions(+), 7 deletions(-)

diff --git a/python/trisurf/tsmgr.py b/python/trisurf/tsmgr.py
index caff785..ac5c8f2 100644
--- a/python/trisurf/tsmgr.py
+++ b/python/trisurf/tsmgr.py
@@ -1,17 +1,20 @@
 import argparse
 import paramiko
 from . import Remote
-from trisurf import trisurf
+from . import trisurf
 import socket
-import sys
+import os,sys
 import tabulate
 import subprocess,re
 import psutil
 #import http.server
 #import socketserver
-from urllib.parse import urlparse
-
-from . import WebTrisurf
+if sys.version_info>=(3,0):
+	from urllib.parse import urlparse
+	from . import WebTrisurf
+else:
+	from urlparse import urlparse
+	from vtk import *
 #import io
 
 
@@ -40,6 +43,7 @@
 	action_group.add_argument('-s','--status',help='print status of the processes',action='store_true')
 	action_group.add_argument('-v','--version', help='print version information and exit', action='store_true')
 	action_group.add_argument('--web-server', type=int,metavar="PORT", nargs=1, help='EXPERIMENTAL: starts web server and never exist.')
+	action_group.add_argument('-p','--preview',help='preview last VTU shape',action='store_true')
 	parser.add_argument('--force', help='if dangerous operation (killing all the processes) is requested, this flag is required to execute the operation. Otherwise, the request will be ignored.', action="store_true")
 	parser.add_argument('-H', '--host', nargs=1, help='specifies which host is itended for the operation. Defauts to localhost for all operations except --status and --version, where all configured hosts are assumed.')
 	parser.add_argument('--html', help='Generate HTML output', action="store_true")
@@ -169,7 +173,10 @@
 
 def start_web_server(args,host):
 	print('Server listening on port {}'.format(args['web_server'][0]))
-	WebTrisurf.WebServer(port=args['web_server'][0])
+	if sys.version_info>=(3,0):
+		WebTrisurf.WebServer(port=args['web_server'][0])
+	else:
+		print("Cannot start WebServer in python 2.7")
 	exit(0)
 
 def perform_action(args,host):
@@ -186,12 +193,60 @@
 		delete_comments(args,host)
 	elif args['web_server']!=None:
 		start_web_server(args,host)
+	elif args['preview']:
+		preview_vtu(args,host)
 	else: #version requested
 		print(getTrisurfVersion())
 	return
 
 
-	
+
+def preview_vtu(args,host):
+	#only for localhost at the moment
+	Dir=trisurf.Directory(maindir=host['runs'][0].maindir,simdir=host['runs'][0].subdir)
+	filename=os.path.join("./",Dir.fullpath(),host['runs'][0].getLastVTU())
+	print(filename)
+	if sys.version_info>=(3,0):
+		print("Preview works only with python 2.7")
+		exit(1)
+	if host['name'] == socket.gethostname():
+		target_runs=getTargetRunIdxList(args)
+		#if target_runs==None:
+		#	target_runs=list(range(1,len(host['runs'])+1))
+		#for i in target_runs:
+		#	host['runs'][i-1].start()
+		reader=vtkXMLUnstructuredGridReader()
+		reader.SetFileName(filename)
+		reader.Update() # Needed because of GetScalarRange
+		output = reader.GetOutput()
+		scalar_range = output.GetScalarRange()
+
+		# Create the mapper that corresponds the objects of the vtk file
+		# into graphics elements
+		mapper = vtkDataSetMapper()
+		mapper.SetInput(output)
+		mapper.SetScalarRange(scalar_range)
+
+		# Create the Actor
+		actor = vtkActor()
+		actor.SetMapper(mapper)
+
+		# Create the Renderer
+		renderer = vtkRenderer()
+		renderer.AddActor(actor)
+		renderer.SetBackground(0, 0, 0) # Set background to white
+
+		# Create the RendererWindow
+		renderer_window = vtkRenderWindow()
+		renderer_window.AddRenderer(renderer)
+
+		# Create the RendererWindowInteractor and display the vtk_file
+		interactor = vtkRenderWindowInteractor()
+		interactor.SetRenderWindow(renderer_window)
+		interactor.Initialize()
+		interactor.Start()
+
+
 
 def getListOfHostConfigurationByHostname(hosts,host):
 	rhost=[]

--
Gitblit v1.9.3