VTK  9.3.1
vtkPlotSurface.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 
16 #ifndef vtkPlotSurface_h
17 #define vtkPlotSurface_h
18 
19 #include "vtkChartsCoreModule.h" // For export macro
20 #include "vtkNew.h" // For vtkNew ivar
21 #include "vtkPlot3D.h"
22 
23 VTK_ABI_NAMESPACE_BEGIN
24 class vtkContext2D;
25 class vtkLookupTable;
26 class vtkTable;
27 
28 class VTKCHARTSCORE_EXPORT vtkPlotSurface : public vtkPlot3D
29 {
30 public:
31  vtkTypeMacro(vtkPlotSurface, vtkPlot3D);
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33  static vtkPlotSurface* New();
34 
38  bool Paint(vtkContext2D* painter) override;
39 
43  void SetInputData(vtkTable* input) override;
44 
46 
51  void SetInputData(vtkTable* input, const vtkStdString& xName, const vtkStdString& yName,
52  const vtkStdString& zName) override;
53  void SetInputData(vtkTable* input, const vtkStdString& xName, const vtkStdString& yName,
54  const vtkStdString& zName, const vtkStdString& colorName) override;
55  void SetInputData(
56  vtkTable* input, vtkIdType xColumn, vtkIdType yColumn, vtkIdType zColumn) override;
58 
65  void SetXRange(float min, float max);
66 
73  void SetYRange(float min, float max);
74 
75 protected:
77  ~vtkPlotSurface() override;
78 
82  void GenerateSurface();
83 
87  void InsertSurfaceVertex(float* data, float value, int i, int j, int& pos);
88 
92  void RescaleData();
93 
97  float ColumnToX(int columnIndex);
98 
102  float RowToY(int rowIndex);
103 
108 
113 
118 
123 
128 
133 
138 
140 
143  float XMinimum;
144  float XMaximum;
145  float YMinimum;
146  float YMaximum;
148 
154 
155 private:
156  vtkPlotSurface(const vtkPlotSurface&) = delete;
157  void operator=(const vtkPlotSurface&) = delete;
158 };
159 
160 VTK_ABI_NAMESPACE_END
161 #endif // vtkPlotSurface_h
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:28
virtual bool Paint(vtkContext2D *painter)
Paint event for the item, called whenever the item needs to be drawn.
float XMinimum
user-defined data ranges
map scalar values into colors via a lookup table
float XMaximum
user-defined data ranges
float YMaximum
user-defined data ranges
int vtkIdType
Definition: vtkType.h:315
vtkNew< vtkPoints > Surface
Surface to render.
3D surface plot.
vtkTable * InputTable
The input table used to generate the surface.
vtkIdType NumberOfVertices
The number of vertices in the surface.
float YMinimum
user-defined data ranges
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkIdType NumberOfColumns
The number of columns in the input table.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:49
vtkNew< vtkLookupTable > LookupTable
The lookup table used to color the surface by height (Z dimension).
int ColorComponents
The number of components used to color the surface.
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkIdType NumberOfRows
The number of rows in the input table.
virtual void SetInputData(vtkTable *input)
Set the input to the plot.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:58
Abstract class for 3D plots.
Definition: vtkPlot3D.h:34
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
#define max(a, b)
bool DataHasBeenRescaled
true if user-defined data scaling has already been applied, false otherwise.