VTK  9.2.6
vtkPlot.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkPlot.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
42#ifndef vtkPlot_h
43#define vtkPlot_h
44
45#include "vtkChartsCoreModule.h" // For export macro
46#include "vtkContextItem.h"
47#include "vtkContextPolygon.h" // For vtkContextPolygon
48#include "vtkRect.h" // For vtkRectd ivar
49#include "vtkSmartPointer.h" // Needed to hold SP ivars
50#include "vtkStdString.h" // Needed to hold TooltipLabelFormat ivar
51
52class vtkVariant;
53class vtkTable;
54class vtkIdTypeArray;
56class vtkPen;
57class vtkBrush;
58class vtkAxis;
59class vtkStringArray;
61
62class VTKCHARTSCORE_EXPORT vtkPlot : public vtkContextItem
63{
64public:
65 vtkTypeMacro(vtkPlot, vtkContextItem);
66 void PrintSelf(ostream& os, vtkIndent indent) override;
67
73 void Update() override;
74
76
81 vtkSetMacro(LegendVisibility, bool);
82 vtkGetMacro(LegendVisibility, bool);
83 vtkBooleanMacro(LegendVisibility, bool);
85
93 virtual bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex);
94
96
108 virtual void SetTooltipLabelFormat(const vtkStdString& label);
111
113
116 virtual void SetTooltipNotation(int notation);
117 virtual int GetTooltipNotation();
119
121
124 virtual void SetTooltipPrecision(int precision);
125 virtual int GetTooltipPrecision();
127
133 const vtkVector2d& plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex);
134
140 virtual vtkIdType GetNearestPoint(const vtkVector2f& point, const vtkVector2f& tolerance,
141 vtkVector2f* location, vtkIdType* segmentId);
142
146 virtual bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max);
147
151 virtual bool SelectPointsInPolygon(const vtkContextPolygon& polygon);
152
154
157 virtual void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a);
158 virtual void SetColor(double r, double g, double b);
159 virtual void GetColor(double rgb[3]);
160 void GetColor(unsigned char rgb[3]);
162
166 virtual void SetWidth(float width);
167
171 virtual float GetWidth();
172
174
177 void SetPen(vtkPen* pen);
180
182
185 void SetBrush(vtkBrush* brush);
188
190
197
199
206
210 virtual void SetLabel(const vtkStdString& label);
211
216
221 virtual void SetLabels(vtkStringArray* labels);
222
228
232 virtual int GetNumberOfLabels();
233
238
245
250
255
257
261 vtkGetMacro(UseIndexForXSeries, bool);
263
265
269 vtkSetMacro(UseIndexForXSeries, bool);
271
273
277 virtual void SetInputData(vtkTable* table);
278 virtual void SetInputData(
279 vtkTable* table, const vtkStdString& xColumn, const vtkStdString& yColumn);
280 void SetInputData(vtkTable* table, vtkIdType xColumn, vtkIdType yColumn);
282
284
289
293 virtual vtkTable* GetInput();
294
299
305 virtual void SetInputArray(int index, const vtkStdString& name);
306
308
314 vtkSetMacro(Selectable, bool);
315 vtkGetMacro(Selectable, bool);
316 vtkBooleanMacro(Selectable, bool);
318
320
325 virtual void SetSelection(vtkIdTypeArray* id);
326 vtkGetObjectMacro(Selection, vtkIdTypeArray);
328
330
333 vtkGetObjectMacro(XAxis, vtkAxis);
334 virtual void SetXAxis(vtkAxis* axis);
336
338
341 vtkGetObjectMacro(YAxis, vtkAxis);
342 virtual void SetYAxis(vtkAxis* axis);
344
346
352 void SetShiftScale(const vtkRectd& shiftScale);
355
361 virtual void GetBounds(double bounds[4]) { bounds[0] = bounds[1] = bounds[2] = bounds[3] = 0.0; }
362
387 virtual void GetUnscaledInputBounds(double bounds[4])
388 {
389 // Implemented here by calling GetBounds() to support plot
390 // subclasses that do no log-scaling or plot orientation.
391 return this->GetBounds(bounds);
392 }
393
395
399 virtual void SetProperty(const vtkStdString& property, const vtkVariant& var);
400 virtual vtkVariant GetProperty(const vtkStdString& property);
402
404
408 static bool ClampPos(double pos[2], double bounds[4]);
409 virtual bool ClampPos(double pos[2]);
411
415 bool Hit(const vtkContextMouseEvent& mouse) override;
416
423 virtual bool UpdateCache() { return true; }
424
425protected:
427 ~vtkPlot() override;
428
432 vtkStdString GetNumber(double position, vtkAxis* axis);
433
435
439 virtual void TransformScreenToData(const vtkVector2f& in, vtkVector2f& out);
440 virtual void TransformDataToScreen(const vtkVector2f& in, vtkVector2f& out);
442 const double inX, const double inY, double& outX, double& outY);
444 const double inX, const double inY, double& outX, double& outY);
446
450 virtual bool CacheRequiresUpdate();
451
456
461
466
472
478
483
488
493
499
505
510
515
520
525
531
537
540
545
547
548private:
549 vtkPlot(const vtkPlot&) = delete;
550 void operator=(const vtkPlot&) = delete;
551};
552
553#endif // vtkPlot_h
Proxy object to connect input/output ports.
takes care of drawing 2D axes
Definition vtkAxis.h:81
provides a brush that fills shapes drawn by vtkContext2D.
Definition vtkBrush.h:50
Class for drawing 2D primitives to a graphical context.
base class for items that are part of a vtkContextScene.
Abstract class for 2D context mappers.
data structure to represent mouse events.
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition vtkIndent.h:49
provides a pen that draws the outlines of shapes drawn by vtkContext2D.
Definition vtkPen.h:49
Abstract class for 2D plots.
Definition vtkPlot.h:63
bool UseIndexForXSeries
Use the Y array index for the X value.
Definition vtkPlot.h:498
virtual vtkStdString GetLabel()
Get the label of this plot.
virtual int GetTooltipPrecision()
Sets/gets the tooltip precision.
virtual void GetColor(double rgb[3])
Set the plot color.
vtkContextMapper2D * GetData()
Get the data object that the plot will draw.
vtkRectd ShiftScale
The current shift in origin and scaling factor applied to the plot.
Definition vtkPlot.h:544
virtual int GetTooltipNotation()
Sets/gets the tooltip notation style.
virtual vtkTable * GetInput()
Get the input table used by the plot.
void SetSelectionPen(vtkPen *pen)
Set/get the vtkBrush object that controls how this plot fills selected shapes.
int TooltipPrecision
Definition vtkPlot.h:539
vtkSmartPointer< vtkStringArray > IndexedLabels
Holds Labels when they're auto-created.
Definition vtkPlot.h:492
void SetIndexedLabels(vtkStringArray *labels)
Set indexed labels for the plot.
virtual void SetInputData(vtkTable *table, const vtkStdString &xColumn, const vtkStdString &yColumn)
This is a convenience function to set the input table and the x, y column for the plot.
virtual bool SelectPoints(const vtkVector2f &min, const vtkVector2f &max)
Select all points in the specified rectangle.
vtkAxis * XAxis
The X axis associated with this plot.
Definition vtkPlot.h:519
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,...
vtkPen * GetPen()
Set/get the vtkPen object that controls how this plot draws (out)lines.
virtual void SetWidth(float width)
Set the width of the line.
virtual int GetNumberOfLabels()
Get the number of labels associated with this plot.
~vtkPlot() override
virtual vtkStdString GetTooltipLabelFormat()
Sets/gets a printf-style string to build custom tooltip labels from.
virtual vtkVariant GetProperty(const vtkStdString &property)
A General setter/getter that should be overridden.
virtual void SetInputData(vtkTable *table)
This is a convenience function to set the input table and the x, y column for the plot.
virtual void SetColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
Set the plot color.
vtkStdString GetLabel(vtkIdType index)
Get the label at the specified index.
bool LegendVisibility
Definition vtkPlot.h:546
virtual void SetInputArray(int index, const vtkStdString &name)
Convenience function to set the input arrays.
virtual void GetUnscaledInputBounds(double bounds[4])
Provide un-log-scaled bounds for the plot inputs.
Definition vtkPlot.h:387
vtkAlgorithmOutput * GetInputConnection()
Get the input connection used by the plot.
vtkPen * GetSelectionPen()
Set/get the vtkBrush object that controls how this plot fills selected shapes.
void SetBrush(vtkBrush *brush)
Set/get the vtkBrush object that controls how this plot fills shapes.
vtkIdTypeArray * Selection
Selected indices for the table the plot is rendering.
Definition vtkPlot.h:514
virtual vtkStringArray * GetLabels()
Get the plot labels.
virtual void SetLabel(const vtkStdString &label)
Set the label of this plot.
vtkSmartPointer< vtkBrush > SelectionBrush
This object stores the vtkBrush that controls how the selected elements of the plot are drawn.
Definition vtkPlot.h:477
virtual void GetBounds(double bounds[4])
Get the bounds for this plot as (Xmin, Xmax, Ymin, Ymax).
Definition vtkPlot.h:361
virtual void SetTooltipLabelFormat(const vtkStdString &label)
Sets/gets a printf-style string to build custom tooltip labels from.
virtual void SetXAxis(vtkAxis *axis)
Get/set the X axis associated with this plot.
virtual bool UpdateCache()
Update the internal cache.
Definition vtkPlot.h:423
vtkAxis * YAxis
The X axis associated with this plot.
Definition vtkPlot.h:524
vtkStdString TooltipDefaultLabelFormat
The default printf-style string to build custom tooltip labels from.
Definition vtkPlot.h:536
virtual void SetColor(double r, double g, double b)
Set the plot color.
vtkSmartPointer< vtkPen > SelectionPen
This object stores the vtkPen that controls how the selected elements of the plot are drawn.
Definition vtkPlot.h:471
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...
void SetSelectionBrush(vtkBrush *brush)
Set/get the vtkBrush object that controls how this plot fills selected shapes.
virtual void SetProperty(const vtkStdString &property, const vtkVariant &var)
A General setter/getter that should be overridden.
void GetColor(unsigned char rgb[3])
Set the plot color.
void SetPen(vtkPen *pen)
Set/get the vtkPen object that controls how this plot draws (out)lines.
vtkStdString TooltipLabelFormat
A printf-style string to build custom tooltip labels from.
Definition vtkPlot.h:530
bool Selectable
Whether plot points can be selected or not.
Definition vtkPlot.h:509
int TooltipNotation
Definition vtkPlot.h:538
vtkRectd GetShiftScale()
Get/set the origin shift and scaling factor used by the plot, this is normally 0.0 offset and 1....
virtual vtkStringArray * GetIndexedLabels()
Get the indexed labels array.
vtkSmartPointer< vtkContextMapper2D > Data
This data member contains the data that will be plotted, it inherits from vtkAlgorithm.
Definition vtkPlot.h:504
vtkSmartPointer< vtkStringArray > Labels
Plot labels, used by legend.
Definition vtkPlot.h:482
void SetInputData(vtkTable *table, vtkIdType xColumn, vtkIdType yColumn)
This is a convenience function to set the input table and the x, y column for the plot.
void Update() override
Perform any updates to the item that may be necessary before rendering.
virtual void SetTooltipPrecision(int precision)
Sets/gets the tooltip precision.
void SetShiftScale(const vtkRectd &shiftScale)
Get/set the origin shift and scaling factor used by the plot, this is normally 0.0 offset and 1....
static bool ClampPos(double pos[2], double bounds[4])
Clamp the given 2D pos into the provided bounds Return true if the pos has been clamped,...
virtual void TransformScreenToData(const vtkVector2f &in, vtkVector2f &out)
Transform the mouse event in the control-points space.
virtual void SetYAxis(vtkAxis *axis)
Get/set the Y axis associated with this plot.
bool Hit(const vtkContextMouseEvent &mouse) override
Returns true if the supplied x, y coordinate is inside the item.
vtkTimeStamp BuildTime
The point cache is marked dirty until it has been initialized.
Definition vtkPlot.h:455
vtkBrush * GetSelectionBrush()
Set/get the vtkBrush object that controls how this plot fills selected shapes.
virtual void TransformDataToScreen(const double inX, const double inY, double &outX, double &outY)
Transform the mouse event in the control-points space.
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.
vtkSmartPointer< vtkStringArray > AutoLabels
Holds Labels when they're auto-created.
Definition vtkPlot.h:487
virtual void TransformDataToScreen(const vtkVector2f &in, vtkVector2f &out)
Transform the mouse event in the control-points space.
virtual bool ClampPos(double pos[2])
Clamp the given 2D pos into the provided bounds Return true if the pos has been clamped,...
vtkStdString GetNumber(double position, vtkAxis *axis)
Get the properly formatted number for the supplied position and axis.
virtual void SetInputConnection(vtkAlgorithmOutput *input)
This is a convenience function to set the input connection for the plot.
vtkSmartPointer< vtkBrush > Brush
This object stores the vtkBrush that controls how the plot is drawn.
Definition vtkPlot.h:465
virtual bool CacheRequiresUpdate()
Test if the internal cache requires an update.
virtual bool SelectPointsInPolygon(const vtkContextPolygon &polygon)
Select all points in the specified polygon.
vtkBrush * GetBrush()
Set/get the vtkBrush object that controls how this plot fills shapes.
virtual void SetSelection(vtkIdTypeArray *id)
Sets the list of points that must be selected.
vtkSmartPointer< vtkPen > Pen
This object stores the vtkPen that controls how the plot is drawn.
Definition vtkPlot.h:460
virtual float GetWidth()
Get the width of the line.
virtual void SetLabels(vtkStringArray *labels)
Set the plot labels, these are used for stacked chart variants, with the index referring to the stack...
virtual void TransformScreenToData(const double inX, const double inY, double &outX, double &outY)
Transform the mouse event in the control-points space.
virtual void SetTooltipNotation(int notation)
Sets/gets the tooltip notation style.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
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:83
record modification and/or execution time
A atomic type representing the union of many types.
Definition vtkVariant.h:79
int vtkIdType
Definition vtkType.h:332
#define max(a, b)