VTK  9.4.20241016
vtkPlotBar.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
3
35#ifndef vtkPlotBar_h
36#define vtkPlotBar_h
37
38#include "vtkChartsCoreModule.h" // For export macro
39#include "vtkPlot.h"
40#include "vtkSmartPointer.h" // Needed to hold ColorSeries
41#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
42
43VTK_ABI_NAMESPACE_BEGIN
44class vtkContext2D;
45class vtkTable;
46class vtkPoints2D;
47class vtkStdString;
48class vtkColorSeries;
51
52class vtkPlotBarPrivate;
53
54class VTKCHARTSCORE_EXPORT VTK_MARSHALAUTO vtkPlotBar : public vtkPlot
55{
56public:
57 vtkTypeMacro(vtkPlotBar, vtkPlot);
58 void PrintSelf(ostream& os, vtkIndent indent) override;
59
63 enum
64 {
65 VERTICAL = 0,
66 HORIZONTAL
67 };
68
72 static vtkPlotBar* New();
73
77 bool Paint(vtkContext2D* painter) override;
78
85 bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex) override;
86
90 void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) override;
91
93
96 void SetColorF(double r, double g, double b, double a) override;
97 void SetColorF(double r, double g, double b) override;
98
99 VTK_DEPRECATED_IN_9_3_0("Please use unambiguous SetColorF method instead.")
100 void SetColor(double r, double g, double b) override { this->SetColorF(r, g, b); }
102
104
107 void GetColorF(double rgb[3]) override;
108
109 VTK_DEPRECATED_IN_9_3_0("Please use unambiguous GetColorF method instead.")
110 void GetColor(double rgb[3]) override { this->GetColorF(rgb); }
112
114
117 void SetWidth(float _arg) override
118 {
119 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting Width to " << _arg);
120 if (this->Width != _arg)
121 {
122 this->Width = _arg;
123 this->Modified();
124 }
125 }
127
129
132 float GetWidth() override
133 {
134 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning Width of "
135 << this->Width);
136 return this->Width;
137 }
139
141
147 vtkSetMacro(Offset, float);
148 vtkGetMacro(Offset, float);
150
152
156 virtual void SetOrientation(int orientation);
157 vtkGetMacro(Orientation, int);
159
163 virtual void GetBounds(double bounds[4], bool unscaled);
164
168 void GetBounds(double bounds[4]) override;
169
173 void GetUnscaledInputBounds(double bounds[4]) override;
174
178 void SetInputArray(int index, const vtkStdString& name) override;
179
183 void SetColorSeries(vtkColorSeries* colorSeries);
184
189
191
197
203
205
208 vtkSetMacro(ScalarVisibility, bool);
209 vtkGetMacro(ScalarVisibility, bool);
210 vtkBooleanMacro(ScalarVisibility, bool);
212
214
217 vtkSetMacro(EnableOpacityMapping, bool);
218 vtkGetMacro(EnableOpacityMapping, bool);
219 vtkBooleanMacro(EnableOpacityMapping, bool);
221
223
229 void SelectColorArray(const vtkStdString& arrayName);
231
236
241
245 virtual void SetGroupName(const vtkStdString& name);
246
251
257 const vtkVector2d& plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex) override;
258
262 bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
263
272 vtkIdType* segmentIndex) override;
274
279
283 void GetDataBounds(double bounds[2]);
284
291 bool UpdateCache() override;
292
293protected:
295 ~vtkPlotBar() override;
296
300 bool CacheRequiresUpdate() override;
301
306
307 float Width;
308 float Offset;
309
311
316
318
327
328 bool LogX;
329 bool LogY;
330
331private:
332 vtkPlotBar(const vtkPlotBar&) = delete;
333 void operator=(const vtkPlotBar&) = delete;
334
335 vtkPlotBarPrivate* Private;
336};
337
338VTK_ABI_NAMESPACE_END
339#endif // vtkPlotBar_h
stores a list of colors.
Class for drawing 2D primitives to a graphical context.
a simple class to control print indentation
Definition vtkIndent.h:108
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:55
virtual void SetLookupTable(vtkScalarsToColors *lut)
Specify a lookup table for the mapper to use.
float Width
Definition vtkPlotBar.h:307
int Orientation
Definition vtkPlotBar.h:310
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 with integer values (comprised between 0 and 255)
vtkSmartPointer< vtkScalarsToColors > LookupTable
Lookup Table for coloring bars by scalar value.
Definition vtkPlotBar.h:321
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:322
void GetColorF(double rgb[3]) override
Get the plot color as floating rgb values (comprised between 0.0 and 1.0)
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:132
bool UpdateCache() override
Update the internal cache.
bool ScalarVisibility
Lookup Table for coloring bars by scalar value.
Definition vtkPlotBar.h:323
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:325
void SetColorF(double r, double g, double b, double a) override
Set the plot color with floating values (comprised between 0.0 and 1.0)
virtual void GetBounds(double bounds[4], bool unscaled)
A helper used by both GetUnscaledBounds and GetBounds(double[4]).
void SetColorF(double r, double g, double b) override
Set the plot color with floating values (comprised between 0.0 and 1.0)
~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:305
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:324
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:315
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float Offset
Definition vtkPlotBar.h:308
bool CacheRequiresUpdate() override
Test if the internal cache requires an update.
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:117
Abstract class for 2D plots.
Definition vtkPlot.h:154
virtual void SetColorF(double r, double g, double b, double a)
Set the plot color with floating values (comprised between 0.0 and 1.0)
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.
virtual void GetColorF(double rgb[3])
Get the plot color as floating rgb values (comprised between 0.0 and 1.0)
represent and manipulate 2D points
Definition vtkPoints2D.h:27
Superclass for mapping scalar values to colors.
Hold a reference to a vtkObjectBase instance.
Wrapper around std::string to keep symbols short.
a vtkAbstractArray subclass for strings
A table, which contains similar-typed columns of data.
Definition vtkTable.h:169
dynamic, self-adjusting array of unsigned char
#define VTK_DEPRECATED_IN_9_3_0(reason)
int vtkIdType
Definition vtkType.h:315
#define VTK_MARSHALAUTO
#define max(a, b)