VTK  9.3.20240424
vtkParallelCoordinatesView.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2009 Sandia Corporation
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
48#ifndef vtkParallelCoordinatesView_h
49#define vtkParallelCoordinatesView_h
50
51#include "vtkRenderView.h"
52#include "vtkViewsInfovisModule.h" // For export macro
53
54VTK_ABI_NAMESPACE_BEGIN
55class vtkActor2D;
58class vtkPolyData;
60
61class VTKVIEWSINFOVIS_EXPORT vtkParallelCoordinatesView : public vtkRenderView
62{
63public:
66 void PrintSelf(ostream& os, vtkIndent indent) override;
67
68 enum
69 {
70 VTK_BRUSH_LASSO = 0,
74 VTK_BRUSH_MODECOUNT
75 };
76 enum
77 {
78 VTK_BRUSHOPERATOR_ADD = 0,
82 VTK_BRUSHOPERATOR_MODECOUNT
83 };
84 enum
85 {
86 VTK_INSPECT_MANIPULATE_AXES = 0,
88 VTK_INSPECT_MODECOUNT
89 };
90
91 void SetBrushMode(int);
92 void SetBrushModeToLasso() { this->SetBrushMode(VTK_BRUSH_LASSO); }
93 void SetBrushModeToAngle() { this->SetBrushMode(VTK_BRUSH_ANGLE); }
94 void SetBrushModeToFunction() { this->SetBrushMode(VTK_BRUSH_FUNCTION); }
95 void SetBrushModeToAxisThreshold() { this->SetBrushMode(VTK_BRUSH_AXISTHRESHOLD); }
96 vtkGetMacro(BrushMode, int);
97
99 void SetBrushOperatorToAdd() { this->SetBrushOperator(VTK_BRUSHOPERATOR_ADD); }
100 void SetBrushOperatorToSubtract() { this->SetBrushOperator(VTK_BRUSHOPERATOR_SUBTRACT); }
101 void SetBrushOperatorToIntersect() { this->SetBrushOperator(VTK_BRUSHOPERATOR_INTERSECT); }
102 void SetBrushOperatorToReplace() { this->SetBrushOperator(VTK_BRUSHOPERATOR_REPLACE); }
103 vtkGetMacro(BrushOperator, int);
104
105 void SetInspectMode(int);
106 void SetInspectModeToManipulateAxes() { this->SetInspectMode(VTK_INSPECT_MANIPULATE_AXES); }
107 void SetInpsectModeToSelectData() { this->SetInspectMode(VTK_INSPECT_SELECT_DATA); }
108 vtkGetMacro(InspectMode, int);
109
111 vtkGetMacro(MaximumNumberOfBrushPoints, int);
112
113 vtkSetMacro(CurrentBrushClass, int);
114 vtkGetMacro(CurrentBrushClass, int);
115
116 void ApplyViewTheme(vtkViewTheme* theme) override;
117
118protected:
121
123
124 enum
125 {
126 VTK_HIGHLIGHT_CENTER = 0,
128 VTK_HIGHLIGHT_MAX
129 };
133
140
144
147
150
151 void ProcessEvents(vtkObject* caller, unsigned long event, void* callData) override;
153
154 void PrepareForRendering() override;
155
157
160 void Hover(unsigned long event);
161 void ManipulateAxes(unsigned long event);
162 void SelectData(unsigned long event);
163 void Zoom(unsigned long event);
164 void Pan(unsigned long event);
166
171
176
177 int AddLassoBrushPoint(double* p);
178 int SetBrushLine(int line, double* p1, double* p2);
179 void GetBrushLine(int line, vtkIdType& npts, vtkIdType const*& ptids);
180 int SetAngleBrushLine(double* p1, double* p2);
181 int SetFunctionBrushLine1(double* p1, double* p2);
182 int SetFunctionBrushLine2(double* p1, double* p2);
184
185private:
187 void operator=(const vtkParallelCoordinatesView&) = delete;
188};
189
190VTK_ABI_NAMESPACE_END
191#endif
a actor that draws 2D data
Definition vtkActor2D.h:145
Proxy object to connect input/output ports.
The superclass for all representations.
a simple class to control print indentation
Definition vtkIndent.h:108
abstract base class for most VTK objects
Definition vtkObject.h:162
create wireframe outline around bounding box
Data representation that takes generic multivariate data and produces a parallel coordinates plot.
view to be used with vtkParallelCoordinatesRepresentation
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ProcessEvents(vtkObject *caller, unsigned long event, void *callData) override
Called to process events.
vtkSmartPointer< vtkPolyData > BrushData
void Zoom(unsigned long event)
Handle axis manipulation.
vtkSmartPointer< vtkPolyDataMapper2D > HighlightMapper
vtkSmartPointer< vtkPolyDataMapper2D > BrushMapper
~vtkParallelCoordinatesView() override
void SetMaximumNumberOfBrushPoints(int)
int SetFunctionBrushLine1(double *p1, double *p2)
void SelectData(unsigned long event)
Handle axis manipulation.
void Hover(unsigned long event)
Handle axis manipulation.
int SetAxisHighlightPosition(vtkParallelCoordinatesRepresentation *rep, double position)
Set the highlight position using normalized viewport coordinates.
void ApplyViewTheme(vtkViewTheme *theme) override
vtkSmartPointer< vtkActor2D > HighlightActor
void PrepareForRendering() override
Called by the view when the renderer is about to render.
vtkSmartPointer< vtkActor2D > BrushActor
void ManipulateAxes(unsigned long event)
Handle axis manipulation.
int SetAngleBrushLine(double *p1, double *p2)
void GetBrushLine(int line, vtkIdType &npts, vtkIdType const *&ptids)
vtkSmartPointer< vtkOutlineSource > HighlightSource
static vtkParallelCoordinatesView * New()
void Pan(unsigned long event)
Handle axis manipulation.
int SetAxisHighlightPosition(vtkParallelCoordinatesRepresentation *rep, int position)
Set/Get the position of axis highlights.
int SetBrushLine(int line, double *p1, double *p2)
int SetFunctionBrushLine2(double *p1, double *p2)
int AddLassoBrushPoint(double *p)
vtkDataRepresentation * CreateDefaultRepresentation(vtkAlgorithmOutput *conn) override
Create a default vtkDataRepresentation for the given vtkAlgorithmOutput.
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
A view containing a renderer.
Hold a reference to a vtkObjectBase instance.
record modification and/or execution time
Sets theme colors for a graphical view.
int vtkIdType
Definition vtkType.h:315