From e984829db39b2778e4f66c34524329ad09749c45 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Mon, 11 Jul 2016 19:29:21 +0000
Subject: [PATCH] Added possibility of internal pegs. It can break the system however

---
 python/trisurf/VTKRendering.py |   74 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/python/trisurf/VTKRendering.py b/python/trisurf/VTKRendering.py
index 8461cd3..5e72b98 100644
--- a/python/trisurf/VTKRendering.py
+++ b/python/trisurf/VTKRendering.py
@@ -4,6 +4,80 @@
 	from vtk import *
 
 
+
+class MultiRender:
+	def __init__(self,args,host):
+		target_runs=getRargetRunIdxList(args)
+		if target_runs==None:
+			target_runs=list(range(1,len(host['runs'])+1))
+		nruns=len(target_runs)
+		#prepare rendering window
+		self.renderer_window = vtkRenderWindow()
+		self.renderer_window.AddRenderer(self.renderer)
+		self.renderer_window.SetSize(1200,600)
+		interactor = vtkRenderWindowInteractor()
+		interactor.SetRenderWindow(self.renderer_window)
+		interactor.Initialize()
+ 		interactor.AddObserver("TimerEvent", self.RenderUpdate)
+		timerIDR = interactor.CreateRepeatingTimer(1000)
+		self.filename=[]
+		self.renderer=[]
+		i=0
+		for run in target_runs:	
+			#for each target run calculate renderer location
+			r.vtkRenderer()
+			r.SetBackground(0,0,0)
+			p=1.0/float(nruns)
+			x1=i*p
+			x2=(i+1)*p
+			r.SetViewport(x1,0.0,x2,1.0)
+			self.renderer.Append(r)
+			self.renderer_window.AddRenderer(r)
+			i=i+1
+		#call Renderer object with Run, renderer
+		#start endless loop of interactor
+		interactor.Start()
+
+	def lastVTU(self,run):
+		Dir=trisurf.Directory(maindir=run.maindir,simdir=run.subdir)
+		filename=os.path.join("./",Dir.fullpath(),run.getLastVTU())
+		return filename
+
+	def lastActorForRun(self,run):
+		filename=self.lastVTU(run)
+		reader=vtkXMLUnstructuredGridReader()
+		reader.SetFileName(self.filename)
+		reader.Update() # Needed because of GetScalarRange
+		output = reader.GetOutput()
+		scalar_range = output.GetScalarRange()
+		mapper = vtkDataSetMapper()
+		mapper.SetInput(output)
+		mapper.SetScalarRange(scalar_range)
+
+		# Create the Actor
+		actor = vtkActor()
+		actor.SetMapper(mapper)
+		return actor
+
+
+
+	def RenderUpdate(self, obj, event):
+		i=0
+		for run in runs:
+			if(self.lastVTU(run)!=self.filename[i]):
+				#print("updejt")
+				self.renderer.RemoveActor(self.actor)
+				self.renderer.RemoveActor(self.textactor)
+				self.actor=self.lastActor()
+				self.textactor=self.textActor()
+				self.renderer.AddActor(self.actor)
+				self.renderer.AddActor(self.textactor)
+				self.renderer_window.Render()
+			#self.render.RemoveActor(self.actor)
+			i=i+1	
+		return
+
+
 class Renderer:
 	def __init__(self,args,host):
 		self.host=host

--
Gitblit v1.9.3