VTK  9.7.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 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
23 
24 VTK_ABI_NAMESPACE_BEGIN
25 class vtkContext2D;
26 class vtkLookupTable;
27 class vtkTable;
28 
29 class VTKCHARTSCORE_EXPORT VTK_MARSHALAUTO vtkPlotSurface : public vtkPlot3D
30 {
31 public:
32  vtkTypeMacro(vtkPlotSurface, vtkPlot3D);
33  void PrintSelf(ostream& os, vtkIndent indent) override;
34  static vtkPlotSurface* New();
35 
39  bool Paint(vtkContext2D* painter) override;
40 
44  void SetInputData(vtkTable* input) override;
45 
47 
52  void SetInputData(vtkTable* input, const vtkStdString& xName, const vtkStdString& yName,
53  const vtkStdString& zName) override;
54  void SetInputData(vtkTable* input, const vtkStdString& xName, const vtkStdString& yName,
55  const vtkStdString& zName, const vtkStdString& colorName) override;
56  void SetInputData(
57  vtkTable* input, vtkIdType xColumn, vtkIdType yColumn, vtkIdType zColumn) override;
59 
66  void SetXRange(float min, float max);
67 
74  void SetYRange(float min, float max);
75 
76 protected:
78  ~vtkPlotSurface() override;
79 
83  void GenerateSurface();
84 
88  void InsertSurfaceVertex(float* data, float value, int i, int j, int& pos);
89 
93  void RescaleData();
94 
98  float ColumnToX(int columnIndex);
99 
103  float RowToY(int rowIndex);
104 
109 
114 
119 
124 
129 
134 
139 
141 
144  float XMinimum;
145  float XMaximum;
146  float YMinimum;
147  float YMaximum;
149 
155 
156 private:
157  vtkPlotSurface(const vtkPlotSurface&) = delete;
158  void operator=(const vtkPlotSurface&) = delete;
159 };
160 
161 VTK_ABI_NAMESPACE_END
162 #endif // vtkPlotSurface_h
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:27
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:363
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:59
#define VTK_MARSHALAUTO
Abstract class for 3D plots.
Definition: vtkPlot3D.h:35
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.