VTK  9.3.1
vtkPlotHistogram2D.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 
12 #ifndef vtkPlotHistogram2D_h
13 #define vtkPlotHistogram2D_h
14 
15 #include "vtkChartsCoreModule.h" // For export macro
16 #include "vtkPlot.h"
17 #include "vtkRect.h" // Needed for vtkRectf
18 #include "vtkSmartPointer.h" // Needed for SP ivars
19 
20 #include <string> // Needed for std::string
21 
22 VTK_ABI_NAMESPACE_BEGIN
23 
24 class vtkDataArray;
25 class vtkImageData;
26 class vtkScalarsToColors;
27 
28 class VTKCHARTSCORE_EXPORT vtkPlotHistogram2D : public vtkPlot
29 {
30 public:
31  vtkTypeMacro(vtkPlotHistogram2D, vtkPlot);
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
37  static vtkPlotHistogram2D* New();
38 
44  void Update() override;
45 
49  bool Paint(vtkContext2D* painter) override;
50 
55  virtual void SetInputData(vtkImageData* data, vtkIdType z = 0);
56  void SetInputData(vtkTable*) override {}
57  void SetInputData(vtkTable*, const vtkStdString&, const vtkStdString&) override {}
58 
62  vtkImageData* GetInputImageData();
63 
68  void SetTransferFunction(vtkScalarsToColors* transfer);
69 
73  vtkScalarsToColors* GetTransferFunction();
74 
75  void GetBounds(double bounds[4]) override;
76 
77  virtual void SetPosition(const vtkRectf& pos);
78  virtual vtkRectf GetPosition();
79 
81 
86  vtkSetMacro(ArrayName, std::string);
87  vtkGetMacro(ArrayName, std::string);
89 
107  const vtkVector2d& plotPos, vtkIdType seriesIndex, vtkIdType segmentIndex) override;
108 
117  vtkIdType GetNearestPoint(const vtkVector2f& point, const vtkVector2f& tolerance,
118  vtkVector2f* location, vtkIdType* segmentId) override;
120 
127  bool UpdateCache() override;
128 
129 protected:
131  ~vtkPlotHistogram2D() override;
132 
137 
138 private:
139  vtkPlotHistogram2D(const vtkPlotHistogram2D&) = delete;
140  void operator=(const vtkPlotHistogram2D&) = delete;
141 
146  static vtkIdType GetLabelIndexFromValue(double value, vtkAxis* axis);
151  static inline bool CanComputeMagnitude(int nbComponents);
152 
157  inline vtkDataArray* GetSelectedArray();
165  void* GetInputArrayPointer(int& nbComponents);
172  double GetInputArrayValue(int x, int y, int z);
173 
174  std::string ArrayName;
175  vtkSmartPointer<vtkDataArray> MagnitudeArray;
176 };
177 
178 VTK_ABI_NAMESPACE_END
179 #endif // vtkPlotHistogram2D_h
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:28
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual bool Paint(vtkContext2D *painter)
Paint event for the item, called whenever the item needs to be drawn.
void Update() override
Perform any updates to the item that may be necessary before rendering.
virtual void GetBounds(double bounds[4])
Get the bounds for this plot as (Xmin, Xmax, Ymin, Ymax).
Definition: vtkPlot.h:367
void SetInputData(vtkTable *) override
This is a convenience function to set the input table and the x, y column for the plot...
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.
int vtkIdType
Definition: vtkType.h:315
Superclass for mapping scalar values to colors.
void SetInputData(vtkTable *, const vtkStdString &, const vtkStdString &) override
This is a convenience function to set the input table and the x, y column for the plot...
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:49
takes care of drawing 2D axes
Definition: vtkAxis.h:60
a simple class to control print indentation
Definition: vtkIndent.h:28
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
vtkSmartPointer< vtkScalarsToColors > TransferFunction
Abstract class for 2D plots.
Definition: vtkPlot.h:43
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:58
virtual void SetInputData(vtkTable *table)
This is a convenience function to set the input table and the x, y column for the plot...
vtkSmartPointer< vtkImageData > Input
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkSmartPointer< vtkImageData > Output
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...