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