VTK  9.3.0
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 
25 #ifndef vtkPlotBar_h
26 #define vtkPlotBar_h
27 
28 #include "vtkChartsCoreModule.h" // For export macro
29 #include "vtkPlot.h"
30 #include "vtkSmartPointer.h" // Needed to hold ColorSeries
31 
32 VTK_ABI_NAMESPACE_BEGIN
33 class vtkContext2D;
34 class vtkTable;
35 class vtkPoints2D;
36 class vtkStdString;
37 class vtkColorSeries;
39 class vtkScalarsToColors;
40 
41 class vtkPlotBarPrivate;
42 
43 class VTKCHARTSCORE_EXPORT vtkPlotBar : public vtkPlot
44 {
45 public:
46  vtkTypeMacro(vtkPlotBar, vtkPlot);
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
52  enum
53  {
54  VERTICAL = 0,
55  HORIZONTAL
56  };
57 
61  static vtkPlotBar* New();
62 
66  bool Paint(vtkContext2D* painter) override;
67 
74  bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex) override;
75 
79  void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) override;
80 
82 
85  void SetColorF(double r, double g, double b, double a) override;
86  void SetColorF(double r, double g, double b) override;
87 
88  VTK_DEPRECATED_IN_9_3_0("Please use unambiguous SetColorF method instead.")
89  void SetColor(double r, double g, double b) override { this->SetColorF(r, g, b); };
91 
93 
96  void GetColorF(double rgb[3]) override;
97 
98  VTK_DEPRECATED_IN_9_3_0("Please use unambiguous GetColorF method instead.")
99  void GetColor(double rgb[3]) override { this->GetColorF(rgb); };
101 
103 
106  void SetWidth(float _arg) override
107  {
108  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting Width to " << _arg);
109  if (this->Width != _arg)
110  {
111  this->Width = _arg;
112  this->Modified();
113  }
114  }
116 
118 
121  float GetWidth() override
122  {
123  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning Width of "
124  << this->Width);
125  return this->Width;
126  }
128 
130 
136  vtkSetMacro(Offset, float);
137  vtkGetMacro(Offset, float);
139 
141 
145  virtual void SetOrientation(int orientation);
146  vtkGetMacro(Orientation, int);
148 
152  virtual void GetBounds(double bounds[4], bool unscaled);
153 
157  void GetBounds(double bounds[4]) override;
158 
162  void GetUnscaledInputBounds(double bounds[4]) override;
163 
167  void SetInputArray(int index, const vtkStdString& name) override;
168 
172  void SetColorSeries(vtkColorSeries* colorSeries);
173 
178 
180 
183  virtual void SetLookupTable(vtkScalarsToColors* lut);
186 
191  virtual void CreateDefaultLookupTable();
192 
194 
197  vtkSetMacro(ScalarVisibility, bool);
198  vtkGetMacro(ScalarVisibility, bool);
199  vtkBooleanMacro(ScalarVisibility, bool);
201 
203 
206  vtkSetMacro(EnableOpacityMapping, bool);
207  vtkGetMacro(EnableOpacityMapping, bool);
208  vtkBooleanMacro(EnableOpacityMapping, bool);
210 
212 
217  void SelectColorArray(vtkIdType arrayNum);
218  void SelectColorArray(const vtkStdString& arrayName);
220 
225 
230 
234  virtual void SetGroupName(const vtkStdString& name);
235 
240 
246  const vtkVector2d& plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex) override;
247 
251  bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
252 
261  vtkIdType* segmentIndex) override;
263 
268 
272  void GetDataBounds(double bounds[2]);
273 
280  bool UpdateCache() override;
281 
282 protected:
284  ~vtkPlotBar() override;
285 
289  bool CacheRequiresUpdate() override;
290 
295 
296  float Width;
297  float Offset;
298 
300 
305 
307 
316 
317  bool LogX;
318  bool LogY;
319 
320 private:
321  vtkPlotBar(const vtkPlotBar&) = delete;
322  void operator=(const vtkPlotBar&) = delete;
323 
324  vtkPlotBarPrivate* Private;
325 };
326 
327 VTK_ABI_NAMESPACE_END
328 #endif // vtkPlotBar_h
stores a list of colors.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:59
a simple class to control print indentation
Definition: vtkIndent.h:38
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:44
virtual void SetLookupTable(vtkScalarsToColors *lut)
Specify a lookup table for the mapper to use.
float Width
Definition: vtkPlotBar.h:296
int Orientation
Definition: vtkPlotBar.h:299
static vtkPlotBar * New()
Creates a 2D Chart object.
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).
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:310
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:311
void GetColorF(double rgb[3]) override
Get the plot color as floating rgb values (comprised between 0.0 and 1.0)
vtkStdString GetColorArrayName()
Get the array name to color by.
virtual vtkScalarsToColors * GetLookupTable()
Specify a lookup table for the mapper to use.
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:121
bool UpdateCache() override
Update the internal cache.
bool ScalarVisibility
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:312
void SetInputArray(int index, const vtkStdString &name) override
When used to set additional arrays, stacked bars are created.
vtkColorSeries * GetColorSeries()
Get the color series used if when this is a stacked bar plot.
vtkStdString ColorArrayName
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:314
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:294
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:313
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:304
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float Offset
Definition: vtkPlotBar.h:297
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.
vtkStringArray * GetLabels() override
Get the plot labels.
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:106
Abstract class for 2D plots.
Definition: vtkPlot.h:53
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:26
Superclass for mapping scalar values to colors.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:38
a vtkAbstractArray subclass for strings
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
dynamic, self-adjusting array of unsigned char
@ point
Definition: vtkX3D.h:236
@ location
Definition: vtkX3D.h:406
@ orientation
Definition: vtkX3D.h:262
@ name
Definition: vtkX3D.h:219
@ index
Definition: vtkX3D.h:246
#define VTK_DEPRECATED_IN_9_3_0(reason)
int vtkIdType
Definition: vtkType.h:315
#define max(a, b)