Commit d4882eb3 authored by hrchilds's avatar hrchilds

Update from July 18, 2003

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@37 18c085ea-50e0-402c-830e-de6fd14e8384
parent 4c625e5c
......@@ -10,6 +10,7 @@
#include <vtkHexahedron.h>
#include <vtkPyramid.h>
#include <vtkTetra.h>
#include <vtkUnsignedCharArray.h>
#include <vtkVoxel.h>
#include <vtkWedge.h>
......@@ -236,6 +237,11 @@ avtSamplePointExtractor::SetUpExtractors(void)
// Hank Childs, Mon Apr 15 15:34:43 PDT 2002
// Give clearer error messages.
//
// Hank Childs, Fri Jul 18 11:42:10 PDT 2003
// Do not sample ghost zones. This gives slightly better performance.
// And ghost zones occasionally have the wrong value (due to problems with
// the code that produced it).
//
// ****************************************************************************
void
......@@ -272,8 +278,13 @@ avtSamplePointExtractor::ExecuteTree(avtDataTree_p dt)
//
int numCells = ds->GetNumberOfCells();
int lastMilestone = 0;
vtkUnsignedCharArray *ghosts = (vtkUnsignedCharArray *)
ds->GetCellData()->GetArray("vtkGhostLevels");
for (int j = 0 ; j < numCells ; j++)
{
if (ghosts != NULL && ghosts->GetValue(j) > 0)
continue;
vtkCell *cell = ds->GetCell(j);
switch (cell->GetCellType())
......
......@@ -9,7 +9,6 @@
#include <vtkFloatArray.h>
#include <vtkPoints.h>
#include <vtkPolyData.h>
#include <vtkUnsignedCharArray.h>
#include <avtImagePartition.h>
#include <avtParallel.h>
......@@ -235,7 +234,7 @@ avtSamplePointToSurfaceFilter::Execute(void)
arr->Delete();
int ncells = 4*(height-1)*(width-1);
vtkUnsignedCharArray *cell_valid = vtkUnsignedCharArray::New();
vtkFloatArray *cell_valid = vtkFloatArray::New();
cell_valid->SetName("cell_valid");
cell_valid->SetNumberOfTuples(ncells);
pd->Allocate(ncells*4);
......
This diff is collapsed.
......@@ -10,7 +10,7 @@
#include <ref_ptr.h>
class vtkActor2D;
class vtkVerticalScalarBarActor;
class vtkRenderer;
......@@ -28,6 +28,16 @@ class vtkRenderer;
// Hank Childs, Fri Dec 22 15:57:46 PST 2000
// Removed inheritance from avtDecorator.
//
// Eric Brugger, Mon Jul 14 15:50:29 PDT 2003
// Added GetLegendOn, SetFontHeight, SetTitle, SetDatabase, SetVarName,
// SetMessage and Update.
//
// Eric Brugger, Wed Jul 16 07:59:54 PDT 2003
// Made private data members protected.
//
// Eric Brugger, Thu Jul 17 08:13:45 PDT 2003
// Added maxSize argument to GetLegendSize.
//
// ****************************************************************************
class PLOTTER_API avtLegend
......@@ -41,21 +51,35 @@ class PLOTTER_API avtLegend
virtual void GetLegendPosition(float &, float &);
virtual void SetLegendPosition(float, float);
virtual void GetLegendSize(float &, float &);
virtual void GetLegendSize(float, float &, float &);
virtual void LegendOn(void);
virtual void LegendOff(void);
bool GetLegendOn(void) const;
virtual void SetForegroundColor(const float [3]);
virtual void SetVarName(const char *) {};
virtual void SetFontHeight(float);
void SetTitle(const char *);
void SetDatabaseInfo(const char *);
void SetVarName(const char *);
void SetMessage(const char *);
void Update();
protected:
float position[2];
float size[2];
bool legendOn;
bool currentlyDrawn;
vtkActor2D *legend;
vtkVerticalScalarBarActor *legend;
vtkRenderer *renderer;
float fontHeight;
char *title;
char *databaseInfo;
char *varName;
char *message;
virtual void ChangePosition(float, float) = 0;
};
......
This diff is collapsed.
......@@ -46,6 +46,18 @@ class vtkLookupTable;
// Kathleen Bonnell, Mon May 19 13:47:48 PDT 2003
// Added method 'SetReverseOrder'.
//
// Eric Brugger, Mon Jul 14 15:52:46 PDT 2003
// Moved SetVarName, SetTitle and SetMessage to avtLegend.
//
// Eric Brugger, Wed Jul 16 08:03:26 PDT 2003
// I added GetLegendSize. I renamed SetColorBar to SetColorBarVisibility
// and SetRange to SetVarRangeVisibility. I also added data members to
// track the number of levels, the colorbar visibility and variable range
// visibility.
//
// Eric Brugger, Thu Jul 17 08:17:40 PDT 2003
// Added maxSize argument to GetLegendSize.
//
// ****************************************************************************
class PLOTTER_API avtLevelsLegend : public avtLegend
......@@ -54,25 +66,29 @@ class PLOTTER_API avtLevelsLegend : public avtLegend
avtLevelsLegend();
virtual ~avtLevelsLegend();
void SetColorBar(const int);
virtual void GetLegendSize(float, float &, float &);
void SetColorBarVisibility(const int);
void SetRange(float min, float max);
void SetLevels(const std::vector<double> &);
void SetLevels(const std::vector<std::string> &);
void SetLookupTable(vtkLookupTable *);
void SetMessage(const char *msg);
void SetVarRange(float min, float max);
void SetRange(float min, float max);
void SetRange(const int);
void SetTitle(const char *title);
virtual void SetVarName(const char *name);
void SetLabelColorMap(const LevelColorMap &);
void SetReverseOrder(const bool);
void SetVarRangeVisibility(const int);
void SetVarRange(float min, float max);
protected:
float min, max;
int nLevels;
vtkLookupTable *lut;
vtkVerticalScalarBarActor *sBar;
char *varName;
int barVisibility;
int rangeVisibility;
virtual void ChangePosition(float, float);
};
......
This diff is collapsed.
......@@ -49,6 +49,18 @@ class vtkLookupTable;
// Kathleen Bonnell, Thu Oct 11 12:45:30 PDT 2001
// Added member 'title'.
//
// Eric Brugger, Mon Jul 14 15:53:54 PDT 2003
// Moved SetVarName, SetTitle and SetMessage to avtLegend.
//
// Eric Brugger, Wed Jul 16 08:15:15 PDT 2003
// I added GetLegendSize. I renamed SetColorBar to SetColorBarVisibility,
// SetRange to SetVarRangeVisibility and GetRange to GetVarRange. I also
// added data members to track the colorbar visibility and variable range
// visibility.
//
// Eric Brugger, Thu Jul 17 08:45:29 PDT 2003
// Added maxSize argument to GetLegendSize.
//
// ****************************************************************************
class PLOTTER_API avtVariableLegend : public avtLegend
......@@ -58,23 +70,25 @@ class PLOTTER_API avtVariableLegend : public avtLegend
avtVariableLegend(int arg);
virtual ~avtVariableLegend();
virtual void GetLegendSize(float, float &, float &);
void SetColorBarVisibility(const int);
void SetRange(float min, float max);
void SetVarRange(float min, float max);
void GetVarRange(float &, float &);
virtual void SetVarName(const char *name);
void SetTitle(const char *);
void SetMessage(const char *);
void SetColorBar(const int);
void GetRange(float &, float &);
void SetScaling(int mode = 0, float skew = 1.);
void SetLookupTable(vtkLookupTable *);
void SetVarRangeVisibility(const int);
void SetVarRange(float min, float max);
protected:
float min, max;
char * title;
vtkVerticalScalarBarActor *sBar;
vtkLookupTable *lut;
int barVisibility;
int rangeVisibility;
virtual void ChangePosition(float, float);
};
......
......@@ -23,21 +23,29 @@
// Hank Childs, Thu Mar 14 15:57:09 PST 2002
// Make legend a bit smaller.
//
// Eric Brugger, Mon Jul 14 15:54:59 PDT 2003
// Remove initialization of scalar bar title.
//
// Eric Brugger, Wed Jul 16 16:04:18 PDT 2003
// I added barVisibility and rangeVisibility. I changed the default
// size and position of the legend.
//
// ****************************************************************************
avtVolumeVariableLegend::avtVolumeVariableLegend() : avtVariableLegend(1)
{
sBar = vtkVerticalScalarBarWithOpacityActor::New();
sBar->SetShadow(0);
sBar->SetTitle("VolumeVariable Plot");
sBar->SetLookupTable(lut);
size[0] = 0.08;
size[1] = 0.17;
sBar->SetWidth(size[0]);
sBar->SetHeight(size[1]);
size[1] = 0.26;
sBar->SetPosition2(size[0], size[1]);
SetLegendPosition(0.05, 0.72);
SetLegendPosition(0.05, 0.7);
barVisibility = 1;
rangeVisibility = 1;
//
// Set the legend to also point to sBar, so the base methods will work
......
......@@ -12,14 +12,6 @@
class vtkTextActor;
//
// I would like to make this a constant integer associated with the class, but
// I am concerned that some compilers will barf with that. Will have to live
// with a #define to avoid magic numbers.
//
#define MAX_LEGENDS 6
// ****************************************************************************
// Class: VisWinLegends
//
......@@ -38,6 +30,12 @@ class vtkTextActor;
// vtkScaledTextActor has been deprecated in favor of vtkTextActor.
// vtkTextActor defines its own mapper, so vtkTextMapper not needed.
//
// Eric Brugger, Mon Jul 14 16:27:28 PDT 2003
// Changed the way database information is handled.
//
// Eric Brugger, Wed Jul 16 09:47:15 PDT 2003
// Removed GetPosition.
//
// ****************************************************************************
class VISWINDOW_API VisWinLegends : public VisWinColleague
......@@ -50,16 +48,13 @@ class VISWINDOW_API VisWinLegends : public VisWinColleague
virtual void UpdatePlotList(std::vector<avtActor_p> &);
void SetVisibility(bool db, bool legend);
void RemoveDBInfos(void);
void AddDBInfos(void);
protected:
vtkTextActor *dbInfoActor[MAX_LEGENDS];
bool dbInfoIsAdded[MAX_LEGENDS];
vtkTextActor *dbInfoActor;
bool dbInfoIsAdded;
bool mainDBInfoVisible;
bool legendVisible;
bool homogeneous;
int numLegends;
static const float leftColumnPosition;
static const float rightColumnPosition;
......@@ -69,7 +64,9 @@ class VISWINDOW_API VisWinLegends : public VisWinColleague
void PositionLegends(std::vector<avtActor_p> &);
void UpdateDBInfo(std::vector<avtActor_p> &);
float GetPosition(int);
private:
static void CreateDatabaseInfo(char *,
avtDataAttributes &);
};
......
......@@ -813,12 +813,17 @@ PyBoundaryAttributes_SetLogging(bool val)
BoundaryAttributesEnableLogging = val;
}
// ****************************************************************************
// Modifications:
// Kathleen Bonnell, Fri Jul 18 13:49:42 PDT 2003
// Make defaultAtts point to the passed atts directly.
//
// ****************************************************************************
void
PyBoundaryAttributes_SetDefaults(const BoundaryAttributes *atts)
{
if(defaultAtts)
delete defaultAtts;
defaultAtts = new BoundaryAttributes(*atts);
defaultAtts = const_cast<BoundaryAttributes*>(atts);
}
......@@ -28,6 +28,8 @@
// Creation: June 12, 2003
//
// Modifications:
// Eric Brugger, Wed Jul 16 10:19:00 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
......@@ -37,7 +39,9 @@ avtBoundaryPlot::avtBoundaryPlot()
levelsLegend = new avtLevelsLegend();
levelsLegend->SetTitle("Boundary");
// there is no 'range' per se, so turn off range visibility.
levelsLegend->SetRange(0);
levelsLegend->SetVarRangeVisibility(0);
// Tell the legend to draw top-to-bottom (default is bottom-to-top).
levelsLegend->SetReverseOrder(true);
avtLUT = new avtLookupTable();
......@@ -413,6 +417,8 @@ avtBoundaryPlot::CustomizeBehavior(void)
// Note: taken almost verbatim from the Subset plot
//
// Modifications:
// Eric Brugger, Wed Jul 16 10:19:00 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
......@@ -427,18 +433,13 @@ avtBoundaryPlot::SetColors()
if (labels.size() == 0)
{
levelsLegend->SetColorBar(0);
levelsLegend->SetTitle("Boundary");
levelsLegend->SetMessage("No Boundaries Present");
levelsLegend->SetColorBarVisibility(0);
levelsLegend->SetMessage("No boundaries present");
}
else
{
//
// If a messages was previously set, the title needs to
// be reset so that the message disappears.
//
levelsLegend->SetTitle("Boundary");
levelsLegend->SetColorBar(1);
levelsLegend->SetColorBarVisibility(1);
levelsLegend->SetMessage(NULL);
}
if (atts.GetColorType() == BoundaryAttributes::ColorBySingleColor)
......
......@@ -583,6 +583,9 @@ avtContourPlot::ApplyRenderingTransformation(avtDataObject_p input)
// Removed logic for setting legend's labels. Now contained in
// CustomizeMapper.
//
// Eric Brugger, Wed Jul 16 10:27:29 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
void
......@@ -604,13 +607,13 @@ avtContourPlot::CustomizeBehavior(void)
if (numLevels == 0 || min == max)
{
levelsLegend->SetMessage("Constant\nno levels");
// don't draw the color bar
levelsLegend->SetColorBar(0);
levelsLegend->SetColorBarVisibility(0);
levelsLegend->SetMessage("Constant, no levels");
}
else
{
levelsLegend->SetColorBar(1);
levelsLegend->SetColorBarVisibility(1);
levelsLegend->SetMessage(NULL);
}
behavior->SetLegend(levLegendRefPtr);
......@@ -627,6 +630,10 @@ avtContourPlot::CustomizeBehavior(void)
// Programmer: Kathleen Bonnell
// Creation: September 22, 2001
//
// Modifications:
// Eric Brugger, Wed Jul 16 10:27:29 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
void
......@@ -638,12 +645,13 @@ avtContourPlot::CustomizeMapper(avtDataObjectInformation &info)
if (!isoValues.empty())
{
levelsLegend->SetLevels(isoValues);
levelsLegend->SetColorBarVisibility(1);
levelsLegend->SetMessage(NULL);
}
else
{
levelsLegend->SetColorBarVisibility(0);
levelsLegend->SetMessage("Unable to compute levels");
// don't draw the color bar
levelsLegend->SetColorBar(0);
}
}
......
......@@ -881,12 +881,15 @@ PyFilledBoundaryAttributes_SetLogging(bool val)
FilledBoundaryAttributesEnableLogging = val;
}
// ****************************************************************************
// Modifications:
// Kathleen Bonnell, Fri Jul 18 13:49:42 PDT 2003
// Make defaultAtts point to the passed atts directly.
//
// ****************************************************************************
void
PyFilledBoundaryAttributes_SetDefaults(const FilledBoundaryAttributes *atts)
{
if(defaultAtts)
delete defaultAtts;
defaultAtts = new FilledBoundaryAttributes(*atts);
defaultAtts = const_cast<FilledBoundaryAttributes*>(atts);
}
......@@ -30,6 +30,8 @@
// Note: taken almost verbatim from the Subset plot
//
// Modifications:
// Eric Brugger, Wed Jul 16 10:29:53 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
......@@ -39,7 +41,9 @@ avtFilledBoundaryPlot::avtFilledBoundaryPlot()
levelsLegend = new avtLevelsLegend();
levelsLegend->SetTitle("Filled Boundary");
// there is no 'range' per se, so turn off range visibility.
levelsLegend->SetRange(0);
levelsLegend->SetVarRangeVisibility(0);
// Tell the legend to draw top-to-bottom (default is bottom-to-top).
levelsLegend->SetReverseOrder(true);
avtLUT = new avtLookupTable();
......@@ -516,6 +520,8 @@ avtFilledBoundaryPlot::CustomizeBehavior(void)
// Note: taken almost verbatim from the Subset plot
//
// Modifications:
// Eric Brugger, Wed Jul 16 10:29:53 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
......@@ -530,18 +536,13 @@ avtFilledBoundaryPlot::SetColors()
if (labels.size() == 0)
{
levelsLegend->SetColorBar(0);
levelsLegend->SetTitle("Filled Boundary");
levelsLegend->SetMessage("No Subsets Present");
levelsLegend->SetColorBarVisibility(0);
levelsLegend->SetMessage("No subsets present");
}
else
{
//
// If a messages was previously set, the title needs to
// be reset so that the message disappears.
//
levelsLegend->SetTitle("Filled Boundary");
levelsLegend->SetColorBar(1);
levelsLegend->SetColorBarVisibility(1);
levelsLegend->SetMessage(NULL);
}
if (atts.GetColorType() == FilledBoundaryAttributes::ColorBySingleColor)
......
......@@ -66,6 +66,9 @@
// Jeremy Meredith, Tue Dec 10 10:00:34 PST 2002
// Added poly data smooth filter.
//
// Eric Brugger, Wed Jul 16 10:57:44 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
avtMeshPlot::avtMeshPlot()
......@@ -107,11 +110,14 @@ avtMeshPlot::avtMeshPlot()
vtkLookupTable *lut = vtkLookupTable::New();
varLegend->SetLookupTable(lut);
lut->Delete();
varLegend->SetColorBarVisibility(0);
varLegend->SetVarRangeVisibility(0);
bgColor[0] = bgColor[1] = bgColor[2] = 1.0; // white
fgColor[0] = fgColor[1] = fgColor[2] = 0.0; // black
wireframeRenderingIsInappropriate = false;
//
// This is to allow the legend to be reference counted so the behavior can
// still access it after the plot is deleted. The legend cannot be
......@@ -353,7 +359,6 @@ avtMeshPlot::SetMeshColor(const double *col)
}
// ****************************************************************************
// Method: avtMeshPlot::SetOpaqueColor
//
......@@ -721,7 +726,6 @@ avtMeshPlot::ApplyRenderingTransformation(avtDataObject_p input)
}
// ****************************************************************************
// Method: avtMeshPlot::CustomizeBehavior
//
......@@ -746,6 +750,9 @@ avtMeshPlot::ApplyRenderingTransformation(avtDataObject_p input)
// I moved the calls to SetMeshColor, SetOpaqueColor and SetLegend from
// here to SetAtts, since that is the appropriate place for them.
//
// Eric Brugger, Wed Jul 16 10:57:44 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
void
......@@ -753,12 +760,6 @@ avtMeshPlot::CustomizeBehavior(void)
{
renderer->SetProperty(property);
//
// don't need a color bar for mesh plot legends, so turn it off
//
varLegend->SetColorBar(0);
behavior->SetLegend(varLegendRefPtr);
behavior->SetShiftFactor(0.5);
}
......
......@@ -37,13 +37,16 @@
// Hank Childs, Sun Jun 23 12:22:58 PDT 2002
// Initialize glyphPoints.
//
// Eric Brugger, Wed Jul 16 11:09:02 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
avtPseudocolorPlot::avtPseudocolorPlot()
{
varMapper = new avtVariableMapper;
varLegend = new avtVariableLegend;
varLegend->SetTitle("Pseudocolor Plot");
varLegend->SetTitle("Pseudocolor");
colorsInitialized = false;
......
......@@ -19,6 +19,8 @@
// Creation: Fri Oct 4 15:22:57 PST 2002
//
// Modifications:
// Eric Brugger, Wed Jul 16 11:14:52 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
......@@ -33,7 +35,7 @@ avtStreamlinePlot::avtStreamlinePlot()
varMapper->SetLookupTable(avtLUT->GetLookupTable());
varLegend = new avtVariableLegend;
varLegend->SetTitle("Streamline Plot");
varLegend->SetTitle("Streamline");
//
// This is to allow the legend to be reference counted so the behavior can
......
......@@ -38,6 +38,9 @@
// Kathleen Bonnell, Mon May 19 13:46:55 PDT 2003
// Tell the legend to draw in top-to-bottom order (ReverseOrder).
//
// Eric Brugger, Wed Jul 16 11:17:28 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
avtSubsetPlot::avtSubsetPlot()
......@@ -46,7 +49,7 @@ avtSubsetPlot::avtSubsetPlot()
levelsLegend = new avtLevelsLegend();
levelsLegend->SetTitle("Subset");
// there is no 'range' per se, so turn off range visibility.
levelsLegend->SetRange(0);
levelsLegend->SetVarRangeVisibility(0);
// Tell the legend to draw top-to-bottom (default is bottom-to-top).
levelsLegend->SetReverseOrder(true);
......@@ -595,6 +598,9 @@ avtSubsetPlot::CustomizeBehavior(void)
// Brad Whitlock, Fri Apr 25 12:44:29 PDT 2003
// I made it throw an InvalidColortableException.
//
// Eric Brugger, Wed Jul 16 11:17:28 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
void
......@@ -608,18 +614,13 @@ avtSubsetPlot::SetColors()
if (labels.size() == 0)
{
levelsLegend->SetColorBar(0);
levelsLegend->SetTitle("Subset");
levelsLegend->SetMessage("No Subsets Present");
levelsLegend->SetColorBarVisibility(0);
levelsLegend->SetMessage("No subsets present");
}
else
{
//
// If a messages was previously set, the title needs to
// be reset so that the message disappears.
//
levelsLegend->SetTitle("Subset");
levelsLegend->SetColorBar(1);
levelsLegend->SetColorBarVisibility(1);
levelsLegend->SetMessage(NULL);
}
if (atts.GetColorType() == SubsetAttributes::ColorBySingleColor)
......
......@@ -46,6 +46,9 @@
// Hank Childs, Thu Sep 12 14:01:37 PDT 2002
// Initialize filter.
//
// Eric Brugger, Wed Jul 16 11:22:08 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
avtSurfacePlot::avtSurfacePlot()
......@@ -59,7 +62,7 @@ avtSurfacePlot::avtSurfacePlot()
property = vtkProperty::New();
varLegend = new avtVariableLegend;
varLegend->SetTitle("Surface Plot");
varLegend->SetTitle("Surface");
colorsInitialized = false;
......@@ -742,6 +745,9 @@ avtSurfacePlot::SetSurfaceAttributes(bool useScalars)
// Kathleen Bonnell, Wed May 29 13:40:22 PDT 2002
// Always allow user-specified min/max.
//
// Eric Brugger, Wed Jul 16 11:22:08 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
void
......@@ -805,7 +811,7 @@ avtSurfacePlot::SetLimitsMode(int mode)
if (!atts.GetColorByZFlag())
{
varLegend->SetColorBar(0);
varLegend->SetColorBarVisibility(0);
char msg[250];
SNPRINTF(msg, 250, "Z-min: %# -9.4g\nZ-max: %# -9.4g",
origMin, origMax);
......@@ -817,7 +823,7 @@ avtSurfacePlot::SetLimitsMode(int mode)
// Make sure we render the color bar, in case we turned it off
// previously.
//
varLegend->SetColorBar(1);
varLegend->SetColorBarVisibility(1);
varLegend->SetMessage(NULL);
}
}
......
......@@ -23,6 +23,10 @@
// Programmer: haddox1 -- generated by xml2info
// Creation: Fri Jun 27 09:00:35 PDT 2003
//
// Modifications:
// Eric Brugger, Wed Jul 16 11:27:41 PDT 2003
// Modified to work with the new way legends are managed.
//
// ****************************************************************************
avtTopologyPlot::avtTopologyPlot()
......@@ -33,7 +37,9 @@ avtTopologyPlot::avtTopologyPlot()
levelsLegend = new avtLevelsLegend();
levelsLegend->SetTitle("Topology");
// there is no 'range' per se, so turn off range visibility.
levelsLegend->SetRange(0);
levelsLegend->SetVarRangeVisibility(0);
levelsLegend->SetColorBarVisibility(1);
avtLUT = new avtLookupTable();