Changeset 3536
- Timestamp:
- Aug 29, 2006, 12:50:43 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/visualiser/offline.py
r3524 r3536 13 13 Visualiser.__init__(self, source) 14 14 15 self.frame _number = 015 self.frameNumber = 0 16 16 fin = NetCDFFile(self.source, 'r') 17 self.max _frame_number = fin.variables['time'].shape[0] - 117 self.maxFrameNumber = fin.variables['time'].shape[0] - 1 18 18 fin.close() 19 20 self.vtk_heightQuantityCache = [] 21 for i in range(self.maxFrameNumber): 22 self.vtk_heightQuantityCache.append({}) 19 23 20 24 def setup_grid(self): … … 29 33 30 34 def update_height_quantity(self, quantityName, dynamic=True): 35 polydata = self.vtk_polyData[quantityName] = vtkPolyData() 36 if dynamic is True: 37 if not self.vtk_heightQuantityCache[self.frameNumber].has_key(quantityName): 38 self.vtk_heightQuantityCache[self.frameNumber][quantityName]\ 39 = self.read_height_quantity(quantityName, True, self.frameNumber); 40 print "Caching %s (frame %d)" % (quantityName, self.frameNumber) 41 else: 42 print "Using cache of %s (frame %d)" % (quantityName, self.frameNumber) 43 polydata.SetPoints(self.vtk_heightQuantityCache[self.frameNumber][quantityName]) 44 else: 45 polydata.SetPoints(self.read_height_quantity(quantityName, False)) 46 polydata.SetPolys(self.vtk_cells) 47 48 def read_height_quantity(self, quantityName, dynamic=True, frameNumber=0): 49 """Read in a height based quantity from the NetCDF source file 50 and return a vtkPoints object. frameNumber is ignored if 51 dynamic is false.""" 31 52 fin = NetCDFFile(self.source, 'r') 32 if(fin.variables.has_key(quantityName)): 33 points = vtkPoints() 34 if dynamic: 35 N_vert = fin.variables[quantityName].shape[1] 36 else: 37 N_vert = len(fin.variables[quantityName]) 38 x = array(fin.variables['x'], Float) 39 y = array(fin.variables['y'], Float) 40 if dynamic is True: 41 q = array(fin.variables[quantityName][self.frame_number], Float) 42 else: 43 q = array(fin.variables[quantityName], Float) 53 points = vtkPoints() 54 if dynamic is True: 55 N_vert = fin.variables[quantityName].shape[1] 56 else: 57 N_vert = len(fin.variables[quantityName]) 58 x = array(fin.variables['x'], Float) 59 y = array(fin.variables['y'], Float) 60 if dynamic is True: 61 q = array(fin.variables[quantityName][self.frameNumber], Float) 62 else: 63 q = array(fin.variables[quantityName], Float) 44 64 45 46 65 q *= self.height_zScales[quantityName] 66 q += self.height_offset[quantityName] 47 67 48 for v in range(N_vert): 49 points.InsertNextPoint(x[v], y[v], q[v]) 50 polydata = self.vtk_polyData[quantityName] = vtkPolyData() 51 polydata.SetPoints(points) 52 polydata.SetPolys(self.vtk_cells) 53 else: 54 self.height_quantities.remove(quantityName) 68 for v in range(N_vert): 69 points.InsertNextPoint(x[v], y[v], q[v]) 55 70 fin.close() 71 return points 56 72 57 73 def setup_gui(self): … … 73 89 74 90 def restart(self): 75 self.frame _number = 091 self.frameNumber = 0 76 92 self.redraw_quantities(True) 77 93 78 94 def back10(self): 79 if self.frame _number - 10 >= 0:80 self.frame _number -= 1095 if self.frameNumber - 10 >= 0: 96 self.frameNumber -= 10 81 97 else: 82 self.frame _number = 098 self.frameNumber = 0 83 99 self.redraw_quantities(True) 84 100 85 101 def back(self): 86 if self.frame _number > 0:87 self.frame _number -= 1102 if self.frameNumber > 0: 103 self.frameNumber -= 1 88 104 self.redraw_quantities(True) 89 105 … … 92 108 93 109 def forward(self): 94 if self.frame _number < self.max_frame_number:95 self.frame _number += 1110 if self.frameNumber < self.maxFrameNumber: 111 self.frameNumber += 1 96 112 self.redraw_quantities(True) 97 113 98 114 def forward10(self): 99 if self.frame _number + 10 <= self.max_frame_number:100 self.frame _number += 10115 if self.frameNumber + 10 <= self.maxFrameNumber: 116 self.frameNumber += 10 101 117 else: 102 self.frame _number = self.max_frame_number118 self.frameNumber = self.maxFrameNumber 103 119 self.redraw_quantities(True)
Note: See TracChangeset
for help on using the changeset viewer.