Index: trunk/packages/vizservers/nanovis/Command.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/Command.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/Command.cpp	(revision 1474)
@@ -953,6 +953,5 @@
         NanoVis::SetVolumeRanges();
     }
-    NanoVis::render_legend(tf, NanoVis::grid->yAxis.min(),
-                           NanoVis::grid->yAxis.max(), w, h, label);
+    NanoVis::render_legend(tf, Volume::valueMin, Volume::valueMax, w, h, label);
     return TCL_OK;
 }
@@ -1412,14 +1411,7 @@
         return TCL_ERROR;
     }
-    if (state) {
-        vector<Volume *>::iterator iter;
-        for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-            (*iter)->enable_data();
-        }
-    } else {
-        vector<Volume *>::iterator iter;
-        for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-            (*iter)->disable_data();
-        }
+    vector<Volume *>::iterator iter;
+    for (iter = ivol.begin(); iter != ivol.end(); iter++) {
+	(*iter)->data(state);
     }
     return TCL_OK;
@@ -1477,14 +1469,7 @@
         return TCL_ERROR;
     }
-    if (state) {
-        vector<Volume *>::iterator iter;
-        for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-            (*iter)->enable_outline();
-        }
-    } else {
-        vector<Volume *>::iterator iter;
-        for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-            (*iter)->disable_outline();
-        }
+    vector<Volume *>::iterator iter;
+    for (iter = ivol.begin(); iter != ivol.end(); iter++) {
+	(*iter)->outline(state);
     }
     return TCL_OK;
@@ -1528,5 +1513,5 @@
     vector<Volume *>::iterator iter;
     for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-        (*iter)->set_diffuse(diffuse);
+        (*iter)->diffuse(diffuse);
     }
     return TCL_OK;
@@ -1568,5 +1553,5 @@
     vector<Volume *>::iterator iter;
     for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-        (*iter)->set_opacity_scale(opacity);
+        (*iter)->opacity_scale(opacity);
     }
     return TCL_OK;
@@ -1587,5 +1572,5 @@
     vector<Volume *>::iterator iter;
     for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-        (*iter)->set_specular(specular);
+        (*iter)->specular(specular);
     }
     return TCL_OK;
@@ -1687,14 +1672,7 @@
         return TCL_ERROR;
     }
-    if (state) {
-        vector<Volume *>::iterator iter;
-        for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-            (*iter)->enable();
-        }
-    } else {
-        vector<Volume *>::iterator iter;
-        for (iter = ivol.begin(); iter != ivol.end(); iter++) {
-            (*iter)->disable();
-        }
+    vector<Volume *>::iterator iter;
+    for (iter = ivol.begin(); iter != ivol.end(); iter++) {
+	(*iter)->visible(state);
     }
     return TCL_OK;
@@ -1705,6 +1683,6 @@
              Tcl_Obj *const *objv)
 {
-    NanoVis::volume[1]->disable_data();
-    NanoVis::volume[1]->disable();
+    NanoVis::volume[1]->data(false);
+    NanoVis::volume[1]->visible(false);
     return TCL_OK;
 }
Index: trunk/packages/vizservers/nanovis/FlowCmd.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/FlowCmd.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/FlowCmd.cpp	(revision 1474)
@@ -67,4 +67,10 @@
     {Rappture::SWITCH_BOOLEAN, "-outline", "boolean",
 	offsetof(FlowValues, showOutline), 0},
+    {Rappture::SWITCH_FLOAT, "-diffuse", "value",
+	offsetof(FlowValues, diffuse), 0},
+    {Rappture::SWITCH_FLOAT, "-opacity", "value",
+	offsetof(FlowValues, opacity), 0},
+    {Rappture::SWITCH_FLOAT, "-specular", "value",
+	offsetof(FlowValues, specular), 0},
     {Rappture::SWITCH_END}
 };
@@ -269,4 +275,5 @@
 					 * been allocated for this vector. */
     _sv.sliceVisible = 1;
