Changeset 4322


Ignore:
Timestamp:
Mar 25, 2007, 1:42:34 PM (18 years ago)
Author:
steve
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/visualiser/offline.py

    r4321 r4322  
    4040
    4141        self.paused = False
     42        self.movie = False
    4243       
    4344    def setup_grid(self):
     
    127128    def setup_gui(self):
    128129        Visualiser.setup_gui(self)
    129         self.tk_quit.grid(row=0, column=0, columnspan=6, sticky=W+E)
     130        self.tk_quit.grid(row=0, column=0, columnspan=7, sticky=W+E)
    130131        self.tk_restart = Button(self.tk_controlFrame, text="<<<", command=self.restart)
    131132        self.tk_restart.grid(row=1, column=0, sticky=W+E)
     
    140141        self.tk_forward10 = Button(self.tk_controlFrame, text=">>", command=self.forward10)
    141142        self.tk_forward10.grid(row=1, column=5, sticky=W+E)
     143        self.tk_movie_toggle = Button(self.tk_controlFrame, text="Movie off", command=self.movie_toggle)
     144        self.tk_movie_toggle.grid(row=1, column=6, sticky=W+E)
    142145
    143146        # Make the buttons stretch to fill all available space
    144         for i in range(6):
     147        for i in range(7):
    145148            self.tk_controlFrame.grid_columnconfigure(i, weight=1)
    146149
     
    153156        self.redraw_quantities()
    154157        self.pause()
    155 
     158       
     159        if self.movie:
     160            self.save_image()
     161       
     162    def movie_toggle(self):
     163        if self.movie == True:
     164            self.movie = False
     165            self.tk_movie_toggle.config(text='Movie off')
     166        else:
     167            self.movie = True
     168            self.tk_movie_toggle.config(text='Movie on ')
     169           
     170           
     171       
     172       
     173    def save_image(self):
     174       
     175        from vtk import vtkJPEGWriter, vtkJPEGWriter, vtkPNGWriter
     176        from vtk import vtkPNMWriter, vtkWindowToImageFilter
     177        from os import path
     178         
     179        sourcebase, _ = path.splitext(self.source)
     180        fname = sourcebase+'%05g.png' % self.frameNumber
     181        #print fname
     182       
     183        extmap = {'.jpg' : vtkJPEGWriter,
     184                  '.jpeg' : vtkJPEGWriter,
     185                  '.png' : vtkPNGWriter,
     186                  '.pnm' : vtkPNMWriter,
     187                  }
     188        basename, ext = path.splitext(fname)
     189        try: Writer = extmap[ext.lower()]
     190        except KeyError:
     191            error_msg("Don't know how to handle %s files" % ext, parent=self)
     192            return
     193   
     194        renWin = self.vtk_renderer.GetRenderWindow()
     195        w2i = vtkWindowToImageFilter()
     196        writer = Writer()
     197        w2i.SetInput(renWin)
     198        w2i.Update()
     199        writer.SetInput(w2i.GetOutput())
     200        writer.SetFileName(fname)
     201        renWin.Render()
     202        writer.Write()       
     203   
    156204    def back10(self):
    157205        if self.frameNumber - 10 >= 0:
     
    197245            self.redraw_quantities()
    198246            self.pause()
     247         
     248        if self.movie:
     249             self.save_image()
     250               
    199251
    200252    def forward10(self):
Note: See TracChangeset for help on using the changeset viewer.