VTK  9.3.1
vtkPlotPoints.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 
24 #ifndef vtkPlotPoints_h
25 #define vtkPlotPoints_h
26 
27 #include "vtkChartsCoreModule.h" // For export macro
28 #include "vtkNew.h" // For ivars
29 #include "vtkPlot.h"
30 #include "vtkRenderingCoreEnums.h" // For marker enum
31 #include "vtkScalarsToColors.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
32 #include "vtkStdString.h" // For color array name
33 
34 VTK_ABI_NAMESPACE_BEGIN
35 class vtkCharArray;
36 class vtkContext2D;
37 class vtkTable;
38 class vtkPoints2D;
39 class vtkFloatArray;
40 class vtkImageData;
41 class vtkScalarsToColors;
43 
44 class VTKCHARTSCORE_EXPORT vtkPlotPoints : public vtkPlot
45 {
46 public:
47  vtkTypeMacro(vtkPlotPoints, vtkPlot);
48  void PrintSelf(ostream& os, vtkIndent indent) override;
49 
53  static vtkPlotPoints* New();
54 
58  bool Paint(vtkContext2D* painter) override;
59 
66  bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex) override;
67 
71  void GetBounds(double bounds[4]) override;
72 
76  void GetUnscaledInputBounds(double bounds[4]) override;
77 
79 
82  void SetLookupTable(vtkScalarsToColors* lut);
83  vtkScalarsToColors* GetLookupTable();
85 
90  virtual void CreateDefaultLookupTable();
91 
93 
96  vtkSetMacro(ScalarVisibility, vtkTypeBool);
97  vtkGetMacro(ScalarVisibility, vtkTypeBool);
98  vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
100 
102 
107  void SelectColorArray(vtkIdType arrayNum);
108  void SelectColorArray(const vtkStdString& arrayName);
110 
114  vtkStdString GetColorArrayName();
115 
121  vtkIdType GetNearestPoint(const vtkVector2f& point, const vtkVector2f& tolerance,
122  vtkVector2f* location, vtkIdType* segmentId) override;
124 
128  bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
129 
133  bool SelectPointsInPolygon(const vtkContextPolygon& polygon) override;
134 
138  enum
139  {
146  };
147 
149 
153  vtkGetMacro(MarkerStyle, int);
154  vtkSetMacro(MarkerStyle, int);
156 
158 
162  vtkGetMacro(MarkerSize, float);
163  vtkSetMacro(MarkerSize, float);
165 
167 
170  vtkGetMacro(ValidPointMaskName, vtkStdString);
171  vtkSetMacro(ValidPointMaskName, vtkStdString);
173 
180  bool UpdateCache() override;
181 
182  void ReleaseGraphicsCache() override;
183 
184 protected:
185  vtkPlotPoints();
186  ~vtkPlotPoints() override;
187 
191  bool GetDataArrays(vtkTable* table, vtkDataArray* array[2]);
192 
196  bool CacheRequiresUpdate() override;
197 
201  void CalculateUnscaledInputBounds();
202 
207  void CalculateLogSeries();
208 
214  void FindBadPoints();
215 
219  void CalculateBounds(double bounds[4]);
220 
224  void CreateSortedPoints();
225 
227 
233 
235 
238  class VectorPIMPL;
239  VectorPIMPL* Sorted;
241 
247 
253 
258 
260 
264  float MarkerSize;
266 
267  bool LogX, LogY;
268 
270 
278 
282  double UnscaledInputBounds[4];
283 
284 private:
285  vtkPlotPoints(const vtkPlotPoints&) = delete;
286  void operator=(const vtkPlotPoints&) = delete;
287 };
288 
289 VTK_ABI_NAMESPACE_END
290 #endif // vtkPlotPoints_h
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:28
vtkCharArray * ValidPointMask
Array which marks valid points in the array.
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...
virtual bool Paint(vtkContext2D *painter)
Paint event for the item, called whenever the item needs to be drawn.
vtkTypeBool ScalarVisibility
Lookup Table for coloring points by scalar value.
Class for drawing an points given two columns from a vtkTable.
Definition: vtkPlotPoints.h:44
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:30
virtual void GetBounds(double bounds[4])
Get the bounds for this plot as (Xmin, Xmax, Ymin, Ymax).
Definition: vtkPlot.h:367
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.
dynamic, self-adjusting array of vtkIdType
int vtkIdType
Definition: vtkType.h:315
int vtkTypeBool
Definition: vtkABI.h:64
Superclass for mapping scalar values to colors.
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:40
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:49
vtkStdString ColorArrayName
Lookup Table for coloring points by scalar value.
virtual bool SelectPoints(const vtkVector2f &min, const vtkVector2f &max)
Select all points in the specified rectangle.
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkStdString ValidPointMaskName
Name of the valid point mask array.
represent and manipulate 2D points
Definition: vtkPoints2D.h:25
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
virtual bool UpdateCache()
Update the internal cache.
Definition: vtkPlot.h:429
virtual void ReleaseGraphicsCache()
Release cache entries created by this context item.
Abstract class for 2D plots.
Definition: vtkPlot.h:43
vtkUnsignedCharArray * Colors
Lookup Table for coloring points by scalar value.
dynamic, self-adjusting array of unsigned char
int MarkerStyle
The marker style that should be used.
virtual bool SelectPointsInPolygon(const vtkContextPolygon &polygon)
Select all points in the specified polygon.
virtual bool CacheRequiresUpdate()
Test if the internal cache requires an update.
vtkScalarsToColors * LookupTable
Lookup Table for coloring points by scalar value.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:58
vtkNew< vtkFloatArray > SelectedPoints
Store a well packed set of XY coordinates for this data series.
virtual void GetUnscaledInputBounds(double bounds[4])
Provide un-log-scaled bounds for the plot inputs.
Definition: vtkPlot.h:393
vtkPoints2D * Points
Store a well packed set of XY coordinates for this data series.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
float MarkerSize
The marker style that should be used.
VectorPIMPL * Sorted
#define max(a, b)
vtkIdTypeArray * BadPoints
An array containing the indices of all the "bad points", meaning any x, y pair that has an infinity...