+    _sv.tfPtr = NanoVis::get_transfunc("default");
     _volPtr = NULL;
     _cmdToken = Tcl_CreateObjCommand(interp, (char *)_name, 
@@ -649,24 +656,16 @@
     volPtr->disable_cutplane(2);
 
-    TransferFunction *tfPtr;
-    tfPtr = _sv.tfPtr;
-    if (tfPtr == NULL) {
-	tfPtr = NanoVis::get_transfunc("default");
-    }
-    NanoVis::vol_renderer->add_volume(volPtr, tfPtr);
-    if (_sv.showVolume) {
-	volPtr->enable_data();
-    } else {
-	volPtr->disable_data();
-    }
-    if (_sv.showOutline) {
-	volPtr->enable_outline();
-    } else {
-	volPtr->disable_outline();
-    }
+    NanoVis::vol_renderer->add_volume(volPtr, _sv.tfPtr);
+    volPtr->data(_sv.showVolume);
+    volPtr->outline(_sv.showOutline);
+    volPtr->opacity_scale(_sv.opacity);
+    volPtr->specular(_sv.specular);
+    volPtr->diffuse(_sv.diffuse);
+
     float dx0 = -0.5;
     float dy0 = -0.5*volPtr->height/volPtr->width;
     float dz0 = -0.5*volPtr->depth/volPtr->width;
     volPtr->move(Vector3(dx0, dy0, dz0));
+    Volume::update_pending = true;
     return volPtr;
 }
@@ -1596,4 +1595,43 @@
 
 /*
+ * ----------------------------------------------------------------------
+ * CLIENT COMMAND:
+ *   $flow legend <width> <height>
+ *
+ * Clients use this to generate a legend image for the specified
+ * transfer function.  The legend image is a color gradient from 0
+ * to one, drawn in the given transfer function.  The resulting image
+ * is returned in the size <width> x <height>.
+ * ----------------------------------------------------------------------
+ */
+static int
+FlowLegendOp(ClientData clientData, Tcl_Interp *interp, int objc, 
+	  Tcl_Obj *const *objv)
+{
+    FlowCmd *flowPtr = (FlowCmd *)clientData;
+    
+    const char *string = Tcl_GetString(objv[1]);
+    TransferFunction *tf;
+    tf = flowPtr->GetTransferFunction();
+    if (tf == NULL) {
+        Tcl_AppendResult(interp, "unknown transfer function \"", string, "\"",
+                             (char*)NULL);
+        return TCL_ERROR;
+    }
+    const char *label;
+    label = Tcl_GetString(objv[0]);
+    int w, h;
+    if ((Tcl_GetIntFromObj(interp, objv[2], &w) != TCL_OK) ||
+        (Tcl_GetIntFromObj(interp, objv[3], &h) != TCL_OK)) {
+        return TCL_ERROR;
+    }
+    if (NanoVis::MAP_FLOWS) {
+        NanoVis::MapFlows();
+    }
+    NanoVis::render_legend(tf, NanoVis::magMin, NanoVis::magMax, w, h, label);
+    return TCL_OK;
+}
+
+/*
  *---------------------------------------------------------------------------
  *
@@ -1615,4 +1653,5 @@
     {"configure",   1, FlowConfigureOp,  2, 0, "?switches?"},
     {"data",	    1, FlowDataOp,       2, 0, "oper ?args?"},
+    {"legend",      1, FlowLegendOp,     4, 4, "w h"},
     {"particles",   1, FlowParticlesOp,  2, 0, "oper ?args?"}
 };
@@ -1934,4 +1973,5 @@
     return TCL_OK;
 }
+
 
 /*
Index: trunk/packages/vizservers/nanovis/FlowCmd.h
===================================================================
--- trunk/packages/vizservers/nanovis/FlowCmd.h	(revision 1473)
+++ trunk/packages/vizservers/nanovis/FlowCmd.h	(revision 1474)
@@ -140,4 +140,8 @@
     int showOutline;
     int isHidden;
+    /* The following are settings for the volume.*/
+    float diffuse;
+    float specular;
+    float opacity;
 };
 
