VTK  9.5.20250912
vtkSurfaceNets2D.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
119#ifndef vtkSurfaceNets2D_h
120#define vtkSurfaceNets2D_h
121
122#include "vtkConstrainedSmoothingFilter.h" // Perform mesh smoothing
123#include "vtkContourValues.h" // Needed for direct access to ContourValues
124#include "vtkFiltersCoreModule.h" // For export macro
125#include "vtkPolyData.h" // To support data caching
126#include "vtkPolyDataAlgorithm.h"
127#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
128
129VTK_ABI_NAMESPACE_BEGIN
130
131class vtkImageData;
132
133class VTKFILTERSCORE_EXPORT VTK_MARSHALAUTO 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 }
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
293 vtkGetSmartPointerMacro(Smoother, vtkConstrainedSmoothingFilter);
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
342VTK_ABI_NAMESPACE_END
343#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:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
Hold a reference to a vtkObjectBase instance.
generate smoothed constours from segmented 2D image data (i.e., "label maps")
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.
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:333
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:288
#define VTK_MARSHALAUTO