VTK
vtkParallelCoordinatesActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkParallelCoordinatesActor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
62 #ifndef __vtkParallelCoordinatesActor_h
63 #define __vtkParallelCoordinatesActor_h
64 
65 #include "vtkRenderingAnnotationModule.h" // For export macro
66 #include "vtkActor2D.h"
67 
68 class vtkAlgorithmOutput;
69 class vtkAxisActor2D;
70 class vtkDataObject;
71 class vtkPolyData;
73 class vtkTextMapper;
74 class vtkTextProperty;
75 class vtkParallelCoordinatesActorConnection;
76 
77 #define VTK_IV_COLUMN 0
78 #define VTK_IV_ROW 1
79 
80 class VTKRENDERINGANNOTATION_EXPORT vtkParallelCoordinatesActor : public vtkActor2D
81 {
82 public:
84  void PrintSelf(ostream& os, vtkIndent indent);
85 
90 
92 
95  vtkSetClampMacro(IndependentVariables,int,VTK_IV_COLUMN, VTK_IV_ROW);
96  vtkGetMacro(IndependentVariables,int);
97  void SetIndependentVariablesToColumns()
98  {this->SetIndependentVariables(VTK_IV_COLUMN);};
99  void SetIndependentVariablesToRows()
100  {this->SetIndependentVariables(VTK_IV_ROW);};
102 
104 
105  vtkSetStringMacro(Title);
106  vtkGetStringMacro(Title);
108 
110 
113  vtkSetClampMacro(NumberOfLabels, int, 0, 50);
114  vtkGetMacro(NumberOfLabels, int);
116 
118 
119  vtkSetStringMacro(LabelFormat);
120  vtkGetStringMacro(LabelFormat);
122 
124 
125  virtual void SetTitleTextProperty(vtkTextProperty *p);
126  vtkGetObjectMacro(TitleTextProperty,vtkTextProperty);
128 
130 
131  virtual void SetLabelTextProperty(vtkTextProperty *p);
132  vtkGetObjectMacro(LabelTextProperty,vtkTextProperty);
134 
136 
141 
143  virtual int HasTranslucentPolygonalGeometry();
144 
147  virtual void SetInputConnection(vtkAlgorithmOutput*);
148 
151  virtual void SetInputData(vtkDataObject*);
152 
154  vtkDataObject* GetInput();
155 
160 
161 protected:
164 
165 private:
166 
167  vtkParallelCoordinatesActorConnection* ConnectionHolder;
168 
169  int IndependentVariables; // Use column or row
170  vtkIdType N; // The number of independent variables
171  double *Mins; // Minimum data value along this row/column
172  double *Maxs; // Maximum data value along this row/column
173  int *Xs; // Axes x-values (in viewport coordinates)
174  int YMin; // Axes y-min-value (in viewport coordinates)
175  int YMax; // Axes y-max-value (in viewport coordinates)
176  int NumberOfLabels; // Along each axis
177  char *LabelFormat;
178  char *Title;
179 
180  vtkAxisActor2D **Axes;
181  vtkTextMapper *TitleMapper;
182  vtkActor2D *TitleActor;
183 
184  vtkTextProperty *TitleTextProperty;
185  vtkTextProperty *LabelTextProperty;
186 
187  vtkPolyData *PlotData; // The lines drawn within the axes
188  vtkPolyDataMapper2D *PlotMapper;
189  vtkActor2D *PlotActor;
190 
192 
193  int LastPosition[2];
194  int LastPosition2[2];
195 
196  void Initialize();
197  int PlaceAxes(vtkViewport *viewport, int *size);
198 
199 private:
200  vtkParallelCoordinatesActor(const vtkParallelCoordinatesActor&); // Not implemented.
201  void operator=(const vtkParallelCoordinatesActor&); // Not implemented.
202 };
203 
204 
205 #endif
206