VTK  9.0.3
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 
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 class vtkContext2D;
33 class vtkTable;
34 class vtkPoints2D;
35 class vtkStdString;
36 class vtkColorSeries;
38 class vtkScalarsToColors;
39 
40 class vtkPlotBarPrivate;
41 
42 class VTKCHARTSCORE_EXPORT vtkPlotBar : public vtkPlot
43 {
44 public:
45  vtkTypeMacro(vtkPlotBar, vtkPlot);
46  void PrintSelf(ostream& os, vtkIndent indent) override;
47 
51  enum
52  {
53  VERTICAL = 0,
54  HORIZONTAL
55  };
56 
60  static vtkPlotBar* New();
61 
65  void Update() override;
66 
70  bool Paint(vtkContext2D* painter) override;
71 
78  bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex) override;
79 
81 
84  void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) override;
85  void SetColor(double r, double g, double b) override;
86  void GetColor(double rgb[3]) override;
88 
90 
93  void SetWidth(float _arg) override
94  {
95  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting Width to " << _arg);
96  if (this->Width != _arg)
97  {
98  this->Width = _arg;
99  this->Modified();
100  }
101  }
103 
105 
108  float GetWidth() override
109  {
110  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning Width of "
111  << this->Width);
112  return this->Width;
113  }
115 
117 
123  vtkSetMacro(Offset, float);
124  vtkGetMacro(Offset, float);
126 
128 
132  virtual void SetOrientation(int orientation);
133  vtkGetMacro(Orientation, int);
135 
139  virtual void GetBounds(double bounds[4], bool unscaled);
140 
144  void GetBounds(double bounds[4]) override;
145 
149  void GetUnscaledInputBounds(double bounds[4]) override;
150 
154  void SetInputArray(int index, const vtkStdString& name) override;
155 
159  void SetColorSeries(vtkColorSeries* colorSeries);
160 
165 
167 
170  virtual void SetLookupTable(vtkScalarsToColors* lut);
173 
178  virtual void CreateDefaultLookupTable();
179 
181 
184  vtkSetMacro(ScalarVisibility, bool);
185  vtkGetMacro(ScalarVisibility, bool);
186  vtkBooleanMacro(ScalarVisibility, bool);
188 
190 
193  vtkSetMacro(EnableOpacityMapping, bool);
194  vtkGetMacro(EnableOpacityMapping, bool);
195  vtkBooleanMacro(EnableOpacityMapping, bool);
197 
199 
204  void SelectColorArray(vtkIdType arrayNum);
205  void SelectColorArray(const vtkStdString& arrayName);
207 
212 
217 
221  virtual void SetGroupName(const vtkStdString& name);
222 
227 
233  const vtkVector2d& plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex) override;
234 
238  bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
239 
249 #ifndef VTK_LEGACY_REMOVE
250  vtkIdType* segmentId) override;
251 #else
252  vtkIdType* segmentId = nullptr) override;
253 #endif // VTK_LEGACY_REMOVE
254 
255 #ifndef VTK_LEGACY_REMOVE
257 #endif // VTK_LEGACY_REMOVE
258 
263 
267  void GetDataBounds(double bounds[2]);
268 
269 protected:
271  ~vtkPlotBar() override;
272 
277 
282 
283  float Width;
284  float Offset;
285 
287 
292 
297 
299 
308 
309  bool LogX;
310  bool LogY;
311 
312 private:
313  vtkPlotBar(const vtkPlotBar&) = delete;
314  void operator=(const vtkPlotBar&) = delete;
315 
316  vtkPlotBarPrivate* Private;
317 };
318 
319 #endif // vtkPlotBar_h
stores a list of colors.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:53
a simple class to control print indentation
Definition: vtkIndent.h:34
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:43
virtual void SetLookupTable(vtkScalarsToColors *lut)
Specify a lookup table for the mapper to use.
float Width
Definition: vtkPlotBar.h:283
int Orientation
Definition: vtkPlotBar.h:286
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).
vtkTimeStamp BuildTime
The point cache is marked dirty until it has been initialized.
Definition: vtkPlotBar.h:291
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
vtkSmartPointer< vtkScalarsToColors > LookupTable
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:302
void SelectColorArray(vtkIdType arrayNum)
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which array to use f...
vtkSmartPointer< vtkUnsignedCharArray > Colors
Definition: vtkPlotBar.h:303
virtual vtkIdType GetNearestPoint(const vtkVector2f &point, const vtkVector2f &, vtkVector2f *location, vtkIdType *segmentId) override
Function to query a plot for the nearest point to the specified coordinate.
vtkStdString GetColorArrayName()
Get the array name to color by.
virtual vtkScalarsToColors * GetLookupTable()
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:108
bool ScalarVisibility
Definition: vtkPlotBar.h:304
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
Definition: vtkPlotBar.h:306
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:281
void SelectColorArray(const vtkStdString &arrayName)
bool EnableOpacityMapping
Definition: vtkPlotBar.h:305
void GetColor(double rgb[3]) override
bool UpdateTableCache(vtkTable *table)
Update the table cache.
vtkSmartPointer< vtkColorSeries > ColorSeries
The color series to use if this becomes a stacked bar.
Definition: vtkPlotBar.h:296
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Update() override
Perform any updates to the item that may be necessary before rendering.
float Offset
Definition: vtkPlotBar.h:284
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:93
Abstract class for 2D plots.
Definition: vtkPlot.h:47
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:34
Superclass for mapping scalar values to colors.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:35
a vtkAbstractArray subclass for strings
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:63
record modification and/or execution time
Definition: vtkTimeStamp.h:33
dynamic, self-adjusting array of unsigned char
@ point
Definition: vtkX3D.h:242
@ location
Definition: vtkX3D.h:412
@ orientation
Definition: vtkX3D.h:268
@ name
Definition: vtkX3D.h:225
@ index
Definition: vtkX3D.h:252
int vtkIdType
Definition: vtkType.h:338
#define max(a, b)