VTK  9.2.6
vtkPlotBar.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkPlotBar.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 vtkPlotBar_h
29#define vtkPlotBar_h
30
31#include "vtkChartsCoreModule.h" // For export macro
32#include "vtkPlot.h"
33#include "vtkSmartPointer.h" // Needed to hold ColorSeries
34
35class vtkContext2D;
36class vtkTable;
37class vtkPoints2D;
38class vtkStdString;
39class vtkColorSeries;
42
43class vtkPlotBarPrivate;
44
45class VTKCHARTSCORE_EXPORT vtkPlotBar : public vtkPlot
46{
47public:
48 vtkTypeMacro(vtkPlotBar, vtkPlot);
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
54 enum
55 {
56 VERTICAL = 0,
57 HORIZONTAL
58 };
59
63 static vtkPlotBar* New();
64
68 bool Paint(vtkContext2D* painter) override;
69
76 bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex) override;
77
79
82 void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) override;
83 void SetColor(double r, double g, double b) override;
84 void GetColor(double rgb[3]) override;
86
88
91 void SetWidth(float _arg) override
92 {
93 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting Width to " << _arg);
94 if (this->Width != _arg)
95 {
96 this->Width = _arg;
97 this->Modified();
98 }
99 }
101
103
106 float GetWidth() override
107 {
108 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning Width of "
109 << this->Width);
110 return this->Width;
111 }
113
115
121 vtkSetMacro(Offset, float);
122 vtkGetMacro(Offset, float);
124
126
130 virtual void SetOrientation(int orientation);
131 vtkGetMacro(Orientation, int);
133
137 virtual void GetBounds(double bounds[4], bool unscaled);
138
142 void GetBounds(double bounds[4]) override;
143
147 void GetUnscaledInputBounds(double bounds[4]) override;
148
152 void SetInputArray(int index, const vtkStdString& name) override;
153
157 void SetColorSeries(vtkColorSeries* colorSeries);
158
163
165
171
177
179
182 vtkSetMacro(ScalarVisibility, bool);
183 vtkGetMacro(ScalarVisibility, bool);
184 vtkBooleanMacro(ScalarVisibility, bool);
186
188
191 vtkSetMacro(EnableOpacityMapping, bool);
192 vtkGetMacro(EnableOpacityMapping, bool);
193 vtkBooleanMacro(EnableOpacityMapping, bool);
195
197
203 void SelectColorArray(const vtkStdString& arrayName);
205
210
215
219 virtual void SetGroupName(const vtkStdString& name);
220
225
231 const vtkVector2d& plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex) override;
232
236 bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
237
246 vtkIdType* segmentIndex) override;
248
253
257 void GetDataBounds(double bounds[2]);
258
265 bool UpdateCache() override;
266
267protected:
269 ~vtkPlotBar() override;
270
274 virtual bool CacheRequiresUpdate() override;
275
280
281 float Width;
282 float Offset;
283
285
290
292
301
302 bool LogX;
303 bool LogY;
304
305private:
306 vtkPlotBar(const vtkPlotBar&) = delete;
307 void operator=(const vtkPlotBar&) = delete;
308
309 vtkPlotBarPrivate* Private;
310};
311
312#endif // vtkPlotBar_h
stores a list of colors.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:58
a simple class to control print indentation
Definition: vtkIndent.h:40
const char * GetClassName() const
Return the class name as a string.
virtual void Modified()
Update the modification time for this object.
Class for drawing an XY plot given two columns from a vtkTable.
Definition: vtkPlotBar.h:46
virtual void SetLookupTable(vtkScalarsToColors *lut)
Specify a lookup table for the mapper to use.
float Width
Definition: vtkPlotBar.h:281
int Orientation
Definition: vtkPlotBar.h:284
vtkStringArray * GetLabels() override
Get the plot labels.
vtkStdString GetTooltipLabel(const vtkVector2d &plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex) override
Generate and return the tooltip label string for this plot The segmentIndex is implemented here.
void GetUnscaledInputBounds(double bounds[4]) override
Get un-log-scaled bounds for this mapper as (Xmin,Xmax,Ymin,Ymax).
int GetBarsCount()
Get amount of plotted bars.
void GetBounds(double bounds[4]) override
Get the bounds for this mapper as (Xmin,Xmax,Ymin,Ymax).
static vtkPlotBar * New()
Creates a 2D Chart object.
void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) override
Set the plot color.
void SetColor(double r, double g, double b) override
Set the plot color.
vtkSmartPointer< vtkScalarsToColors > LookupTable
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:295
virtual bool CacheRequiresUpdate() override
Test if the internal cache requires an update.
void SelectColorArray(vtkIdType arrayNum)
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which array to use f...
vtkSmartPointer< vtkUnsignedCharArray > Colors
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:296
virtual vtkScalarsToColors * GetLookupTable()
Specify a lookup table for the mapper to use.
vtkStdString GetColorArrayName()
Get the array name to color by.
vtkColorSeries * GetColorSeries()
Get the color series used if when this is a stacked bar plot.
virtual void SetGroupName(const vtkStdString &name)
Set the group name of the bar chart - can be displayed on the X axis.
float GetWidth() override
Get the width of the line.
Definition: vtkPlotBar.h:106
bool UpdateCache() override
Update the internal cache.
bool ScalarVisibility
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:297
void SetInputArray(int index, const vtkStdString &name) override
When used to set additional arrays, stacked bars are created.
vtkStdString ColorArrayName
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:299
virtual void GetBounds(double bounds[4], bool unscaled)
A helper used by both GetUnscaledBounds and GetBounds(double[4]).
~vtkPlotBar() override
void SetColorSeries(vtkColorSeries *colorSeries)
Set the color series to use if this becomes a stacked bar plot.
vtkPoints2D * Points
Store a well packed set of XY coordinates for this data series.
Definition: vtkPlotBar.h:279
void SelectColorArray(const vtkStdString &arrayName)
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which array to use f...
bool EnableOpacityMapping
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:298
void GetColor(double rgb[3]) override
Set the plot color.
vtkIdType GetNearestPoint(const vtkVector2f &point, const vtkVector2f &, vtkVector2f *location, vtkIdType *segmentIndex) override
Function to query a plot for the nearest point to the specified coordinate.
vtkSmartPointer< vtkColorSeries > ColorSeries
The color series to use if this becomes a stacked bar.
Definition: vtkPlotBar.h:289
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float Offset
Definition: vtkPlotBar.h:282
virtual vtkStdString GetGroupName()
Get the group name of the bar char - can be displayed on the X axis.
bool Paint(vtkContext2D *painter) override
Paint event for the XY plot, called whenever the chart needs to be drawn.
void GetDataBounds(double bounds[2])
Get the data bounds for this mapper as (Xmin,Xmax).
virtual void SetOrientation(int orientation)
Set/get the orientation of the bars.
virtual void CreateDefaultLookupTable()
Create default lookup table.
bool SelectPoints(const vtkVector2f &min, const vtkVector2f &max) override
Select all points in the specified rectangle.
bool PaintLegend(vtkContext2D *painter, const vtkRectf &rect, int legendIndex) override
Paint legend event for the XY plot, called whenever the legend needs the plot items symbol/mark/line ...
void SetWidth(float _arg) override
Set the width of the line.
Definition: vtkPlotBar.h:91
Abstract class for 2D plots.
Definition: vtkPlot.h:54
virtual vtkIdType GetNearestPoint(const vtkVector2f &point, const vtkVector2f &tolerance, vtkVector2f *location, vtkIdType *segmentId)
Function to query a plot for the nearest point to the specified coordinate.
represent and manipulate 2D points
Definition: vtkPoints2D.h:37
Superclass for mapping scalar values to colors.
Hold a reference to a vtkObjectBase instance.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:39
a vtkAbstractArray subclass for strings
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:74
dynamic, self-adjusting array of unsigned char
int vtkIdType
Definition: vtkType.h:332
#define max(a, b)