VTK  9.2.6
vtkSurfaceNets2D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkSurfaceNets2D.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
121
122#ifndef vtkSurfaceNets2D_h
123#define vtkSurfaceNets2D_h
124
125#include "vtkConstrainedSmoothingFilter.h" // Perform mesh smoothing
126#include "vtkContourValues.h" // Needed for direct access to ContourValues
127#include "vtkFiltersCoreModule.h" // For export macro
128#include "vtkPolyData.h" // To support data caching
129#include "vtkPolyDataAlgorithm.h"
130
131class vtkImageData;
132
133class VTKFILTERSCORE_EXPORT vtkSurfaceNets2D : public vtkPolyDataAlgorithm
134{
135public:
137
142 void PrintSelf(ostream& os, vtkIndent indent) override;
144
150
152
162 void SetValue(int i, double value) { this->Labels->SetValue(i, value); }
163 void SetLabel(int i, double value) { this->Labels->SetValue(i, value); }
165
167
170 double GetValue(int i) { return this->Labels->GetValue(i); }
171 double GetLabel(int i) { return this->Labels->GetValue(i); }
173
175
179 double* GetValues() { return this->Labels->GetValues(); }
180 double* GetLabels() { return this->Labels->GetValues(); }
182
184
189 void GetValues(double* contourValues) { this->Labels->GetValues(contourValues); }
190 void GetLabels(double* contourValues) { this->Labels->GetValues(contourValues); }
192
194
201 void SetNumberOfLabels(int number) { this->Labels->SetNumberOfContours(number); }
202 void SetNumberOfContours(int number) { this->Labels->SetNumberOfContours(number); }
204
206
209 vtkIdType GetNumberOfLabels() { return this->Labels->GetNumberOfContours(); }
210 vtkIdType GetNumberOfContours() { return this->Labels->GetNumberOfContours(); }
212
214
218 void GenerateLabels(int numLabels, double range[2])
219 {
220 this->Labels->GenerateValues(numLabels, range);
221 }
222 void GenerateValues(int numContours, double range[2])
223 {
224 this->Labels->GenerateValues(numContours, range);
225 }
226 void GenerateLabels(int numLabels, double rangeStart, double rangeEnd)
227 {
228 this->Labels->GenerateValues(numLabels, rangeStart, rangeEnd);
229 }
230 void GenerateValues(int numContours, double rangeStart, double rangeEnd)
231 {
232 this->Labels->GenerateValues(numContours, rangeStart, rangeEnd);
233 }
234
235
237
245 vtkSetMacro(ComputeScalars, bool);
246 vtkGetMacro(ComputeScalars, bool);
247 vtkBooleanMacro(ComputeScalars, bool);
249
251
261 vtkSetMacro(BackgroundLabel, double);
262 vtkGetMacro(BackgroundLabel, double);
264
266
270 vtkSetMacro(ArrayComponent, int);
271 vtkGetMacro(ArrayComponent, int);
273
275
280 vtkSetMacro(Smoothing, bool);
281 vtkGetMacro(Smoothing, bool);
282 vtkBooleanMacro(Smoothing, bool);
284
286
295
297
307 vtkSetMacro(DataCaching, bool);
308 vtkGetMacro(DataCaching, bool);
309 vtkBooleanMacro(DataCaching, bool);
311
312protected:
314 ~vtkSurfaceNets2D() override = default;
315
317 int FillInputPortInformation(int port, vtkInformation* info) override;
318
323
326
327 // Support data caching of the extracted surface nets. This is used to
328 // avoid repeated surface extraction when only smoothing filter
329 // parameters are modified.
336
337private:
338 vtkSurfaceNets2D(const vtkSurfaceNets2D&) = delete;
339 void operator=(const vtkSurfaceNets2D&) = delete;
340};
341
342#endif
object to represent cell connectivity
adjust point positions using constrained smoothing
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:91
Hold a reference to a vtkObjectBase instance.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiation, printing, and type information.
void GenerateLabels(int numLabels, double rangeStart, double rangeEnd)
Generate numLabels equally spaced labels between the specified range.
void SetNumberOfLabels(int number)
Set the number of labels to place into the list.
vtkMTimeType GetMTime() override
The modified time is also a function of the label values and the smoothing filter.
vtkSmartPointer< vtkConstrainedSmoothingFilter > Smoother
vtkSmartPointer< vtkContourValues > Labels
vtkSmartPointer< vtkPolyData > GeometryCache
void GetValues(double *contourValues)
Fill a supplied list with label values.
vtkTimeStamp SmoothingTime
void GenerateValues(int numContours, double range[2])
Generate numLabels equally spaced labels between the specified range.
void SetLabel(int i, double value)
Set a particular label value at label number i.
vtkGetSmartPointerMacro(Smoother, vtkConstrainedSmoothingFilter)
Get the instance of vtkConstrainedSmoothingFilter used to smooth the extracted surface net.
double * GetLabels()
Get a pointer to an array of labels.
~vtkSurfaceNets2D() override=default
double GetLabel(int i)
Get the ith label value.
double GetValue(int i)
Get the ith label value.
void GenerateLabels(int numLabels, double range[2])
Generate numLabels equally spaced labels between the specified range.
void SetNumberOfContours(int number)
Set the number of labels to place into the list.
void GetLabels(double *contourValues)
Fill a supplied list with label values.
double * GetValues()
Get a pointer to an array of labels.
static vtkSurfaceNets2D * New()
Standard methods for instantiation, printing, and type information.
void CacheData(vtkPolyData *pd, vtkCellArray *ca)
void GenerateValues(int numContours, double rangeStart, double rangeEnd)
Generate numLabels equally spaced labels between the specified range.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkIdType GetNumberOfLabels()
Get the number of labels in the list of label values.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkIdType GetNumberOfContours()
Get the number of labels in the list of label values.
vtkSmartPointer< vtkCellArray > StencilsCache
void SetValue(int i, double value)
Set a particular label value at label number i.
record modification and/or execution time
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287