@@ -255,4 +259,7 @@
 	return (SliceAxis)_sv.slicePos.axis;
     }
+    TransferFunction *GetTransferFunction(void) {
+	return _sv.tfPtr;
+    }
     float GetRelativePosition(void);
     void SetAxis(void) {
Index: trunk/packages/vizservers/nanovis/Lic.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/Lic.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/Lic.cpp	(revision 1474)
@@ -117,29 +117,29 @@
 void Lic::make_patterns() 
 { 
-   int lut[256];
-   int phase[NPN][NPN];
-   GLubyte pat[NPN][NPN][4];
-   int i, j, k, t;
+    int lut[256];
+    int phase[NPN][NPN];
+    GLubyte pat[NPN][NPN][4];
+    int i, j, k, t;
     
-   for (i = 0; i < 256; i++) lut[i] = i < 127 ? 0 : 255;
-   for (i = 0; i < NPN; i++)
-   for (j = 0; j < NPN; j++) phase[i][j] = rand() % 256; 
-
-   for (k = 0; k < Npat; k++) {
-     t = k*256/Npat;
-     for (i = 0; i < NPN; i++) 
-     for (j = 0; j < NPN; j++) {
-       pat[i][j][0] =
-       pat[i][j][1] =
-       pat[i][j][2] = lut[(t + phase[i][j]) % 255];
-       pat[i][j][3] = alpha;
-     }
-
-     glNewList(k + 1, GL_COMPILE);
-     glBindTexture(GL_TEXTURE_2D, pattern_tex);
-     glTexImage2D(GL_TEXTURE_2D, 0, 4, NPN, NPN, 0, 
+    for (i = 0; i < 256; i++) lut[i] = i < 127 ? 0 : 255;
+    for (i = 0; i < NPN; i++)
+	for (j = 0; j < NPN; j++) phase[i][j] = rand() % 256; 
+    
+    for (k = 0; k < Npat; k++) {
+	t = k*256/Npat;
+	for (i = 0; i < NPN; i++) 
+	    for (j = 0; j < NPN; j++) {
+		pat[i][j][0] =
+		    pat[i][j][1] =
+		    pat[i][j][2] = lut[(t + phase[i][j]) % 255];
+		pat[i][j][3] = alpha;
+	    }
+	
+	glNewList(k + 1, GL_COMPILE);
+	glBindTexture(GL_TEXTURE_2D, pattern_tex);
+	glTexImage2D(GL_TEXTURE_2D, 0, 4, NPN, NPN, 0, 
 		     GL_RGBA, GL_UNSIGNED_BYTE, pat);
-     glEndList();
-   }
+	glEndList();
+    }
 }
 
Index: trunk/packages/vizservers/nanovis/NvRegularVolumeShader.h
===================================================================
--- trunk/packages/vizservers/nanovis/NvRegularVolumeShader.h	(revision 1473)
+++ trunk/packages/vizservers/nanovis/NvRegularVolumeShader.h	(revision 1474)
@@ -39,13 +39,13 @@
         cgGLSetParameter4f(m_render_param_one_volume_param,
             volume->get_n_slice(),
-            volume->get_opacity_scale(),
-            volume->get_diffuse(),
-            volume->get_specular());
+            volume->opacity_scale(),
+            volume->diffuse(),
+            volume->specular());
     else
         cgGLSetParameter4f(m_render_param_one_volume_param,
             0.,
-            volume->get_opacity_scale(),
-            volume->get_diffuse(),
-            volume->get_specular());
+            volume->opacity_scale(),
+            volume->diffuse(),
+            volume->specular());
 
     cgGLSetParameter4f(m_option_one_volume_param,
Index: trunk/packages/vizservers/nanovis/NvZincBlendeVolumeShader.h
===================================================================
--- trunk/packages/vizservers/nanovis/NvZincBlendeVolumeShader.h	(revision 1473)
+++ trunk/packages/vizservers/nanovis/NvZincBlendeVolumeShader.h	(revision 1474)
@@ -35,13 +35,13 @@
         cgGLSetParameter4f(_renderParam,
             vol->get_n_slice(),
-            vol->get_opacity_scale(),
-            vol->get_diffuse(), 
-            vol->get_specular());
+            vol->opacity_scale(),
+            vol->diffuse(), 
+            vol->specular());
     else
         cgGLSetParameter4f(_renderParam,
             0.,
-            vol->get_opacity_scale(),
-            vol->get_diffuse(),
-            vol->get_specular());
+            vol->opacity_scale(),
+            vol->diffuse(),
+            vol->specular());
 
     cgGLSetParameter4f(_option_one_volume_param,
Index: trunk/packages/vizservers/nanovis/Renderable.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/Renderable.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/Renderable.cpp	(revision 1474)
@@ -19,6 +19,8 @@
 Renderable::Renderable(){}
 Renderable::Renderable(Vector3 loc):
-  location(loc),
-  enabled(true){ }
+    location(loc),
+    enabled(true)
+{ 
+}
 
 Renderable::~Renderable(){}
Index: trunk/packages/vizservers/nanovis/Volume.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/Volume.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/Volume.cpp	(revision 1474)
@@ -37,7 +37,7 @@
     //n_slice(256),		// default value
     n_slice(512),		// default value
-    specular(6.),		// default value
-    diffuse(3.),		// default value
-    opacity_scale(10.),		// default value
+    _specular(6.),		// default value
+    _diffuse(3.),		// default value
+    _opacity_scale(10.),	// default value
     data_enabled(true),		// default value
     outline_enabled(true),	// default value
Index: trunk/packages/vizservers/nanovis/Volume.h
===================================================================
--- trunk/packages/vizservers/nanovis/Volume.h	(revision 1473)
+++ trunk/packages/vizservers/nanovis/Volume.h	(revision 1474)
@@ -80,7 +80,7 @@
 				// the better quality, lower speed.
 
-    float specular;		// specular lighting parameter
-    float diffuse;		// diffuse lighting parameter
-    float opacity_scale;	// The scale multiplied to the opacity assigned
+    float _specular;		// specular lighting parameter
+    float _diffuse;		// diffuse lighting parameter
+    float _opacity_scale;	// The scale multiplied to the opacity assigned
 				// by the transfer function.  Rule of thumb:
 				// higher opacity_scale the object is to appear
@@ -110,9 +110,14 @@
     ~Volume();
 	
-    void enable();		// VolumeRenderer will render an enabled
-				// volume and its cutplanes
-    void disable();
-    void move(Vector3 _loc);
-    bool is_enabled();
+    void visible(bool value) { 
+	enabled = value; 
+    }
+    bool visible(void) { 
+	return enabled; 
+    }
+    void move(Vector3 _loc) { 
+	location = _loc; 
+    }
+
     Vector3* get_location();
     
@@ -138,18 +143,34 @@
 
     //methods related to shading. These parameters are per volume 
-    float get_specular();
-    float get_diffuse();
-    float get_opacity_scale();
-    void set_specular(float s);
-    void set_diffuse(float d);
-    void set_opacity_scale(float s);
-    
-    void enable_data();
-    void disable_data();
-    bool data_is_enabled();
-    
-    void enable_outline();
-    void disable_outline();
-    bool outline_is_enabled();
+    float specular(void) {
+	return _specular;
+    }
+    void specular(float value) {
+	_specular = value;
+    }
+    float diffuse(void) {
+	return _diffuse;
+    }
+    void diffuse(float value) {
+	_diffuse = value;
+    }
+    float opacity_scale(void) {
+	return _opacity_scale;
+    }
+    void opacity_scale(float value) {
+	_opacity_scale = value;
+    }
+    void data(bool value) {
+	data_enabled = value;
+    }
+    bool data(void) {
+	return data_enabled;
+    }
+    void outline(bool value) {
+	outline_enabled = value; 
+    }
+    bool outline(void) {
+	return outline_enabled;
+    }
     void set_outline_color(float* rgb);
     void get_outline_color(float* rgb);
@@ -164,16 +185,4 @@
 };
 
