VTK  9.3.0
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 
33 #ifndef vtkPlotPoints_h
34 #define vtkPlotPoints_h
35 
36 #include "vtkChartsCoreModule.h" // For export macro
37 #include "vtkNew.h" // For ivars
38 #include "vtkPlot.h"
39 #include "vtkRenderingCoreEnums.h" // For marker enum
40 #include "vtkScalarsToColors.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
41 #include "vtkStdString.h" // For color array name
42 
43 VTK_ABI_NAMESPACE_BEGIN
44 class vtkCharArray;
45 class vtkContext2D;
46 class vtkTable;
47 class vtkPoints2D;
48 class vtkFloatArray;
49 class vtkImageData;
50 class vtkScalarsToColors;
52 
53 class VTKCHARTSCORE_EXPORT vtkPlotPoints : public vtkPlot
54 {
55 public:
56  vtkTypeMacro(vtkPlotPoints, vtkPlot);
57  void PrintSelf(ostream& os, vtkIndent indent) override;
58 
62  static vtkPlotPoints* New();
63 
67  bool Paint(vtkContext2D* painter) override;
68 
75  bool PaintLegend(vtkContext2D* painter, const vtkRectf& rect, int legendIndex) override;
76 
80  void GetBounds(double bounds[4]) override;
81 
85  void GetUnscaledInputBounds(double bounds[4]) override;
86 
88 
94 
99  virtual void CreateDefaultLookupTable();
100 
102 
105  vtkSetMacro(ScalarVisibility, vtkTypeBool);
106  vtkGetMacro(ScalarVisibility, vtkTypeBool);
107  vtkBooleanMacro(ScalarVisibility, vtkTypeBool);
109 
111 
116  void SelectColorArray(vtkIdType arrayNum);
117  void SelectColorArray(const vtkStdString& arrayName);
119 
124 
131  vtkVector2f* location, vtkIdType* segmentId) override;
133 
137  bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max) override;
138 
142  bool SelectPointsInPolygon(const vtkContextPolygon& polygon) override;
143 
147  enum
148  {
154  DIAMOND = VTK_MARKER_DIAMOND
155  };
156 
158 
162  vtkGetMacro(MarkerStyle, int);
163  vtkSetMacro(MarkerStyle, int);
165 
167 
171  vtkGetMacro(MarkerSize, float);
172  vtkSetMacro(MarkerSize, float);
174 
176 
179  vtkGetMacro(ValidPointMaskName, vtkStdString);
180  vtkSetMacro(ValidPointMaskName, vtkStdString);
182 
189  bool UpdateCache() override;
190 
191  void ReleaseGraphicsCache() override;
192 
193 protected:
195  ~vtkPlotPoints() override;
196 
200  bool GetDataArrays(vtkTable* table, vtkDataArray* array[2]);
201 
205  bool CacheRequiresUpdate() override;
206 
211 
217 
224 
228  void CalculateBounds(double bounds[4]);
229 
234 
236 
242 
244 
247  class VectorPIMPL;
248  VectorPIMPL* Sorted;
250 
256 
262 
267 
269 
273  float MarkerSize;
275 
276  bool LogX, LogY;
277 
279 
287 
291  double UnscaledInputBounds[4];
292 
293 private:
294  vtkPlotPoints(const vtkPlotPoints&) = delete;
295  void operator=(const vtkPlotPoints&) = delete;
296 };
297 
298 VTK_ABI_NAMESPACE_END
299 #endif // vtkPlotPoints_h
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:50
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:59
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:40
dynamic, self-adjusting array of vtkIdType
topologically and geometrically regular array of data
Definition: vtkImageData.h:52
a simple class to control print indentation
Definition: vtkIndent.h:38
Class for drawing an points given two columns from a vtkTable.
Definition: vtkPlotPoints.h:54
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.
float MarkerSize
The marker style that should be used.
void ReleaseGraphicsCache() override
Release cache entries created by this context item.
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.
bool CacheRequiresUpdate() override
Test if the internal cache requires an update.
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:53
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:26
Superclass for mapping scalar values to colors.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:38
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
dynamic, self-adjusting array of unsigned char
@ point
Definition: vtkX3D.h:236
@ location
Definition: vtkX3D.h:406
int vtkTypeBool
Definition: vtkABI.h:64
@ VTK_MARKER_DIAMOND
@ VTK_MARKER_SQUARE
@ VTK_MARKER_PLUS
@ VTK_MARKER_CROSS
@ VTK_MARKER_CIRCLE
@ VTK_MARKER_NONE
int vtkIdType
Definition: vtkType.h:315
#define max(a, b)