Index: /inundation/pyvolution/netherlands.py
===================================================================
--- /inundation/pyvolution/netherlands.py	(revision 3447)
+++ /inundation/pyvolution/netherlands.py	(revision 3448)
@@ -12,10 +12,10 @@
 #rpdb.set_active()
 
-from shallow_water_vtk import Domain, Reflective_boundary, Dirichlet_boundary,\
+from shallow_water import Domain, Reflective_boundary, Dirichlet_boundary,\
      Transmissive_boundary, Constant_height, Constant_stage
 
 from mesh_factory import rectangular_cross
 from Numeric import array
-
+from vtk_realtime_visualiser import Visualiser
 
 class Weir:
@@ -121,5 +121,5 @@
     domain.filename, _ = os.path.splitext(base)
 else:
-    domain.initialise_visualiser(rect=[0.0,0.0,1.0,1.0])
+    #domain.initialise_visualiser(rect=[0.0,0.0,1.0,1.0])
     #domain.initialise_visualiser()
     #domain.visualiser.coloring['stage'] = False
@@ -127,5 +127,8 @@
     domain.checkpoint = False
     domain.store = False
-
+    vis = Visualiser(domain)
+    vis.setup['elevation'] = True
+    vis.updating['stage'] = True
+    vis.qcolor['stage'] = (0.0,0.0,0.8)
 
 
@@ -174,5 +177,5 @@
     domain.write_time()
     #domain.write_boundary()
-
+    vis.update()
     print domain.quantities['stage'].get_values(location='centroids',
                                                 indices=[0])
@@ -188,2 +191,3 @@
 
 print 'That took %.2f seconds' %(time.time()-t0)
+vis.shutdown()
Index: /inundation/pyvolution/shallow_water_vtk.py
===================================================================
--- /inundation/pyvolution/shallow_water_vtk.py	(revision 3447)
+++ /inundation/pyvolution/shallow_water_vtk.py	(revision 3448)
Index: /inundation/pyvolution/vtk_realtime_visualiser.py
===================================================================
--- /inundation/pyvolution/vtk_realtime_visualiser.py	(revision 3447)
+++ /inundation/pyvolution/vtk_realtime_visualiser.py	(revision 3448)
@@ -36,5 +36,5 @@
     """
 
-    def __init__(self, domain, default_scale_z=1.0, rect=None, title='Test'):
+    def __init__(self, domain, default_scale_z=1.0, title='Test'):
         threading.Thread.__init__(self)
         # Initialise data structures. setup and updating are maps
@@ -51,7 +51,4 @@
         self.vertices = domain.vertex_coordinates
         
-
-
-
         self.idle = threading.Event()
         self.redraw_ready = threading.Event()
@@ -66,25 +63,13 @@
         self.mappers = {}
 
+        self.running = True
+
         # Default options
         for x in self.domain.quantities:
             self.setup[x] = False
             self.updating[x] = False
-
-        # Bounding box.
-        if rect is None:
-            self.max_x = max(max(self.vertices[:,0]),max(self.vertices[:,2]),max(self.vertices[:,4]))
-            self.min_x = min(min(self.vertices[:,0]),min(self.vertices[:,2]),min(self.vertices[:,4]))
-            self.max_y = max(max(self.vertices[:,1]),max(self.vertices[:,3]),max(self.vertices[:,5]))
-            self.min_y = min(min(self.vertices[:,1]),min(self.vertices[:,3]),min(self.vertices[:,5]))
-        else:
-            self.max_x = rect[2]
-            self.min_x = rect[0]
-            self.max_y = rect[3]
-            self.min_y = rect[1]
-
-        self.range_x = self.max_x - self.min_x
-        self.range_y = self.max_y - self.min_y
-        self.range_xy = max(self.range_x, self.range_y)
-
+            self.coloring[x] = False
+        self.start()
+            
     def run(self):
         self.initialise_gui()
@@ -129,5 +114,5 @@
 
     def add_axes(self):
-        """Add axes to this Visualiser
+        """Add axes to this Visualiser - TODO
         """
         pass
@@ -239,7 +224,5 @@
 
             self.renderWindow.Render()
-            
-            
-            
+             
             self.root.update_idletasks()
             self.idle.set()
@@ -247,7 +230,20 @@
     
     def shutdown(self):
-        self.domain.visualise = False
+        """Shutdown the visualiser
+        """
+        self.running = False
         self.idle.set()
         self.unpaused.set()
         self.root.withdraw()
         self.root.quit()
+
+    def update(self):
+        """Update the visualiser's display.
+        Clients are expected to call this in their evolve() loop,
+        to keep the visualiser in sync with the simulation.
+        """
+        if self.running:
+            self.redraw_ready.set()
+            self.idle.wait()
+            self.idle.clear()
+            self.unpaused.wait()