-inline void Volume::enable() { 
-    enabled = true; 
-}
-inline void Volume::disable() { 
-    enabled = false; 
-}
-inline void Volume::move(Vector3 _loc) { 
-    location = _loc; 
-}
-inline bool Volume::is_enabled() { 
-    return enabled; 
-}
 inline Vector3* Volume::get_location() { 
     return &location; 
@@ -246,76 +255,4 @@
 }
 
-inline float 
-Volume::get_specular() 
-{ 
-    return specular; 
-}
-
-inline float 
-Volume::get_diffuse() 
-{ 
-    return diffuse; 
-}
-
-inline float 
-Volume::get_opacity_scale() 
-{ 
-    return opacity_scale; 
-}
-
-inline void 
-Volume::set_specular(float s) 
-{ 
-    specular = s; 
-}
-
-inline void 
-Volume::set_diffuse(float d) 
-{ 
-    diffuse = d; 
-}
-
-inline void 
-Volume::set_opacity_scale(float s) 
-{ 
-    opacity_scale = s; 
-}
-
-inline void 
-Volume::enable_data() 
-{ 
-    data_enabled = true; 
-}
-
-inline void 
-Volume::disable_data() 
-{ 
-    data_enabled = false; 
-}
-
-inline bool 
-Volume::data_is_enabled() 
-{ 
-    return data_enabled; 
-}
-
-inline void 
-Volume::enable_outline() 
-{ 
-    outline_enabled = true; 
-}
-
-inline void 
-Volume::disable_outline() 
-{ 
-    outline_enabled = false; 
-}
-
-inline bool 
-Volume::outline_is_enabled() 
-{ 
-    return outline_enabled; 
-}
-
 inline void 
 Volume::set_outline_color(float *rgb) 
