VTK
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 
35 class vtkContext2D;
36 class vtkTable;
37 class vtkPoints2D;
38 class vtkStdString;
39 class vtkColorSeries;
41 class vtkScalarsToColors;
42 
43 class vtkPlotBarPrivate;
44 
45 class VTKCHARTSCORE_EXPORT vtkPlotBar : public vtkPlot
46 {
47 public:
48  vtkTypeMacro(vtkPlotBar, vtkPlot);
49  void PrintSelf(ostream &os, vtkIndent indent) override;
50 
54  enum {
55  VERTICAL = 0,
56  HORIZONTAL
57  };
58 
62  static vtkPlotBar *New();
63 
67  void Update() override;
68 
72  bool Paint(vtkContext2D *painter) override;
73 
80  bool PaintLegend(vtkContext2D *painter, const vtkRectf& rect,
81  int legendIndex) override;
82 
84 
87  void SetColor(unsigned char r, unsigned char g, unsigned char b,
88  unsigned char a) override;
89  void SetColor(double r, double g, double b) override;
90  void GetColor(double rgb[3]) override;
92 
94 
97  void SetWidth(float _arg) override
98  {
99  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting Width to " << _arg);
100  if (this->Width != _arg)
101  {
102  this->Width = _arg;
103  this->Modified();
104  }
105  }
107 
109 
112  float GetWidth() override
113  {
114  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning Width of " << this->Width );
115  return this->Width;
116  }
118 
120 
126  vtkSetMacro(Offset, float);
127  vtkGetMacro(Offset, float);
129 
131 
135  virtual void SetOrientation(int orientation);
136  vtkGetMacro(Orientation, int);
138 
142  virtual void GetBounds(double bounds[4], bool unscaled);
143 
147  void GetBounds(double bounds[4]) override;
148 
152  void GetUnscaledInputBounds(double bounds[4]) override;
153 
157  void SetInputArray(int index, const vtkStdString &name) override;
158 
162  void SetColorSeries(vtkColorSeries *colorSeries);
163 
167  vtkColorSeries *GetColorSeries();
168 
170 
173  virtual void SetLookupTable(vtkScalarsToColors *lut);
174  virtual vtkScalarsToColors *GetLookupTable();
176 
181  virtual void CreateDefaultLookupTable();
182 
184 
187  vtkSetMacro(ScalarVisibility, bool);
188  vtkGetMacro(ScalarVisibility, bool);
189  vtkBooleanMacro(ScalarVisibility, bool);
191 
193 
198  void SelectColorArray(vtkIdType arrayNum);
199  void SelectColorArray(const vtkStdString& arrayName);
201 
205  vtkStdString GetColorArrayName();
206 
210  vtkStringArray *GetLabels() override;
211 
215  virtual void SetGroupName(const vtkStdString& name);
216 
220  virtual vtkStdString GetGroupName();
221 
227  vtkIdType seriesIndex,
228  vtkIdType segmentIndex) override;
229 
233  bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
234 
241  const vtkVector2f& tolerance,
242  vtkVector2f* location) override;
243 
251  virtual vtkIdType GetNearestPoint(const vtkVector2f& point,
252  const vtkVector2f&,
253  vtkVector2f* location,
254  vtkIdType* segmentIndex);
255 
259  int GetBarsCount();
260 
264  void GetDataBounds(double bounds[2]);
265 
266 protected:
267  vtkPlotBar();
268  ~vtkPlotBar() override;
269 
273  bool UpdateTableCache(vtkTable *table);
274 
279 
280  float Width;
281  float Offset;
282 
284 
289 
294 
296 
304 
305  bool LogX;
306  bool LogY;
307 
308 private:
309  vtkPlotBar(const vtkPlotBar &) = delete;
310  void operator=(const vtkPlotBar &) = delete;
311 
312  vtkPlotBarPrivate *Private;
313 
314 };
315 
316 #endif //vtkPlotBar_h
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:40
vtkSmartPointer< vtkUnsignedCharArray > Colors
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:300
void SetWidth(float _arg) override
Set the width of the line.
Definition: vtkPlotBar.h:97
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual bool PaintLegend(vtkContext2D *painter, const vtkRectf &rect, int legendIndex)
Paint legend event for the plot, called whenever the legend needs the plot items symbol/mark/line dra...
float Width
Definition: vtkPlotBar.h:280
virtual bool Paint(vtkContext2D *painter)
Paint event for the item, called whenever the item needs to be drawn.
record modification and/or execution time
Definition: vtkTimeStamp.h:35
virtual void GetBounds(double bounds[4])
Get the bounds for this plot as (Xmin, Xmax, Ymin, Ymax).
Definition: vtkPlot.h:336
a vtkAbstractArray subclass for strings
int vtkIdType
Definition: vtkType.h:347
virtual void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
Set the plot color.
int Orientation
Definition: vtkPlotBar.h:283
Superclass for mapping scalar values to colors.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:58
virtual bool SelectPoints(const vtkVector2f &min, const vtkVector2f &max)
Select all points in the specified rectangle.
bool ScalarVisibility
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:301
a simple class to control print indentation
Definition: vtkIndent.h:39
const char * GetClassName() const
Return the class name as a string.
represent and manipulate 2D points
Definition: vtkPoints2D.h:36
virtual vtkStringArray * GetLabels()
Get the plot labels.
virtual void Modified()
Update the modification time for this object.
Abstract class for 2D plots.
Definition: vtkPlot.h:52
Class for drawing an XY plot given two columns from a vtkTable.
Definition: vtkPlotBar.h:45
float Offset
Definition: vtkPlotBar.h:281
dynamic, self-adjusting array of unsigned char
virtual vtkIdType GetNearestPoint(const vtkVector2f &point, const vtkVector2f &tolerance, vtkVector2f *location)
Function to query a plot for the nearest point to the specified coordinate.
virtual void SetInputArray(int index, const vtkStdString &name)
Convenience function to set the input arrays.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
stores a list of colors.
virtual void GetUnscaledInputBounds(double bounds[4])
Provide un-log-scaled bounds for the plot inputs.
Definition: vtkPlot.h:363
virtual void GetColor(double rgb[3])
Set the plot color.
vtkSmartPointer< vtkScalarsToColors > LookupTable
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:299
vtkPoints2D * Points
Store a well packed set of XY coordinates for this data series.
Definition: vtkPlotBar.h:278
float GetWidth() override
Get the width of the line.
Definition: vtkPlotBar.h:112
vtkSmartPointer< vtkColorSeries > ColorSeries
The color series to use if this becomes a stacked bar.
Definition: vtkPlotBar.h:293
vtkStdString ColorArrayName
Lookup Table for coloring bars by scalar value.
Definition: vtkPlotBar.h:302
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual void Update()
Perform any updates to the item that may be necessary before rendering.
vtkTimeStamp BuildTime
The point cache is marked dirty until it has been initialized.
Definition: vtkPlotBar.h:288
#define max(a, b)
virtual vtkStdString GetTooltipLabel(const vtkVector2d &plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex)
Generate and return the tooltip label string for this plot The segmentIndex parameter is ignored...