forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvtkChartPie.h
169 lines (133 loc) · 3.95 KB
/
vtkChartPie.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/*=========================================================================
Program: Visualization Toolkit
Module: vtkChartPie.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkChartPie
* @brief Factory class for drawing pie charts
*
*
* This class implements an pie chart.
*/
#ifndef vtkChartPie_h
#define vtkChartPie_h
#include "vtkChartsCoreModule.h" // For export macro
#include "vtkChart.h"
class vtkChartLegend;
class vtkTooltipItem;
class vtkChartPiePrivate;
class VTKCHARTSCORE_EXPORT vtkChartPie : public vtkChart
{
public:
vtkTypeMacro(vtkChartPie, vtkChart);
void PrintSelf(ostream &os, vtkIndent indent) override;
/**
* Creates a 2D Chart object.
*/
static vtkChartPie *New();
/**
* Perform any updates to the item that may be necessary before rendering.
* The scene should take care of calling this on all items before their
* Paint function is invoked.
*/
void Update() override;
/**
* Paint event for the chart, called whenever the chart needs to be drawn
*/
bool Paint(vtkContext2D *painter) override;
/**
* Add a plot to the chart.
*/
vtkPlot * AddPlot(int type) override;
/**
* Add a plot to the chart. Return the index of the plot, -1 if it failed.
*/
vtkIdType AddPlot(vtkPlot* plot) override
{ return Superclass::AddPlot(plot); }
/**
* Get the plot at the specified index, returns null if the index is invalid.
*/
vtkPlot* GetPlot(vtkIdType index) override;
/**
* Get the number of plots the chart contains.
*/
vtkIdType GetNumberOfPlots() override;
/**
* Set whether the chart should draw a legend.
*/
void SetShowLegend(bool visible) override;
/**
* Get the legend for the chart, if available. Can return nullptr if there is no
* legend.
*/
vtkChartLegend * GetLegend() override;
/**
* Set the vtkContextScene for the item, always set for an item in a scene.
*/
void SetScene(vtkContextScene *scene) override;
/**
* Return true if the supplied x, y coordinate is inside the item.
*/
bool Hit(const vtkContextMouseEvent &mouse) override;
/**
* Mouse enter event.
*/
bool MouseEnterEvent(const vtkContextMouseEvent &mouse) override;
/**
* Mouse move event.
*/
bool MouseMoveEvent(const vtkContextMouseEvent &mouse) override;
/**
* Mouse leave event.
*/
bool MouseLeaveEvent(const vtkContextMouseEvent &mouse) override;
/**
* Mouse button down event
*/
bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse) override;
/**
* Mouse button release event.
*/
bool MouseButtonReleaseEvent(const vtkContextMouseEvent &mouse) override;
/**
* Mouse wheel event, positive delta indicates forward movement of the wheel.
*/
bool MouseWheelEvent(const vtkContextMouseEvent &mouse, int delta) override;
protected:
vtkChartPie();
~vtkChartPie() override;
/**
* Recalculate the necessary transforms.
*/
void RecalculatePlotTransforms();
/**
* The legend for the chart.
*/
vtkChartLegend *Legend;
/**
* The tooltip item for the chart - can be used to display extra information.
*/
vtkTooltipItem *Tooltip;
/**
* Does the plot area transform need to be recalculated?
*/
bool PlotTransformValid;
private:
vtkChartPie(const vtkChartPie &) = delete;
void operator=(const vtkChartPie &) = delete;
/**
* Try to locate a point within the plots to display in a tooltip
*/
bool LocatePointInPlots(const vtkContextMouseEvent &mouse);
/**
* Private implementation details
*/
vtkChartPiePrivate *Private;
};
#endif //vtkChartPie_h