VTK
vtkParallelCoordinatesRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkParallelCoordinatesRepresentation.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 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2009 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
52 #ifndef vtkParallelCoordinatesRepresentation_h
53 #define vtkParallelCoordinatesRepresentation_h
54 
55 #include "vtkViewsInfovisModule.h" // For export macro
57 
58 class vtkActor;
59 class vtkActor2D;
60 class vtkArrayData;
61 class vtkAxisActor2D;
63 class vtkCollection;
64 class vtkCoordinate;
66 class vtkFieldData;
67 class vtkDataArray;
68 class vtkDataObject;
69 class vtkDoubleArray;
70 class vtkIdList;
71 class vtkIdTypeArray;
72 class vtkIntArray;
73 class vtkLookupTable;
75 class vtkPoints;
76 class vtkPolyData;
78 class vtkPropCollection;
79 class vtkSelection;
80 class vtkSelectionNode;
81 class vtkTextMapper;
82 class vtkTimeStamp;
84 class vtkViewport;
85 class vtkWindow;
86 
88 {
89 public:
92  void PrintSelf(ostream& os, vtkIndent indent);
93 
97  virtual void ApplyViewTheme(vtkViewTheme* theme);
98 
100  virtual const char* GetHoverText(vtkView* view, int x, int y);
101 
103 
104  int SetPositionAndSize(double* position, double* size);
105  int GetPositionAndSize(double* position, double* size);
107 
109 
113 
115  void SetPlotTitle(const char*);
116 
118 
119  vtkGetMacro(NumberOfAxes,int);
121 
123 
124  vtkGetMacro(NumberOfSamples,int);
126 
128 
130  vtkGetMacro(NumberOfAxisLabels,int);
132 
134 
136  virtual int SwapAxisPositions(int position1, int position2);
137  int SetXCoordinateOfPosition(int position, double xcoord);
138  double GetXCoordinateOfPosition(int axis);
140  int GetPositionNearXCoordinate(double xcoord);
142 
144 
145  vtkSetMacro(UseCurves,int);
146  vtkGetMacro(UseCurves,int);
147  vtkBooleanMacro(UseCurves,int);
149 
151 
152  vtkSetMacro(CurveResolution,int);
153  vtkGetMacro(CurveResolution,int);
155 
157 
158  vtkGetMacro(LineOpacity,double)
159  vtkGetMacro(FontSize,double);
160  vtkGetVector3Macro(LineColor,double);
161  vtkGetVector3Macro(AxisColor,double);
162  vtkGetVector3Macro(AxisLabelColor,double);
163  vtkSetMacro(LineOpacity,double);
164  vtkSetMacro(FontSize,double);
165  vtkSetVector3Macro(LineColor,double);
166  vtkSetVector3Macro(AxisColor,double);
167  vtkSetVector3Macro(AxisLabelColor,double);
169 
171 
173  vtkSetMacro(AngleBrushThreshold,double);
174  vtkGetMacro(AngleBrushThreshold,double);
176 
178 
180  vtkSetMacro(FunctionBrushThreshold,double);
181  vtkGetMacro(FunctionBrushThreshold,double);
183 
185 
186  int GetRangeAtPosition(int position, double range[2]);
187  virtual int SetRangeAtPosition(int position, double range[2]);
189 
191  void ResetAxes();
192 
194 
196  virtual void LassoSelect(int brushClass, int brushOperator, vtkPoints* brushPoints);
197  virtual void AngleSelect(int brushClass, int brushOperator, double *p1, double *p2);
198  virtual void FunctionSelect(int brushClass, int brushOperator, double *p1, double *p2, double *q1, double *q2);
199  virtual void RangeSelect(int brushClass, int brushOperator, double *p1, double *p2);
201 
202 //BTX
204  {
205  INPUT_DATA=0,
207  NUM_INPUT_PORTS
208  };
209 //ETX
210 
211 protected:
214 
216 
217  virtual int RequestData(
221 
223 
224  virtual bool AddToView(vtkView* view);
225  virtual bool RemoveFromView(vtkView* view);
226  virtual void PrepareForRendering(vtkRenderView* view);
228 
231  void UpdateHoverHighlight(vtkView* view, int x, int y);
232 
234 
235  virtual int AllocatePolyData(vtkPolyData* polyData,
236  int numLines,
237  int numPointsPerLine,
238  int numStrips,
239  int numPointsPerStrip,
240  int numQuads,
241  int numPoints,
242  int numCellScalars,
243  int numPointScalars);
245 
247  int PlaceAxes();
248 
250 
253  virtual int PlaceLines(vtkPolyData* polyData, vtkTable* data, vtkIdTypeArray* idsToPlot);
254  virtual int PlaceCurves(vtkPolyData* polyData, vtkTable* data, vtkIdTypeArray* idsToPlot);
256 
260  virtual int PlaceSelection(vtkPolyData* polyData, vtkTable* data, vtkSelectionNode* selectionNode);
261 
263  virtual int ComputeDataProperties();
264 
266  virtual int UpdatePlotProperties(vtkStringArray* inputTitles);
267 
269  virtual int ReallocateInternals();
270 
272 
274  int ComputePointPosition(double* p);
275  int ComputeLinePosition(double* p1, double* p2);
277 
279 
281  virtual void SelectRows(vtkIdType brushClass, vtkIdType brushOperator, vtkIdTypeArray* rowIds);
282  virtual vtkSelection* ConvertSelection(vtkView* view, vtkSelection* selection);
283  virtual void BuildInverseSelection();
284  virtual vtkPolyDataMapper2D* InitializePlotMapper(vtkPolyData* input, vtkActor2D* actor, bool forceStandard=false);
286 
290  void BuildDefaultSCurve(vtkDoubleArray* array, int numValues);
291 
294  virtual void LassoSelectInternal(vtkPoints* brushPoints, vtkIdTypeArray* outIds);
295 
297  virtual void UpdateSelectionActors();
298 
301 
302 
303  //BTX
311 
314 
315  class Internals;
316  Internals* I;
317  //ETX
318 
322  double YMin;
323  double YMax;
324 
330 
331  // Indexed by screen position
332  double* Xs;
333  double* Mins;
334  double* Maxs;
335  double* MinOffsets;
336  double* MaxOffsets;
337 
338  //BTX
342  //ETX
343 
345 
346  double LineOpacity;
347  double FontSize;
348  double LineColor[3];
349  double AxisColor[3];
350  double AxisLabelColor[3];
351 
352  vtkGetStringMacro(InternalHoverText);
353  vtkSetStringMacro(InternalHoverText);
355 
356 private:
358  void operator=(const vtkParallelCoordinatesRepresentation&); // Not implemented
359 };
360 
361 #endif
362 
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:39
vtkParallelCoordinatesRepresentation::InitializePlotMapper
virtual vtkPolyDataMapper2D * InitializePlotMapper(vtkPolyData *input, vtkActor2D *actor, bool forceStandard=false)
vtkParallelCoordinatesRepresentation::GetXCoordinateOfPosition
double GetXCoordinateOfPosition(int axis)
vtkParallelCoordinatesRepresentation::NumberOfSamples
int NumberOfSamples
Definition: vtkParallelCoordinatesRepresentation.h:321
vtkParallelCoordinatesRepresentation::BuildDefaultSCurve
void BuildDefaultSCurve(vtkDoubleArray *array, int numValues)
vtkgl::data
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: vtkgl.h:11339
vtkParallelCoordinatesRepresentation
Data representation that takes generic multivariate data and produces a parallel coordinates plot.
Definition: vtkParallelCoordinatesRepresentation.h:88
vtkViewsInfovisModule.h
vtkPolyDataMapper2D
draw vtkPolyData onto the image plane
Definition: vtkPolyDataMapper2D.h:51
vtkParallelCoordinatesRepresentation::GetPositionNearXCoordinate
int GetPositionNearXCoordinate(double xcoord)
vtkRenderView
A view containing a renderer.
Definition: vtkRenderView.h:64
vtkParallelCoordinatesRepresentation::SetAxisTitles
void SetAxisTitles(vtkAlgorithmOutput *)
vtkParallelCoordinatesRepresentation::UseCurves
int UseCurves
Definition: vtkParallelCoordinatesRepresentation.h:326
vtkSelectionNode
A node in a selection tree. Used to store selection results.
Definition: vtkSelectionNode.h:69
vtkParallelCoordinatesRepresentation::InputArrayTable
vtkSmartPointer< vtkTable > InputArrayTable
Definition: vtkParallelCoordinatesRepresentation.h:340
vtkRenderedRepresentation
Definition: vtkRenderedRepresentation.h:42
vtkSetVector3Macro
#define vtkSetVector3Macro(name, type)
Definition: vtkSetGet.h:287
vtkParallelCoordinatesRepresentation::SetAxisTitles
void SetAxisTitles(vtkStringArray *)
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkParallelCoordinatesRepresentation::UpdateSelectionActors
virtual void UpdateSelectionActors()
vtkUnsignedIntArray
dynamic, self-adjusting array of unsigned int
Definition: vtkUnsignedIntArray.h:50
vtkExtractSelectedPolyDataIds
extract a list of cells from a polydata
Definition: vtkExtractSelectedPolyDataIds.h:36
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkParallelCoordinatesRepresentation::INPUT_TITLES
@ INPUT_TITLES
Definition: vtkParallelCoordinatesRepresentation.h:206
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
vtkParallelCoordinatesRepresentation::ComputePointPosition
int ComputePointPosition(double *p)
VTKVIEWSINFOVIS_EXPORT
#define VTKVIEWSINFOVIS_EXPORT
Definition: vtkViewsInfovisModule.h:15
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkParallelCoordinatesRepresentation::YMin
double YMin
Definition: vtkParallelCoordinatesRepresentation.h:322
vtkParallelCoordinatesRepresentation::FontSize
double FontSize
Definition: vtkParallelCoordinatesRepresentation.h:347
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkParallelCoordinatesRepresentation::AxisTitles
vtkSmartPointer< vtkStringArray > AxisTitles
Definition: vtkParallelCoordinatesRepresentation.h:341
vtkParallelCoordinatesRepresentation::MaxOffsets
double * MaxOffsets
Definition: vtkParallelCoordinatesRepresentation.h:336
vtkSmartPointer< vtkPolyData >
vtkParallelCoordinatesRepresentation::SwapAxisPositions
virtual int SwapAxisPositions(int position1, int position2)
vtkgl::x
GLint GLint GLint GLint GLint x
Definition: vtkgl.h:11318
vtkParallelCoordinatesRepresentation::AllocatePolyData
virtual int AllocatePolyData(vtkPolyData *polyData, int numLines, int numPointsPerLine, int numStrips, int numPointsPerStrip, int numQuads, int numPoints, int numCellScalars, int numPointScalars)
vtkParallelCoordinatesRepresentation::GetNumberOfSelections
int GetNumberOfSelections()
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkSelection
A node in a selection tree. Used to store selection results.
Definition: vtkSelection.h:45
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkParallelCoordinatesRepresentation::FunctionTextActor
vtkSmartPointer< vtkActor2D > FunctionTextActor
Definition: vtkParallelCoordinatesRepresentation.h:310
vtkParallelCoordinatesRepresentation::FunctionTextMapper
vtkSmartPointer< vtkTextMapper > FunctionTextMapper
Definition: vtkParallelCoordinatesRepresentation.h:309
vtkgl::range
GLenum GLint * range
Definition: vtkgl.h:14180
vtkArrayData
Pipeline data object that contains multiple vtkArray objects.
Definition: vtkArrayData.h:52
vtkParallelCoordinatesRepresentation::GetXCoordinatesOfPositions
void GetXCoordinatesOfPositions(double *coords)
vtkParallelCoordinatesRepresentation::SetPlotTitle
void SetPlotTitle(const char *)
vtkParallelCoordinatesRepresentation::Xs
double * Xs
Definition: vtkParallelCoordinatesRepresentation.h:332
vtkgl::coords
GLuint coords
Definition: vtkgl.h:13928
vtkParallelCoordinatesRepresentation::SetXCoordinateOfPosition
int SetXCoordinateOfPosition(int position, double xcoord)
vtkParallelCoordinatesRepresentation::LassoSelectInternal
virtual void LassoSelectInternal(vtkPoints *brushPoints, vtkIdTypeArray *outIds)
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkFieldData
represent and manipulate fields of data
Definition: vtkFieldData.h:56
vtkRenderedRepresentation.h
vtkView
The superclass for all views.
Definition: vtkView.h:63
vtkParallelCoordinatesRepresentation::PlotTitleMapper
vtkSmartPointer< vtkTextMapper > PlotTitleMapper
Definition: vtkParallelCoordinatesRepresentation.h:307
vtkParallelCoordinatesRepresentation::PlaceCurves
virtual int PlaceCurves(vtkPolyData *polyData, vtkTable *data, vtkIdTypeArray *idsToPlot)
vtkParallelCoordinatesRepresentation::SelectRows
virtual void SelectRows(vtkIdType brushClass, vtkIdType brushOperator, vtkIdTypeArray *rowIds)
vtkViewTheme
Sets theme colors for a graphical view.
Definition: vtkViewTheme.h:48
vtkParallelCoordinatesRepresentation::LinearThreshold
vtkSmartPointer< vtkBivariateLinearTableThreshold > LinearThreshold
Definition: vtkParallelCoordinatesRepresentation.h:313
vtkX3D::position
@ position
Definition: vtkX3D.h:261
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkParallelCoordinatesRepresentation::ApplyViewTheme
virtual void ApplyViewTheme(vtkViewTheme *theme)
vtkParallelCoordinatesRepresentation::InputPorts
InputPorts
Definition: vtkParallelCoordinatesRepresentation.h:204
vtkParallelCoordinatesRepresentation::PlotMapper
vtkSmartPointer< vtkPolyDataMapper2D > PlotMapper
Definition: vtkParallelCoordinatesRepresentation.h:305
vtkCollection
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:53
vtkParallelCoordinatesRepresentation::MinOffsets
double * MinOffsets
Definition: vtkParallelCoordinatesRepresentation.h:335
vtkGetVector3Macro
#define vtkGetVector3Macro(name, type)
Definition: vtkSetGet.h:304
vtkTextMapper
2D text annotation
Definition: vtkTextMapper.h:53
vtkParallelCoordinatesRepresentation::ReallocateInternals
virtual int ReallocateInternals()
vtkParallelCoordinatesRepresentation::~vtkParallelCoordinatesRepresentation
virtual ~vtkParallelCoordinatesRepresentation()
vtkParallelCoordinatesRepresentation::New
static vtkParallelCoordinatesRepresentation * New()
vtkParallelCoordinatesRepresentation::NumberOfAxes
int NumberOfAxes
Definition: vtkParallelCoordinatesRepresentation.h:319
vtkgl::num
GLuint GLuint num
Definition: vtkgl.h:16907
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
vtkParallelCoordinatesRepresentation::AddToView
virtual bool AddToView(vtkView *view)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkParallelCoordinatesRepresentation::GetSelectionMapper
vtkPolyDataMapper2D * GetSelectionMapper(int idx)
vtkParallelCoordinatesRepresentation::GetHoverText
virtual const char * GetHoverText(vtkView *view, int x, int y)
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:53
vtkBivariateLinearTableThreshold
performs line-based thresholding for vtkTable data.
Definition: vtkBivariateLinearTableThreshold.h:52
vtkParallelCoordinatesRepresentation::ComputeDataProperties
virtual int ComputeDataProperties()
vtkParallelCoordinatesRepresentation::UpdatePlotProperties
virtual int UpdatePlotProperties(vtkStringArray *inputTitles)
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:36
vtkCoordinate
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:70
vtkParallelCoordinatesRepresentation::PlotData
vtkSmartPointer< vtkPolyData > PlotData
Definition: vtkParallelCoordinatesRepresentation.h:304
vtkOutlineCornerSource
create wireframe outline corners around bounding box
Definition: vtkOutlineCornerSource.h:32
vtkParallelCoordinatesRepresentation::PrepareForRendering
virtual void PrepareForRendering(vtkRenderView *view)
vtkParallelCoordinatesRepresentation::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkParallelCoordinatesRepresentation::PlotActor
vtkSmartPointer< vtkActor2D > PlotActor
Definition: vtkParallelCoordinatesRepresentation.h:306
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkParallelCoordinatesRepresentation::RemoveFromView
virtual bool RemoveFromView(vtkView *view)
vtkParallelCoordinatesRepresentation::SetPositionAndSize
int SetPositionAndSize(double *position, double *size)
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkParallelCoordinatesRepresentation::LineOpacity
double LineOpacity
Definition: vtkParallelCoordinatesRepresentation.h:346
vtkParallelCoordinatesRepresentation::PlotTitleActor
vtkSmartPointer< vtkActor2D > PlotTitleActor
Definition: vtkParallelCoordinatesRepresentation.h:308
vtkParallelCoordinatesRepresentation::YMax
double YMax
Definition: vtkParallelCoordinatesRepresentation.h:323
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkParallelCoordinatesRepresentation::InternalHoverText
char * InternalHoverText
Definition: vtkParallelCoordinatesRepresentation.h:353
vtkParallelCoordinatesRepresentation::BuildTime
vtkTimeStamp BuildTime
Definition: vtkParallelCoordinatesRepresentation.h:344
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkParallelCoordinatesRepresentation::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkLookupTable
map scalar values into colors via a lookup table
Definition: vtkLookupTable.h:74
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkParallelCoordinatesRepresentation::GetPositionAndSize
int GetPositionAndSize(double *position, double *size)
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:45
vtkParallelCoordinatesRepresentation::CurveResolution
int CurveResolution
Definition: vtkParallelCoordinatesRepresentation.h:325
vtkParallelCoordinatesRepresentation::SetNumberOfAxisLabels
void SetNumberOfAxisLabels(int num)
vtkParallelCoordinatesRepresentation::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkgl::y
GLint GLint GLint GLint GLint GLint y
Definition: vtkgl.h:11318
vtkParallelCoordinatesRepresentation::Axes
vtkSmartPointer< vtkAxisActor2D > * Axes
Definition: vtkParallelCoordinatesRepresentation.h:339
vtkParallelCoordinatesRepresentation::SwapThreshold
double SwapThreshold
Definition: vtkParallelCoordinatesRepresentation.h:329
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:39
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkAxisActor2D
Create an axis with tick marks and labels.
Definition: vtkAxisActor2D.h:74
vtkParallelCoordinatesRepresentation::FunctionBrushThreshold
double FunctionBrushThreshold
Definition: vtkParallelCoordinatesRepresentation.h:328
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:45
vtkgl::p
GLfloat GLfloat p
Definition: vtkgl.h:15717
vtkParallelCoordinatesRepresentation::BuildInverseSelection
virtual void BuildInverseSelection()
vtkParallelCoordinatesRepresentation::PlaceSelection
virtual int PlaceSelection(vtkPolyData *polyData, vtkTable *data, vtkSelectionNode *selectionNode)
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
vtkParallelCoordinatesRepresentation::PlaceLines
virtual int PlaceLines(vtkPolyData *polyData, vtkTable *data, vtkIdTypeArray *idsToPlot)
vtkParallelCoordinatesRepresentation::Maxs
double * Maxs
Definition: vtkParallelCoordinatesRepresentation.h:334
vtkParallelCoordinatesRepresentation::InverseSelection
vtkSmartPointer< vtkSelection > InverseSelection
Definition: vtkParallelCoordinatesRepresentation.h:312
vtkParallelCoordinatesRepresentation::PlaceAxes
int PlaceAxes()
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkPropCollection
a list of Props
Definition: vtkPropCollection.h:38
vtkParallelCoordinatesRepresentation::NumberOfAxisLabels
int NumberOfAxisLabels
Definition: vtkParallelCoordinatesRepresentation.h:320
vtkParallelCoordinatesRepresentation::I
Internals * I
Definition: vtkParallelCoordinatesRepresentation.h:315
vtkParallelCoordinatesRepresentation::Mins
double * Mins
Definition: vtkParallelCoordinatesRepresentation.h:333
vtkParallelCoordinatesRepresentation::vtkParallelCoordinatesRepresentation
vtkParallelCoordinatesRepresentation()
vtkParallelCoordinatesRepresentation::AngleBrushThreshold
double AngleBrushThreshold
Definition: vtkParallelCoordinatesRepresentation.h:327
vtkParallelCoordinatesRepresentation::ConvertSelection
virtual vtkSelection * ConvertSelection(vtkView *view, vtkSelection *selection)
vtkParallelCoordinatesRepresentation::ComputeLinePosition
int ComputeLinePosition(double *p1, double *p2)
vtkParallelCoordinatesRepresentation::UpdateHoverHighlight
void UpdateHoverHighlight(vtkView *view, int x, int y)
vtkgl::size
GLsizeiptr size
Definition: vtkgl.h:11843