VTK
dox/Charts/Core/vtkChartParallelCoordinates.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkChartParallelCoordinates.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 
00026 #ifndef __vtkChartParallelCoordinates_h
00027 #define __vtkChartParallelCoordinates_h
00028 
00029 #include "vtkChartsCoreModule.h" // For export macro
00030 #include "vtkChart.h"
00031 
00032 class vtkIdTypeArray;
00033 class vtkStdString;
00034 class vtkStringArray;
00035 class vtkPlotParallelCoordinates;
00036 
00037 class VTKCHARTSCORE_EXPORT vtkChartParallelCoordinates : public vtkChart
00038 {
00039 public:
00040   vtkTypeMacro(vtkChartParallelCoordinates, vtkChart);
00041   virtual void PrintSelf(ostream &os, vtkIndent indent);
00042 
00044   static vtkChartParallelCoordinates* New();
00045 
00049   virtual void Update();
00050 
00053   virtual bool Paint(vtkContext2D *painter);
00054 
00056   void SetColumnVisibility(const vtkStdString& name, bool visible);
00057 
00060   void SetColumnVisibilityAll(bool visible);
00061 
00063   bool GetColumnVisibility(const vtkStdString& name);
00064 
00066 
00067   vtkGetObjectMacro(VisibleColumns, vtkStringArray);
00069 
00072   virtual vtkPlot* GetPlot(vtkIdType index);
00073 
00075   virtual vtkIdType GetNumberOfPlots();
00076 
00078   virtual vtkAxis* GetAxis(int axisIndex);
00079 
00081   virtual vtkIdType GetNumberOfAxes();
00082 
00086   virtual void RecalculateBounds();
00087 
00090   virtual void SetPlot(vtkPlotParallelCoordinates *plot);
00091 
00092 //BTX
00094   virtual bool Hit(const vtkContextMouseEvent &mouse);
00095 
00097   virtual bool MouseEnterEvent(const vtkContextMouseEvent &mouse);
00098 
00100   virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse);
00101 
00103   virtual bool MouseLeaveEvent(const vtkContextMouseEvent &mouse);
00104 
00106   virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse);
00107 
00109   virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse);
00110 
00112 
00114   virtual bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta);
00115 //ETX
00117 
00118 //BTX
00119 protected:
00120   vtkChartParallelCoordinates();
00121   ~vtkChartParallelCoordinates();
00122 
00124 
00125   class Private;
00126   Private *Storage;
00128 
00129   bool GeometryValid;
00130 
00132   vtkIdTypeArray *Selection;
00133 
00135   vtkStringArray *VisibleColumns;
00136 
00138   vtkTimeStamp BuildTime;
00139 
00140   void ResetSelection();
00141   void UpdateGeometry();
00142   void CalculatePlotTransform();
00143   void SwapAxes(int a1, int a2);
00144 
00145 private:
00146   vtkChartParallelCoordinates(const vtkChartParallelCoordinates &); // Not implemented.
00147   void operator=(const vtkChartParallelCoordinates &);   // Not implemented.
00148 //ETX
00149 };
00150 
00151 #endif //__vtkChartParallelCoordinates_h