| | |
| | | import os,sys |
| | | from . import trisurf |
| | | if sys.version_info<(3,0): |
| | | try: |
| | | from vtk import * |
| | | |
| | | |
| | | except: |
| | | print("Vtk rendering works if you manually install vtk7 for python3") |
| | | exit(1) |
| | | |
| | | class MultiRender: |
| | | def __init__(self,args,host): |
| | |
| | | output = reader.GetOutput() |
| | | scalar_range = output.GetScalarRange() |
| | | mapper = vtkDataSetMapper() |
| | | mapper.SetInput(output) |
| | | mapper.SetInputData(output) |
| | | mapper.SetScalarRange(scalar_range) |
| | | |
| | | # Create the Actor |
| | |
| | | |
| | | |
| | | class Renderer: |
| | | def __init__(self,args,host): |
| | | def __init__(self,args,host,run, timestep=-1): |
| | | self.host=host |
| | | self.args=args |
| | | self.run=run |
| | | self.timestep=timestep |
| | | self.renderer = vtkRenderer() |
| | | self.actor=self.lastActor() |
| | | self.textactor=self.textActor() |
| | |
| | | self.renderer_window.AddRenderer(self.renderer) |
| | | self.renderer_window.SetSize(1200,600) |
| | | |
| | | self.renderer.SetViewport(0.0,0.0,0.5,1.0) |
| | | rend=vtk.vtkRenderer() |
| | | rend.AddActor(self.actor) |
| | | rend.SetViewport(0.5,0.0,1.0,1.0) |
| | | self.renderer_window.AddRenderer(rend) |
| | | # self.renderer.SetViewport(0.0,0.0,0.5,1.0) |
| | | # rend=vtk.vtkRenderer() |
| | | # rend.AddActor(self.actor) |
| | | # rend.SetViewport(0.5,0.0,1.0,1.0) |
| | | # self.renderer_window.AddRenderer(rend) |
| | | # Set up a check for aborting rendering. |
| | | # Create the RendererWindowInteractor and display the vtk_file |
| | | interactor = vtkRenderWindowInteractor() |
| | | interactor.SetRenderWindow(self.renderer_window) |
| | | interactor.Initialize() |
| | | interactor.AddObserver("TimerEvent", self.RenderUpdate) |
| | | timerIDR = interactor.CreateRepeatingTimer(1000) |
| | | timerIDR = interactor.CreateRepeatingTimer(10000) |
| | | interactor.Start() |
| | | return |
| | | |
| | | def lastVTU(self): |
| | | Dir=trisurf.Directory(maindir=self.host['runs'][0].maindir,simdir=self.host['runs'][0].subdir) |
| | | filename=os.path.join("./",Dir.fullpath(),self.host['runs'][0].getLastVTU()) |
| | | #Dir=trisurf.Directory(maindir=self.host['runs'][self.run].maindir,simdir=self.host['runs'][self.run].subdir) |
| | | Dir=self.run.Dir |
| | | #print(self.run.getLastVTU()) |
| | | filename=os.path.join("./",Dir.fullpath(),self.run.getLastVTU()) |
| | | #filename=os.path.join("./",Dir.fullpath(),self.host['runs'][self.run].getLastVTU()) |
| | | return filename |
| | | |
| | | def textActor(self): |
| | |
| | | return textactor |
| | | |
| | | def lastActor(self): |
| | | self.filename=self.lastVTU() |
| | | if(self.timestep<0): |
| | | self.filename=self.lastVTU() |
| | | else: |
| | | self.filename=os.path.join("./",self.run.Dir.fullpath(),'timestep_{:06d}.vtu'.format(self.timestep)) |
| | | 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.SetInputData(output) |
| | | mapper.SetScalarRange(scalar_range) |
| | | |
| | | # Create the Actor |