VTK  9.1.0
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 =========================================================================*/
60 #ifndef vtkParallelCoordinatesActor_h
61 #define vtkParallelCoordinatesActor_h
62 
63 #include "vtkActor2D.h"
64 #include "vtkRenderingAnnotationModule.h" // For export macro
65 
66 class vtkAlgorithmOutput;
67 class vtkAxisActor2D;
68 class vtkDataObject;
69 class vtkPolyData;
71 class vtkTextMapper;
72 class vtkTextProperty;
73 class vtkParallelCoordinatesActorConnection;
74 
75 #define VTK_IV_COLUMN 0
76 #define VTK_IV_ROW 1
77 
78 class VTKRENDERINGANNOTATION_EXPORT vtkParallelCoordinatesActor : public vtkActor2D
79 {
80 public:
82  void PrintSelf(ostream& os, vtkIndent indent) override;
83 
91 
93 
98  vtkSetClampMacro(IndependentVariables, int, VTK_IV_COLUMN, VTK_IV_ROW);
99  vtkGetMacro(IndependentVariables, int);
100  void SetIndependentVariablesToColumns() { this->SetIndependentVariables(VTK_IV_COLUMN); }
101  void SetIndependentVariablesToRows() { this->SetIndependentVariables(VTK_IV_ROW); }
103 
105 
108  vtkSetStringMacro(Title);
109  vtkGetStringMacro(Title);
111 
113 
118  vtkSetClampMacro(NumberOfLabels, int, 0, 50);
119  vtkGetMacro(NumberOfLabels, int);
121 
123 
126  vtkSetStringMacro(LabelFormat);
127  vtkGetStringMacro(LabelFormat);
129 
131 
135  vtkGetObjectMacro(TitleTextProperty, vtkTextProperty);
137 
139 
143  vtkGetObjectMacro(LabelTextProperty, vtkTextProperty);
145 
147 
151  int RenderOverlay(vtkViewport*) override;
152  int RenderTranslucentPolygonalGeometry(vtkViewport*) override { return 0; }
154 
159 
165 
170  virtual void SetInputData(vtkDataObject*);
171 
176 
183 
184 protected:
187 
188 private:
189  vtkParallelCoordinatesActorConnection* ConnectionHolder;
190 
191  int IndependentVariables; // Use column or row
192  vtkIdType N; // The number of independent variables
193  double* Mins; // Minimum data value along this row/column
194  double* Maxs; // Maximum data value along this row/column
195  int* Xs; // Axes x-values (in viewport coordinates)
196  int YMin; // Axes y-min-value (in viewport coordinates)
197  int YMax; // Axes y-max-value (in viewport coordinates)
198  int NumberOfLabels; // Along each axis
199  char* LabelFormat;
200  char* Title;
201 
202  vtkAxisActor2D** Axes;
203  vtkTextMapper* TitleMapper;
204  vtkActor2D* TitleActor;
205 
206  vtkTextProperty* TitleTextProperty;
207  vtkTextProperty* LabelTextProperty;
208 
209  vtkPolyData* PlotData; // The lines drawn within the axes
210  vtkPolyDataMapper2D* PlotMapper;
211  vtkActor2D* PlotActor;
212 
213  vtkTimeStamp BuildTime;
214 
215  int LastPosition[2];
216  int LastPosition2[2];
217 
218  void Initialize();
219  int PlaceAxes(vtkViewport* viewport, const int* size);
220 
221 private:
223  void operator=(const vtkParallelCoordinatesActor&) = delete;
224 };
225 
226 #endif
a actor that draws 2D data
Definition: vtkActor2D.h:40
Proxy object to connect input/output ports.
Create an axis with tick marks and labels.
general representation of visualization data
Definition: vtkDataObject.h:60
a simple class to control print indentation
Definition: vtkIndent.h:34
create parallel coordinate display from input field
vtkDataObject * GetInput()
Remove a dataset from the list of data to append.
static vtkParallelCoordinatesActor * New()
Instantiate object with autorange computation; the number of labels set to 5 for the x and y axes; a ...
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
virtual void SetLabelTextProperty(vtkTextProperty *p)
Set/Get the labels text property.
virtual void SetInputConnection(vtkAlgorithmOutput *)
Set the input to the parallel coordinates actor.
~vtkParallelCoordinatesActor() override
virtual void SetTitleTextProperty(vtkTextProperty *p)
Set/Get the title text property.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
int RenderOverlay(vtkViewport *) override
Draw the parallel coordinates plot.
virtual void SetInputData(vtkDataObject *)
Set the input to the parallel coordinates actor.
void SetIndependentVariablesToRows()
Specify whether to use the rows or columns as independent variables.
void SetIndependentVariablesToColumns()
Specify whether to use the rows or columns as independent variables.
int RenderOpaqueGeometry(vtkViewport *) override
Draw the parallel coordinates plot.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Draw the parallel coordinates plot.
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
2D text annotation
Definition: vtkTextMapper.h:48
represent text properties.
record modification and/or execution time
Definition: vtkTimeStamp.h:33
abstract specification for Viewports
Definition: vtkViewport.h:47
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
@ size
Definition: vtkX3D.h:259
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_IV_ROW
#define VTK_IV_COLUMN
int vtkIdType
Definition: vtkType.h:332