Index: trunk/packages/vizservers/nanovis/VolumeInterpolator.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/VolumeInterpolator.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/VolumeInterpolator.cpp	(revision 1474)
@@ -154,9 +154,9 @@
         _volume->disable_cutplane(1);
         _volume->disable_cutplane(2);
-        _volume->enable();
-        _volume->enable_data();
-        _volume->set_specular(volume->get_specular());
-        _volume->set_diffuse(volume->get_diffuse());
-        _volume->set_opacity_scale(volume->get_opacity_scale());
+        _volume->visible(true);
+        _volume->data(true);
+        _volume->specular(volume->specular());
+        _volume->diffuse(volume->diffuse());
+        _volume->opacity_scale(volume->opacity_scale());
         _volume->set_isosurface(0);
         
Index: trunk/packages/vizservers/nanovis/VolumeRenderer.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/VolumeRenderer.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/VolumeRenderer.cpp	(revision 1474)
@@ -164,5 +164,5 @@
     for(int i=0; i<n_volumes; i++){
 	int volume_index = i;
-	if(!volume[i]->is_enabled())
+	if(!volume[i]->visible())
 	    continue; //skip this volume
 	
@@ -173,5 +173,5 @@
 	glTranslatef(shift_4d.x, shift_4d.y, shift_4d.z);
 	
-	if (volume[volume_index]->outline_is_enabled()) {
+	if (volume[volume_index]->outline()) {
 	    float olcolor[3];
 	    volume[volume_index]->get_outline_color(olcolor);
@@ -225,5 +225,5 @@
         actual_slices[vol_index] = 0;
 
-        if(!cur_vol->is_enabled()) {
+        if(!cur_vol->visible()) {
             continue; //skip this volume
 	}
@@ -287,5 +287,5 @@
 	//draw volume bounding box with translation (the correct location in
 	//space)
-        if (cur_vol->outline_is_enabled()) {
+        if (cur_vol->outline()) {
             float olcolor[3];
             cur_vol->get_outline_color(olcolor);
@@ -299,5 +299,5 @@
         glPushMatrix();
         glTranslatef(shift_4d.x, shift_4d.y, shift_4d.z);
-        if(cur_vol->outline_is_enabled()) {
+        if(cur_vol->outline()) {
 	    //draw_label(i);
         }
@@ -314,5 +314,5 @@
         int n_actual_slices;
 	
-        if (cur_vol->data_is_enabled()) {
+        if (cur_vol->data()) {
             n_actual_slices = (int)(fabs(zNear-zFar)/z_step + 1);
             polys[vol_index] = new ConvexPolygon*[n_actual_slices];
@@ -572,5 +572,5 @@
 
   //draw volume bounding box
-  if (volume[volume_index]->outline_is_enabled()) {
+  if (volume[volume_index]->outline()) {
       draw_bounding_box(x0, y0, z0, x0+1, y0+1, z0+1, 0.8, 0.1, 0.1, 1.5);
   }
@@ -920,9 +920,9 @@
 
 void VolumeRenderer::enable_volume(int index){
-  volume[index]->enable();
+  volume[index]->visible(true);
 }
 
 void VolumeRenderer::disable_volume(int index){
-  volume[index]->disable();
+  volume[index]->visible(false);
 }
 
Index: trunk/packages/vizservers/nanovis/VolumeRenderer.h
===================================================================
--- trunk/packages/vizservers/nanovis/VolumeRenderer.h	(revision 1473)
+++ trunk/packages/vizservers/nanovis/VolumeRenderer.h	(revision 1474)
@@ -116,6 +116,6 @@
     void render_all();	//render all enabled volumes;
     void render_all_points(void); //render all enabled volumes;
-    void set_specular(float val);
-    void set_diffuse(float val);
+    void specular(float val);
+    void diffuse(float val);
     void set_slice_mode(bool val); //control independently.
     void set_volume_mode(bool val);
Index: trunk/packages/vizservers/nanovis/dxReader.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/dxReader.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/dxReader.cpp	(revision 1474)
@@ -59,4 +59,5 @@
     dx = dy = dz = 0.0;         // Suppress compiler warning.
     x0 = y0 = z0 = 0.0;		// May not have an origin line.
+    nx = ny = nz = npts = nxy = 0;
     do {
         fin.getline(line,sizeof(line)-1);
@@ -423,4 +424,5 @@
     dx = dy = dz = 0.0;         // Suppress compiler warning.
     x0 = y0 = z0 = 0.0;		// May not have an origin line.
+    nx = ny = nz = npts = nxy = 0;
     while (!fin.eof()) {
         fin.getline(line, sizeof(line) - 1);
@@ -852,4 +854,5 @@
     dx = dy = dz = 0.0;         // Suppress compiler warning.
     x0 = y0 = z0 = 0.0;		// May not have an origin line.
+    nx = ny = nz = npts = nxy = 0;
     while (!fin.eof()) {
         fin.getline(line, sizeof(line) - 1);
Index: trunk/packages/vizservers/nanovis/nanovis.cpp
===================================================================
--- trunk/packages/vizservers/nanovis/nanovis.cpp	(revision 1473)
+++ trunk/packages/vizservers/nanovis/nanovis.cpp	(revision 1474)
@@ -625,4 +625,5 @@
     	fprintf(stderr, "leaving render_legend\n");
     }
+    delete plane[0];
     return TCL_OK;
 }
@@ -1544,5 +1545,5 @@
             continue;
         }
-        if (!volPtr->enabled) {
+        if (!volPtr->visible()) {
             continue;
         }
@@ -1870,11 +1871,11 @@
 	    
 	    NanoVis::vol_renderer->add_volume(volPtr,
-					      NanoVis::get_transfunc("default"));
+		NanoVis::get_transfunc("default"));
 	    float dx0 = -0.5;
 	    float dy0 = -0.5*volPtr->height/volPtr->width;
 	    float dz0 = -0.5*volPtr->depth/volPtr->width;
 	    volPtr->move(Vector3(dx0, dy0, dz0));
-	    //volPtr->enable_data();
-	    volPtr->disable_data();
+	    //volPtr->data(true);
+	    volPtr->data(false);
 	    NanoVis::flowVisRenderer->addVectorField(vf_name, volPtr, 
 		*(volPtr->get_location()),
