VTK
dox/Charts/Core/vtkPlotParallelCoordinates.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPlotParallelCoordinates.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 
00024 #ifndef __vtkPlotParallelCoordinates_h
00025 #define __vtkPlotParallelCoordinates_h
00026 
00027 #include "vtkChartsCoreModule.h" // For export macro
00028 #include "vtkPlot.h"
00029 #include "vtkScalarsToColors.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
00030 #include "vtkStdString.h"       // For vtkStdString ivars
00031 
00032 class vtkChartParallelCoordinates;
00033 class vtkTable;
00034 class vtkStdString;
00035 class vtkScalarsToColors;
00036 class vtkUnsignedCharArray;
00037 
00038 class VTKCHARTSCORE_EXPORT vtkPlotParallelCoordinates : public vtkPlot
00039 {
00040 public:
00041   vtkTypeMacro(vtkPlotParallelCoordinates, vtkPlot);
00042   virtual void PrintSelf(ostream &os, vtkIndent indent);
00043 
00045   static vtkPlotParallelCoordinates* New();
00046 
00050   virtual void Update();
00051 
00054   virtual bool Paint(vtkContext2D *painter);
00055 
00057 
00062   virtual bool PaintLegend(vtkContext2D *painter, const vtkRectf& rect,
00063                            int legendIndex);
00065 
00067   virtual void GetBounds(double bounds[4]);
00068 
00071   bool SetSelectionRange(int Axis, float low, float high);
00072 
00074   bool ResetSelectionRange();
00075 
00077 
00078   virtual void SetInputData(vtkTable *table);
00079   virtual void SetInputData(vtkTable *table, const vtkStdString&,
00080                             const vtkStdString&)
00081   {
00082     this->SetInputData(table);
00083   }
00085 
00087 
00088   void SetLookupTable(vtkScalarsToColors *lut);
00089   vtkScalarsToColors *GetLookupTable();
00091 
00094   virtual void CreateDefaultLookupTable();
00095 
00097 
00099   vtkSetMacro(ScalarVisibility,int);
00100   vtkGetMacro(ScalarVisibility,int);
00101   vtkBooleanMacro(ScalarVisibility,int);
00103 
00105 
00108   void SelectColorArray(vtkIdType arrayNum);
00109   void SelectColorArray(const vtkStdString &arrayName);
00111 
00113   vtkStdString GetColorArrayName();
00114 
00115 //BTX
00116 protected:
00117   vtkPlotParallelCoordinates();
00118   ~vtkPlotParallelCoordinates();
00119 
00121   bool UpdateTableCache(vtkTable *table);
00122 
00124 
00125   class Private;
00126   Private* Storage;
00128 
00130   vtkTimeStamp BuildTime;
00131 
00133 
00134   vtkScalarsToColors *LookupTable;
00135   vtkUnsignedCharArray *Colors;
00136   int ScalarVisibility;
00137   vtkStdString ColorArrayName;
00139 
00140 private:
00141   vtkPlotParallelCoordinates(const vtkPlotParallelCoordinates &); // Not implemented.
00142   void operator=(const vtkPlotParallelCoordinates &); // Not implemented.
00143 
00144 //ETX
00145 };
00146 
00147 #endif //__vtkPlotParallelCoordinates_h