VTK  9.2.6
vtkPlotPoints.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPlotPoints.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 
82 #ifndef vtkPlotPoints_h
83 #define vtkPlotPoints_h
84 
85 #include "vtkChartsCoreModule.h" // For export macro
86 #include "vtkNew.h" // For ivars
87 #include "vtkPlot.h"
88 #include "vtkRenderingCoreEnums.h" // For marker enum
89 #include "vtkScalarsToColors.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
90 #include "vtkStdString.h" // For color array name
91 
92 class vtkCharArray;
93 class vtkContext2D;
94 class vtkTable;
95 class vtkPoints2D;
96 class vtkFloatArray;
97 class vtkStdString;
98 class vtkImageData;
99 class vtkScalarsToColors;
101 
102 class VTKCHARTSCORE_EXPORT vtkPlotPoints : public vtkPlot
103 {
104 public:
105  vtkTypeMacro(vtkPlotPoints, vtkPlot);
106  void PrintSelf(ostream& os, vtkIndent indent) override;
107 
111  static vtkPlotPoints* New();
112 
116  bool Paint(vtkContext2D* painter) override;
117 
124  bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex) override;
125 
129  void GetBounds(double bounds[4]) override;
130 
134  void GetUnscaledInputBounds(double bounds[4]) override;
135 
137 
143 
148  virtual void CreateDefaultLookupTable();
149 
151 
154  vtkSetMacro(ScalarVisibility, vtkTypeBool);
155  vtkGetMacro(ScalarVisibility, vtkTypeBool);
156  vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
158 
160 
165  void SelectColorArray(vtkIdType arrayNum);
166  void SelectColorArray(const vtkStdString& arrayName);
168 
173 
180  vtkVector2f* location, vtkIdType* segmentId) override;
182 
186  bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
187 
191  bool SelectPointsInPolygon(const vtkContextPolygon& polygon) override;
192 
196  enum
197  {
203  DIAMOND = VTK_MARKER_DIAMOND
204  };
205 
207 
211  vtkGetMacro(MarkerStyle, int);
212  vtkSetMacro(MarkerStyle, int);
214 
216 
220  vtkGetMacro(MarkerSize, float);
221  vtkSetMacro(MarkerSize, float);
223 
225 
228  vtkGetMacro(ValidPointMaskName, vtkStdString);
229  vtkSetMacro(ValidPointMaskName, vtkStdString);
231 
238  bool UpdateCache() override;
239 
240 protected:
242  ~vtkPlotPoints() override;
243 
247  bool GetDataArrays(vtkTable* table, vtkDataArray* array[2]);
248 
252  virtual bool CacheRequiresUpdate() override;
253 
258 
264 
271 
275  void CalculateBounds(double bounds[4]);
276 
281 
283 
289 
291 
294  class VectorPIMPL;
295  VectorPIMPL* Sorted;
297 
303 
309 
314 
316 
320  float MarkerSize;
322 
323  bool LogX, LogY;
324 
326 
334 
338  double UnscaledInputBounds[4];
339 
340 private:
341  vtkPlotPoints(const vtkPlotPoints&) = delete;
342  void operator=(const vtkPlotPoints&) = delete;
343 };
344 
345 #endif // vtkPlotPoints_h
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:71
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:77
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:165
dynamic, self-adjusting array of float
dynamic, self-adjusting array of vtkIdType
topologically and geometrically regular array of data
Definition: vtkImageData.h:163
a simple class to control print indentation
Definition: vtkIndent.h:119
Class for drawing an points given two columns from a vtkTable.
void CalculateLogSeries()
Handle calculating the log of the x or y series if necessary.
int MarkerStyle
The marker style that should be used.
virtual void CreateDefaultLookupTable()
Create default lookup table.
void GetUnscaledInputBounds(double bounds[4]) override
Get the non-log-scaled bounds on chart inputs for this plot as (Xmin, Xmax, Ymin, Ymax).
void SelectColorArray(const vtkStdString &arrayName)
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which array to use f...
void CalculateUnscaledInputBounds()
Calculate the unscaled input bounds from the input arrays.
virtual bool CacheRequiresUpdate() override
Test if the internal cache requires an update.
float MarkerSize
The marker style that should be used.
void FindBadPoints()
Find all of the "bad points" in the series.
bool GetDataArrays(vtkTable *table, vtkDataArray *array[2])
Populate the data arrays ready to operate on input data.
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 ...
vtkTypeBool ScalarVisibility
Lookup Table for coloring points by scalar value.
vtkStdString ColorArrayName
Lookup Table for coloring points by scalar value.
bool UpdateCache() override
Update the internal cache.
void GetBounds(double bounds[4]) override
Get the bounds for this plot as (Xmin, Xmax, Ymin, Ymax).
~vtkPlotPoints() override
void SetLookupTable(vtkScalarsToColors *lut)
Specify a lookup table for the mapper to use.
vtkIdTypeArray * BadPoints
An array containing the indices of all the "bad points", meaning any x, y pair that has an infinity,...
bool SelectPoints(const vtkVector2f &min, const vtkVector2f &max) override
Select all points in the specified rectangle.
void SelectColorArray(vtkIdType arrayNum)
When ScalarMode is set to UsePointFieldData or UseCellFieldData, you can specify which array to use f...
vtkUnsignedCharArray * Colors
Lookup Table for coloring points by scalar value.
vtkPoints2D * Points
Store a well packed set of XY coordinates for this data series.
VectorPIMPL * Sorted
vtkStdString ValidPointMaskName
Name of the valid point mask array.
vtkScalarsToColors * GetLookupTable()
Specify a lookup table for the mapper to use.
bool Paint(vtkContext2D *painter) override
Paint event for the XY plot, called whenever the chart needs to be drawn.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void CalculateBounds(double bounds[4])
Calculate the bounds of the plot, ignoring the bad points.
bool SelectPointsInPolygon(const vtkContextPolygon &polygon) override
Select all points in the specified polygon.
vtkNew< vtkFloatArray > SelectedPoints
Store a well packed set of XY coordinates for this data series.
void CreateSortedPoints()
Create the sorted point list if necessary.
static vtkPlotPoints * New()
Creates a 2D Chart object.
vtkCharArray * ValidPointMask
Array which marks valid points in the array.
vtkStdString GetColorArrayName()
Get the array name to color by.
vtkIdType GetNearestPoint(const vtkVector2f &point, const vtkVector2f &tolerance, vtkVector2f *location, vtkIdType *segmentId) override
Function to query a plot for the nearest point to the specified coordinate.
vtkScalarsToColors * LookupTable
Lookup Table for coloring points by scalar value.
Abstract class for 2D plots.
Definition: vtkPlot.h:163
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:37
Superclass for mapping scalar values to colors.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:108
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:183
dynamic, self-adjusting array of unsigned char
@ point
Definition: vtkX3D.h:242
@ location
Definition: vtkX3D.h:412
int vtkTypeBool
Definition: vtkABI.h:69
@ VTK_MARKER_DIAMOND
@ VTK_MARKER_SQUARE
@ VTK_MARKER_PLUS
@ VTK_MARKER_CROSS
@ VTK_MARKER_CIRCLE
@ VTK_MARKER_NONE
int vtkIdType
Definition: vtkType.h:332
#define max(a, b)