From 3ccf5d1c706eecc15da8d17ca381706892cb9f76 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Sat, 14 Jan 2017 11:59:28 +0000
Subject: [PATCH] Spawning process for interactive VTK viewer process

---
 nir_log |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/nir_log b/nir_log
index 6e896f5..34fc24b 100644
--- a/nir_log
+++ b/nir_log
@@ -98,8 +98,11 @@
 	#if return False or no return statement, the analysis will continue with next running instance in the list. if return True, the analysis will stop after this run.
 	return False
 
-def plotrunningavg(run, **kwargs):
+def plotrunningavginteractive(run, **kwargs):
 	import matplotlib.pyplot as plt
+	from trisurf import VTKRendering as vtk
+	import math
+	from multiprocessing import Process
 	table=trisurf.Statistics(run.Dir.fullpath(),filename='data_tspoststat.csv').getTable()
 	def running_avg(col):
 		import numpy as np
@@ -107,15 +110,24 @@
 		for i in range(0,len(col)):
 			avg.append(np.average(col[:-i]))
 		return avg
+	def spawned_viewer(n):
+		vtk.Renderer(kwargs.get('args', None),kwargs.get('host',None),run, n)
+
+	fig=plt.figure(1)
 	ra=running_avg(table['hbar'])
 	plt.plot(ra)
 	plt.title('Running average')
 	plt.ylabel('1/n sum_i=niter^n(hbar_i)')
 	plt.xlabel('n')
+	def onclick(event):
+		print('button=%d, x=%d, y=%d, xdata=%f, ydata=%f' % (event.button, event.x, event.y, event.xdata, event.ydata))
+		p=Process(target=spawned_viewer, args=(math.floor(event.xdata)-1,))
+		p.start()
+	cid = fig.canvas.mpl_connect('button_press_event', onclick)
 	plt.show()
-
+	plt.close(1)
 #start manager with configured runs
-tsmgr.start(Runs, analyses={'analyze1':analyze, 'plotrunningavg':plotrunningavg, 'plothbar':plothbar})
+tsmgr.start(Runs, analyses={'analyze1':analyze, 'plotrunningavg':plotrunningavginteractive, 'plothbar':plothbar})
 
 #statistics.combine(Runs)
 #statistics.combine([Runs[1],Runs[2]])

--
Gitblit v1.9.3