VTK
vtkScatterPlotMatrix.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkScatterPlotMatrix.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 
28 #ifndef vtkScatterPlotMatrix_h
29 #define vtkScatterPlotMatrix_h
30 
31 #include "vtkChartsCoreModule.h" // For export macro
32 #include "vtkChartMatrix.h"
33 #include "vtkSmartPointer.h" // For ivars
34 #include "vtkNew.h" // For ivars
35 #include "vtkColor.h" // For member function return
36 #include "vtkStdString.h" // For ivars
37 
38 class vtkStringArray;
39 class vtkTable;
40 class vtkAxis;
41 class vtkAnnotationLink;
42 class vtkTextProperty;
43 class vtkTooltipItem;
45 
47 {
48 public:
49  enum {
53  NOPLOT
54  };
55 
57  virtual void PrintSelf(ostream &os, vtkIndent indent);
58 
61 
64  virtual void Update();
65 
67  virtual bool Paint(vtkContext2D *painter);
68 
69  virtual void SetScene(vtkContextScene *scene);
70 
74  virtual bool SetActivePlot(const vtkVector2i& position);
75 
78 
82 
86  virtual void SetInput(vtkTable *table);
87 
89  void SetColumnVisibility(const vtkStdString& name, bool visible);
90 
94 
97 
100  void SetColumnVisibilityAll(bool visible);
101 
104 
107  virtual void SetVisibleColumns(vtkStringArray* visColumns);
108 
111  virtual void SetNumberOfBins(int numberOfBins);
112 
115  virtual int GetNumberOfBins() const { return this->NumberOfBins; }
116 
118  void SetPlotColor(int plotType, const vtkColor4ub& color);
119 
121  void SetPlotMarkerStyle(int plotType, int style);
122 
124  void SetPlotMarkerSize(int plotType, float size);
125 
127  bool Hit(const vtkContextMouseEvent &mouse);
128 
131 
134 
137 
139 
141  int GetPlotType(const vtkVector2i &pos);
142  int GetPlotType(int row, int column);
144 
146 
150 
152 
157 
159 
162  void SetGridVisibility(int plotType, bool visible);
163  bool GetGridVisibility(int plotType);
165 
167 
169  void SetBackgroundColor(int plotType, const vtkColor4ub& color);
172 
174 
176  void SetAxisColor(int plotType, const vtkColor4ub& color);
177  vtkColor4ub GetAxisColor(int plotType);
179 
181 
183  void SetGridColor(int plotType, const vtkColor4ub& color);
184  vtkColor4ub GetGridColor(int plotType);
186 
188 
191  void SetAxisLabelVisibility(int plotType, bool visible);
192  bool GetAxisLabelVisibility(int plotType);
194 
196 
199  void SetAxisLabelProperties(int plotType, vtkTextProperty *prop);
202 
204 
206  void SetAxisLabelNotation(int plotType, int notation);
207  int GetAxisLabelNotation(int plotType);
209 
211 
213  void SetAxisLabelPrecision(int plotType, int precision);
214  int GetAxisLabelPrecision(int plotType);
216 
218 
220  void SetTooltipNotation(int plotType, int notation);
221  void SetTooltipPrecision(int plotType, int precision);
222  int GetTooltipNotation(int plotType);
223  int GetTooltipPrecision(int plotType);
225 
228  void SetTooltip(vtkTooltipItem *tooltip);
229 
233 
236 
239 
241 
245 
247 
251 
254 
256  void UpdateChartSettings(int plotType);
257 
259 
263  virtual void SetSelectionMode(int);
264  vtkGetMacro(SelectionMode, int);
266 
269 
272 
275  void SetNumberOfFrames(int frames);
276 
280 
283 
287  bool AddAnimationPath(const vtkVector2i &move);
288 
291 
294 
297 
300  virtual void AdvanceAnimation();
301 
303  virtual vtkChart * GetMainChart();
304 
305 protected:
308 
311  void UpdateLayout();
312 
314 
317  void AxisRangeForwarderCallback(vtkObject*, unsigned long, void*);
319 
322  void BigChartSelectionCallback(vtkObject*, unsigned long, void*);
323 
326  virtual void UpdateAnimationPath(const vtkVector2i& newActivePos);
327 
330  virtual void StartAnimation(vtkRenderWindowInteractor* interactor);
331 
333 
334  static void ProcessEvents(vtkObject *caller, unsigned long event,
335  void *clientData, void *callerData);
337 
338  // The position of the active plot (defaults to 0, 1).
340 
341  // Weakly owned input data for the scatter plot matrix.
343 
344  // Strongly owned internal data for the column visibility.
346 
347  // The number of bins in the histograms.
349 
350  // The title of the scatter plot matrix.
353 
354  // The mode when the chart is doing selection.
356 
357  // How many frames should animations consist of, 0 means no transitions.
359 
360 private:
361  vtkScatterPlotMatrix(const vtkScatterPlotMatrix &); // Not implemented.
362  void operator=(const vtkScatterPlotMatrix &); // Not implemented.
363 
364  class PIMPL;
365  PIMPL *Private;
366  friend class PIMPL;
367 
368  // Go through the process of calculating axis ranges, etc...
369  void UpdateAxes();
370  void ApplyAxisSetting(vtkChart *chart, const vtkStdString &x,
371  const vtkStdString &y);
372 };
373 
374 #endif //vtkScatterPlotMatrix_h
vtkChart
Factory class for drawing 2D charts.
Definition: vtkChart.h:50
vtkChartsCoreModule.h
vtkStdString.h
vtkScatterPlotMatrix::SetIndexedLabels
void SetIndexedLabels(vtkStringArray *labels)
vtkScatterPlotMatrix::SetInput
virtual void SetInput(vtkTable *table)
vtkContextMouseEvent
data structure to represent mouse events.
Definition: vtkContextMouseEvent.h:40
vtkScatterPlotMatrix::GetActivePlot
virtual vtkVector2i GetActivePlot()
vtkScatterPlotMatrix::GetColumnVisibility
bool GetColumnVisibility(const vtkStdString &name)
vtkScatterPlotMatrix::GetTooltip
vtkTooltipItem * GetTooltip() const
vtkScatterPlotMatrix::Paint
virtual bool Paint(vtkContext2D *painter)
vtkScatterPlotMatrix::HISTOGRAM
@ HISTOGRAM
Definition: vtkScatterPlotMatrix.h:51
vtkScatterPlotMatrix::UpdateChartSettings
void UpdateChartSettings(int plotType)
vtkScatterPlotMatrix::GetGridVisibility
bool GetGridVisibility(int plotType)
vtkScatterPlotMatrix::GetAxisLabelVisibility
bool GetAxisLabelVisibility(int plotType)
vtkScatterPlotMatrix::New
static vtkScatterPlotMatrix * New()
vtkScatterPlotMatrix::SetSelectionMode
virtual void SetSelectionMode(int)
vtkScatterPlotMatrix::SetScatterPlotSelectedRowColumnColor
void SetScatterPlotSelectedRowColumnColor(const vtkColor4ub &color)
vtkScatterPlotMatrix::SetTitleProperties
void SetTitleProperties(vtkTextProperty *prop)
vtkScatterPlotMatrix::SetColumnVisibility
void SetColumnVisibility(const vtkStdString &name, bool visible)
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkScatterPlotMatrix::Title
vtkStdString Title
Definition: vtkScatterPlotMatrix.h:351
vtkScatterPlotMatrix::MouseButtonPressEvent
bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse)
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
vtkScatterPlotMatrix::SetScene
virtual void SetScene(vtkContextScene *scene)
vtkScatterPlotMatrix::ClearAnimationPath
void ClearAnimationPath()
vtkScatterPlotMatrix::SetAxisLabelVisibility
void SetAxisLabelVisibility(int plotType, bool visible)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkScatterPlotMatrix::SCATTERPLOT
@ SCATTERPLOT
Definition: vtkScatterPlotMatrix.h:50
vtkX3D::style
@ style
Definition: vtkX3D.h:492
vtkChartMatrix
container for a matrix of charts.
Definition: vtkChartMatrix.h:38
vtkScatterPlotMatrix::UpdateLayout
void UpdateLayout()
vtkSmartPointer< vtkTable >
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkChartMatrix.h
vtkScatterPlotMatrix::SetBackgroundColor
void SetBackgroundColor(int plotType, const vtkColor4ub &color)
vtkgl::x
GLint GLint GLint GLint GLint x
Definition: vtkgl.h:11318
vtkScatterPlotMatrix::GetScatterPlotSelectedActiveColor
vtkColor4ub GetScatterPlotSelectedActiveColor()
vtkTooltipItem
takes care of drawing 2D axes
Definition: vtkTooltipItem.h:39
vtkScatterPlotMatrix::GetNumberOfFrames
int GetNumberOfFrames()
vtkScatterPlotMatrix::UpdateSettings
void UpdateSettings()
vtkScatterPlotMatrix::SelectionMode
int SelectionMode
Definition: vtkScatterPlotMatrix.h:355
vtkScatterPlotMatrix::VisibleColumns
vtkNew< vtkStringArray > VisibleColumns
Definition: vtkScatterPlotMatrix.h:345
vtkgl::table
GLenum GLsizei GLenum GLenum const GLvoid * table
Definition: vtkgl.h:11332
vtkContext2D
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:57
vtkScatterPlotMatrix::AddAnimationPath
bool AddAnimationPath(const vtkVector2i &move)
vtkScatterPlotMatrix::SetGridColor
void SetGridColor(int plotType, const vtkColor4ub &color)
vtkScatterPlotMatrix::GetScatterPlotSelectedRowColumnColor
vtkColor4ub GetScatterPlotSelectedRowColumnColor()
vtkScatterPlotMatrix::GetIndexedLabels
vtkStringArray * GetIndexedLabels() const
vtkScatterPlotMatrix::GetMainChart
virtual vtkChart * GetMainChart()
vtkScatterPlotMatrix::AdvanceAnimation
virtual void AdvanceAnimation()
vtkgl::event
struct _cl_event * event
Definition: vtkgl.h:14387
vtkScatterPlotMatrix::SetPlotColor
void SetPlotColor(int plotType, const vtkColor4ub &color)
vtkScatterPlotMatrix::vtkScatterPlotMatrix
vtkScatterPlotMatrix()
vtkChartMatrix::Private
PIMPL * Private
Definition: vtkChartMatrix.h:121
vtkScatterPlotMatrix::SetNumberOfFrames
void SetNumberOfFrames(int frames)
vtkgl::precision
GLenum GLint GLint * precision
Definition: vtkgl.h:14180
vtkScatterPlotMatrix::GetVisibleColumns
virtual vtkStringArray * GetVisibleColumns()
vtkScatterPlotMatrix::GetNumberOfAnimationPathElements
vtkIdType GetNumberOfAnimationPathElements()
vtkScatterPlotMatrix::SetTooltipNotation
void SetTooltipNotation(int plotType, int notation)
vtkScatterPlotMatrix::TitleProperties
vtkSmartPointer< vtkTextProperty > TitleProperties
Definition: vtkScatterPlotMatrix.h:352
vtkScatterPlotMatrix::Hit
bool Hit(const vtkContextMouseEvent &mouse)
vtkScatterPlotMatrix::SetAxisColor
void SetAxisColor(int plotType, const vtkColor4ub &color)
vtkScatterPlotMatrix::GetAxisColor
vtkColor4ub GetAxisColor(int plotType)
vtkX3D::position
@ position
Definition: vtkX3D.h:261
vtkScatterPlotMatrix::BigChartSelectionCallback
void BigChartSelectionCallback(vtkObject *, unsigned long, void *)
vtkScatterPlotMatrix::SetTooltip
void SetTooltip(vtkTooltipItem *tooltip)
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkX3D::title
@ title
Definition: vtkX3D.h:500
vtkContextScene
Provides a 2D scene for vtkContextItem objects.
Definition: vtkContextScene.h:50
vtkScatterPlotMatrix::~vtkScatterPlotMatrix
~vtkScatterPlotMatrix()
vtkScatterPlotMatrix::GetAxisLabelNotation
int GetAxisLabelNotation(int plotType)
vtkScatterPlotMatrix::ProcessEvents
static void ProcessEvents(vtkObject *caller, unsigned long event, void *clientData, void *callerData)
vtkScatterPlotMatrix::GetTooltipPrecision
int GetTooltipPrecision(int plotType)
vtkScatterPlotMatrix::NumberOfFrames
int NumberOfFrames
Definition: vtkScatterPlotMatrix.h:358
vtkScatterPlotMatrix::SetPlotMarkerStyle
void SetPlotMarkerStyle(int plotType, int style)
vtkColor.h
vtkScatterPlotMatrix::BeginAnimationPath
bool BeginAnimationPath(vtkRenderWindowInteractor *interactor)
vtkgl::column
GLenum GLenum GLvoid GLvoid * column
Definition: vtkgl.h:11352
vtkScatterPlotMatrix::SetColumnVisibilityAll
void SetColumnVisibilityAll(bool visible)
vtkScatterPlotMatrix::Update
virtual void Update()
vtkgl::row
GLenum GLenum GLvoid * row
Definition: vtkgl.h:11352
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkScatterPlotMatrix::SetAxisLabelPrecision
void SetAxisLabelPrecision(int plotType, int precision)
vtkScatterPlotMatrix::GetPlotType
int GetPlotType(int row, int column)
vtkScatterPlotMatrix::GetTitle
vtkStdString GetTitle()
vtkScatterPlotMatrix::SetScatterPlotSelectedActiveColor
void SetScatterPlotSelectedActiveColor(const vtkColor4ub &color)
vtkScatterPlotMatrix::SetGridVisibility
void SetGridVisibility(int plotType, bool visible)
vtkScatterPlotMatrix::SetNumberOfBins
virtual void SetNumberOfBins(int numberOfBins)
vtkScatterPlotMatrix::SetActivePlot
virtual bool SetActivePlot(const vtkVector2i &position)
vtkSmartPointer.h
vtkNew< vtkStringArray >
vtkScatterPlotMatrix::AxisRangeForwarderCallback
void AxisRangeForwarderCallback(vtkObject *, unsigned long, void *)
vtkScatterPlotMatrix::GetGridColor
vtkColor4ub GetGridColor(int plotType)
vtkScatterPlotMatrix
container for a matrix of charts.
Definition: vtkScatterPlotMatrix.h:47
vtkScatterPlotMatrix::GetColumnName
vtkStdString GetColumnName(int column)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkScatterPlotMatrix::SetTooltipPrecision
void SetTooltipPrecision(int plotType, int precision)
vtkScatterPlotMatrix::NumberOfBins
int NumberOfBins
Definition: vtkScatterPlotMatrix.h:348
vtkScatterPlotMatrix::MouseMoveEvent
bool MouseMoveEvent(const vtkContextMouseEvent &mouse)
vtkScatterPlotMatrix::StartAnimation
virtual void StartAnimation(vtkRenderWindowInteractor *interactor)
vtkgl::color
GLuint color
Definition: vtkgl.h:12351
vtkRenderWindowInteractor
platform-independent render window interaction including picking and frame rate control.
Definition: vtkRenderWindowInteractor.h:80
vtkScatterPlotMatrix::SetTitle
void SetTitle(const vtkStdString &title)
vtkScatterPlotMatrix::GetAxisLabelProperties
vtkTextProperty * GetAxisLabelProperties(int plotType)
vtkScatterPlotMatrix::Input
vtkSmartPointer< vtkTable > Input
Definition: vtkScatterPlotMatrix.h:342
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:39
vtkScatterPlotMatrix::GetAnnotationLink
vtkAnnotationLink * GetAnnotationLink()
vtkScatterPlotMatrix::GetTitleProperties
vtkTextProperty * GetTitleProperties()
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkScatterPlotMatrix::GetTooltipNotation
int GetTooltipNotation(int plotType)
vtkgl::y
GLint GLint GLint GLint GLint GLint y
Definition: vtkgl.h:11318
vtkNew.h
vtkAxis
takes care of drawing 2D axes
Definition: vtkAxis.h:71
vtkScatterPlotMatrix::GetBackgroundColor
vtkColor4ub GetBackgroundColor(int plotType)
vtkColor4ub
Definition: vtkColor.h:209
vtkScatterPlotMatrix::GetNumberOfBins
virtual int GetNumberOfBins() const
Definition: vtkScatterPlotMatrix.h:115
vtkScatterPlotMatrix::SetVisibleColumns
virtual void SetVisibleColumns(vtkStringArray *visColumns)
vtkScatterPlotMatrix::ACTIVEPLOT
@ ACTIVEPLOT
Definition: vtkScatterPlotMatrix.h:52
vtkScatterPlotMatrix::GetPlotType
int GetPlotType(const vtkVector2i &pos)
vtkScatterPlotMatrix::GetRowName
vtkStdString GetRowName(int row)
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:45
vtkScatterPlotMatrix::SetPlotMarkerSize
void SetPlotMarkerSize(int plotType, float size)
vtkScatterPlotMatrix::UpdateAnimationPath
virtual void UpdateAnimationPath(const vtkVector2i &newActivePos)
vtkScatterPlotMatrix::SetAxisLabelNotation
void SetAxisLabelNotation(int plotType, int notation)
vtkVector2i
Definition: vtkVector.h:266
vtkScatterPlotMatrix::GetAnimationPathElement
vtkVector2i GetAnimationPathElement(vtkIdType i)
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:48
VTKCHARTSCORE_EXPORT
#define VTKCHARTSCORE_EXPORT
Definition: vtkChartsCoreModule.h:15
vtkScatterPlotMatrix::MouseButtonReleaseEvent
bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse)
vtkScatterPlotMatrix::AttachAxisRangeListener
void AttachAxisRangeListener(vtkAxis *)
vtkScatterPlotMatrix::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkScatterPlotMatrix::GetAxisLabelPrecision
int GetAxisLabelPrecision(int plotType)
vtkScatterPlotMatrix::ActivePlot
vtkVector2i ActivePlot
Definition: vtkScatterPlotMatrix.h:339
vtkScatterPlotMatrix::InsertVisibleColumn
void InsertVisibleColumn(const vtkStdString &name, int index)
vtkgl::size
GLsizeiptr size
Definition: vtkgl.h:11843
vtkScatterPlotMatrix::SetAxisLabelProperties
void SetAxisLabelProperties(int plotType, vtkTextProperty *prop)