VTK
vtkChartXY.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkChartXY.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 
32 #ifndef vtkChartXY_h
33 #define vtkChartXY_h
34 
35 #include "vtkChartsCoreModule.h" // For export macro
36 #include "vtkChart.h"
37 #include "vtkSmartPointer.h" // For SP ivars
38 #include "vtkVector.h" // For vtkVector2f in struct
39 #include "vtkContextPolygon.h" // For vtkContextPolygon
40 
41 class vtkPlot;
42 class vtkAxis;
43 class vtkPlotGrid;
44 class vtkChartLegend;
45 class vtkTooltipItem;
46 class vtkChartXYPrivate; // Private class to keep my STL vector in...
47 
49 {
50 public:
52  virtual void PrintSelf(ostream &os, vtkIndent indent);
53 
55  static vtkChartXY *New();
56 
60  virtual void Update();
61 
64  virtual bool Paint(vtkContext2D *painter);
65 
67  virtual vtkPlot * AddPlot(int type);
68 
70  virtual vtkIdType AddPlot(vtkPlot* plot);
71 
74  virtual bool RemovePlot(vtkIdType index);
75 
77  virtual void ClearPlots();
78 
82 
86 
90 
94  virtual vtkIdType StackPlotAbove(vtkPlot* plot, vtkPlot* under);
95 
99 
103  virtual vtkIdType StackPlotUnder(vtkPlot* plot, vtkPlot* above);
104 
107 
109  int GetPlotCorner(vtkPlot *plot);
110 
112  void SetPlotCorner(vtkPlot *plot, int corner);
113 
117  virtual vtkAxis* GetAxis(int axisIndex);
118 
120  virtual void SetShowLegend(bool visible);
121 
124 
126  virtual void SetTooltip(vtkTooltipItem *tooltip);
127 
130 
133 
137  virtual void RecalculateBounds();
138 
144  virtual void SetSelectionMethod(int method);
145 
147 
148  vtkSetMacro(DrawAxesAtOrigin, bool);
149  vtkGetMacro(DrawAxesAtOrigin, bool);
150  vtkBooleanMacro(DrawAxesAtOrigin, bool);
152 
154 
156  vtkSetMacro(AutoAxes, bool);
157  vtkGetMacro(AutoAxes, bool);
158  vtkBooleanMacro(AutoAxes, bool);
160 
162 
163  vtkSetMacro(HiddenAxisBorder, int);
164  vtkGetMacro(HiddenAxisBorder, int);
166 
168 
171  vtkSetMacro(ForceAxesToBounds, bool);
172  vtkGetMacro(ForceAxesToBounds, bool);
173  vtkBooleanMacro(ForceAxesToBounds, bool);
175 
177 
183  vtkSetMacro(BarWidthFraction, float);
184  vtkGetMacro(BarWidthFraction, float);
186 
188 
189  virtual void SetTooltipInfo(const vtkContextMouseEvent &,
190  const vtkVector2d &,
191  vtkIdType, vtkPlot*,
192  vtkIdType segmentIndex = -1);
194 
195 //BTX
197  virtual bool Hit(const vtkContextMouseEvent &mouse);
198 
200  virtual bool MouseEnterEvent(const vtkContextMouseEvent &mouse);
201 
203  virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse);
204 
206  virtual bool MouseLeaveEvent(const vtkContextMouseEvent &mouse);
207 
209  virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse);
210 
212  virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse);
213 
216  virtual bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta);
217 
219 
220  virtual bool KeyPressEvent(const vtkContextKeyEvent &key);
221 //ETX
223 
224 //BTX
225 protected:
228 
231 
235 
239  virtual bool UpdateLayout(vtkContext2D* painter);
240 
244  virtual int GetLegendBorder(vtkContext2D* painter, int axisPosition);
245 
248  virtual void SetLegendPosition(const vtkRectf& rect);
249 
252 
256 
259 
262 
264  bool DrawBox;
265 
269 
272 
275 
280 
282  bool AutoAxes;
283 
286 
290 
294 
299 
300 private:
301  vtkChartXY(const vtkChartXY &); // Not implemented.
302  void operator=(const vtkChartXY &); // Not implemented.
303 
304  vtkChartXYPrivate *ChartPrivate; // Private class where I hide my STL containers
305 
308  void CalculateBarPlots();
309 
311 
314  bool LocatePointInPlots(const vtkContextMouseEvent &mouse,
315  int invokeEvent = -1);
317 
318  int LocatePointInPlot(const vtkVector2f &position,
319  const vtkVector2f &tolerance, vtkVector2f &plotPos,
320  vtkPlot *plot, vtkIdType &segmentIndex);
321 
323  bool RemovePlotFromCorners(vtkPlot *plot);
324 
325  void ZoomInAxes(vtkAxis *x, vtkAxis *y, float *orign, float *max);
326 
328 
329  void TransformBoxOrPolygon(bool polygonMode, vtkTransform2D *transform,
330  const vtkVector2f &mousePosition,
331  vtkVector2f &min, vtkVector2f &max,
332  vtkContextPolygon &polygon);
334 
335 //ETX
336 };
337 
339 
343 {
347  int Index;
348 };
350 
351 #endif //vtkChartXY_h
vtkChart
Factory class for drawing 2D charts.
Definition: vtkChart.h:50
vtkChartsCoreModule.h
vtkChartXY::MouseBox
vtkRectf MouseBox
Definition: vtkChartXY.h:261
vtkChartXY::AddPlot
virtual vtkIdType AddPlot(vtkPlot *plot)
vtkContextPolygon.h
vtkContextMouseEvent
data structure to represent mouse events.
Definition: vtkContextMouseEvent.h:40
vtkChartXY::GetPlotIndex
virtual vtkIdType GetPlotIndex(vtkPlot *)
vtkContextKeyEvent
data structure to represent key events.
Definition: vtkContextKeyEvent.h:34
vtkChartXY::GetLegend
virtual vtkChartLegend * GetLegend()
vtkChartXY::StackPlotAbove
virtual vtkIdType StackPlotAbove(vtkPlot *plot, vtkPlot *under)
vtkChartXY::Legend
vtkSmartPointer< vtkChartLegend > Legend
Definition: vtkChartXY.h:251
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkChartXY::MouseButtonPressEvent
virtual bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse)
vtkChartPlotData
Definition: vtkChartXY.h:343
vtkChartXY::RaisePlot
vtkIdType RaisePlot(vtkPlot *plot)
vtkTransform2D
describes linear transformations via a 3x3 matrix
Definition: vtkTransform2D.h:47
vtkX3D::key
@ key
Definition: vtkX3D.h:257
vtkChartLegend
draw the chart legend
Definition: vtkChartLegend.h:42
vtkChart.h
vtkChartXY::GetNumberOfAxes
virtual vtkIdType GetNumberOfAxes()
vtkChartXY::~vtkChartXY
~vtkChartXY()
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkChartXY::GetAxis
virtual vtkAxis * GetAxis(int axisIndex)
vtkChartPlotData::SeriesName
vtkStdString SeriesName
Definition: vtkChartXY.h:344
vtkChartXY::Hit
virtual bool Hit(const vtkContextMouseEvent &mouse)
vtkChartXY::Tooltip
vtkSmartPointer< vtkTooltipItem > Tooltip
Definition: vtkChartXY.h:255
vtkSmartPointer< vtkChartLegend >
vtkChartXY::RemovePlot
virtual bool RemovePlot(vtkIdType index)
vtkVector.h
vtkChartXY::GetNumberOfPlots
virtual vtkIdType GetNumberOfPlots()
vtkChartXY::SetLegendPosition
virtual void SetLegendPosition(const vtkRectf &rect)
vtkgl::x
GLint GLint GLint GLint GLint x
Definition: vtkgl.h:11318
vtkChartXY::LowerPlot
vtkIdType LowerPlot(vtkPlot *plot)
vtkTooltipItem
takes care of drawing 2D axes
Definition: vtkTooltipItem.h:39
vtkChartXY::LayoutChanged
bool LayoutChanged
Definition: vtkChartXY.h:293
vtkChartXY::ClearPlots
virtual void ClearPlots()
vtkContext2D
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:57
vtkPlot
Abstract class for 2D plots.
Definition: vtkPlot.h:52
vtkChartXY::AutoAxes
bool AutoAxes
Definition: vtkChartXY.h:282
vtkChartXY::BarWidthFraction
float BarWidthFraction
Definition: vtkChartXY.h:289
vtkChartXY::DrawNearestPoint
bool DrawNearestPoint
Definition: vtkChartXY.h:274
vtkChartXY::RecalculateBounds
virtual void RecalculateBounds()
max
#define max(a, b)
Definition: vtkX3DExporterFIWriterHelper.h:30
vtkVector2d
Definition: vtkVector.h:287
vtkX3D::position
@ position
Definition: vtkX3D.h:261
vtkChartXY::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkChartXY::MouseMoveEvent
virtual bool MouseMoveEvent(const vtkContextMouseEvent &mouse)
vtkChartXY::DrawAxesAtOrigin
bool DrawAxesAtOrigin
Definition: vtkChartXY.h:279
vtkChartXY::RecalculatePlotBounds
void RecalculatePlotBounds()
vtkChartXY::New
static vtkChartXY * New()
vtkChartXY::GetPlot
virtual vtkPlot * GetPlot(vtkIdType index)
vtkChartXY::MouseWheelEvent
virtual bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta)
vtkPlotGrid
takes care of drawing the plot grid
Definition: vtkPlotGrid.h:38
vtkChartXY::Paint
virtual bool Paint(vtkContext2D *painter)
vtkChartXY::ForceAxesToBounds
bool ForceAxesToBounds
Definition: vtkChartXY.h:298
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkChartXY::PlotTransformValid
bool PlotTransformValid
Definition: vtkChartXY.h:258
vtkChartXY::GetTooltip
virtual vtkTooltipItem * GetTooltip()
vtkChartXY::RecalculatePlotTransforms
void RecalculatePlotTransforms()
vtkSmartPointer.h
vtkChartXY::Update
virtual void Update()
vtkContextPolygon
Definition: vtkContextPolygon.h:27
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkChartXY::KeyPressEvent
virtual bool KeyPressEvent(const vtkContextKeyEvent &key)
vtkChartXY::GetLegendBorder
virtual int GetLegendBorder(vtkContext2D *painter, int axisPosition)
vtkChartPlotData::ScreenPosition
vtkVector2i ScreenPosition
Definition: vtkChartXY.h:346
vtkChartXY::SetSelectionMethod
virtual void SetSelectionMethod(int method)
vtkChartXY::HiddenAxisBorder
int HiddenAxisBorder
Definition: vtkChartXY.h:285
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkgl::y
GLint GLint GLint GLint GLint GLint y
Definition: vtkgl.h:11318
vtkAxis
takes care of drawing 2D axes
Definition: vtkAxis.h:71
vtkChartXY::SetTooltipInfo
virtual void SetTooltipInfo(const vtkContextMouseEvent &, const vtkVector2d &, vtkIdType, vtkPlot *, vtkIdType segmentIndex=-1)
vtkChartPlotData::Position
vtkVector2f Position
Definition: vtkChartXY.h:345
vtkChartXY::SelectionPolygon
vtkContextPolygon SelectionPolygon
Definition: vtkChartXY.h:268
vtkChartXY::UpdateLayout
virtual bool UpdateLayout(vtkContext2D *painter)
vtkChartXY::MouseLeaveEvent
virtual bool MouseLeaveEvent(const vtkContextMouseEvent &mouse)
vtkVector2i
Definition: vtkVector.h:266
vtkChartPlotData::Index
int Index
Definition: vtkChartXY.h:347
vtkChartXY
Factory class for drawing XY charts.
Definition: vtkChartXY.h:49
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:48
VTKCHARTSCORE_EXPORT
#define VTKCHARTSCORE_EXPORT
Definition: vtkChartsCoreModule.h:15
vtkgl::transform
GLuint GLenum GLenum transform
Definition: vtkgl.h:16451
vtkChartXY::GetPlotCorner
int GetPlotCorner(vtkPlot *plot)
vtkChartXY::DrawSelectionPolygon
bool DrawSelectionPolygon
Definition: vtkChartXY.h:271
vtkChartXY::DrawBox
bool DrawBox
Definition: vtkChartXY.h:264
vtkgl::type
GLuint GLuint GLsizei GLenum type
Definition: vtkgl.h:11315
vtkChartXY::MouseEnterEvent
virtual bool MouseEnterEvent(const vtkContextMouseEvent &mouse)
vtkRectf
Definition: vtkRect.h:97
vtkChartXY::AddPlot
virtual vtkPlot * AddPlot(int type)
vtkVector2f
Definition: vtkVector.h:277
vtkChartXY::StackPlotUnder
virtual vtkIdType StackPlotUnder(vtkPlot *plot, vtkPlot *above)
vtkChartXY::SetPlotCorner
void SetPlotCorner(vtkPlot *plot, int corner)
vtkChartXY::vtkChartXY
vtkChartXY()
vtkChartXY::MouseButtonReleaseEvent
virtual bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse)
vtkChartXY::SetShowLegend
virtual void SetShowLegend(bool visible)
vtkChartXY::SetTooltip
virtual void SetTooltip(vtkTooltipItem *tooltip)