VTK  9.4.20251007
vtkMarchingContourFilter.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
44
45#ifndef vtkMarchingContourFilter_h
46#define vtkMarchingContourFilter_h
47
48#include "vtkFiltersGeneralModule.h" // For export macro
50
51#include "vtkContourValues.h" // Needed for direct access to ContourValues
52
53VTK_ABI_NAMESPACE_BEGIN
55class vtkScalarTree;
56
57class VTKFILTERSGENERAL_EXPORT vtkMarchingContourFilter : public vtkPolyDataAlgorithm
58{
59public:
61 void PrintSelf(ostream& os, vtkIndent indent) override;
62
68
70
73 void SetValue(int i, double value);
74 double GetValue(int i);
75 double* GetValues();
76 void GetValues(double* contourValues);
77 void SetNumberOfContours(int number);
79 void GenerateValues(int numContours, double range[2]);
80 void GenerateValues(int numContours, double rangeStart, double rangeEnd);
82
87
89
97 vtkBooleanMacro(ComputeNormals, vtkTypeBool);
99
101
111 vtkBooleanMacro(ComputeGradients, vtkTypeBool);
113
115
120 vtkBooleanMacro(ComputeScalars, vtkTypeBool);
122
124
129 vtkBooleanMacro(UseScalarTree, vtkTypeBool);
131
133
140
146
147protected:
150
152 int FillInputPortInformation(int port, vtkInformation* info) override;
153
161
162 // special contouring for structured points
163 void StructuredPointsContour(int dim, vtkDataSet* input, vtkPolyData* output);
164 // special contouring for image data
165 void ImageContour(int dim, vtkDataSet* input, vtkPolyData* output);
166 // default if not structured data
167 void DataSetContour(vtkDataSet* input, vtkPolyData* output);
168
169private:
171 void operator=(const vtkMarchingContourFilter&) = delete;
172};
173
178inline void vtkMarchingContourFilter::SetValue(int i, double value)
179{
180 this->ContourValues->SetValue(i, value);
181}
182
187{
188 return this->ContourValues->GetValue(i);
189}
190
196{
197 return this->ContourValues->GetValues();
198}
199
205inline void vtkMarchingContourFilter::GetValues(double* contourValues)
206{
207 this->ContourValues->GetValues(contourValues);
208}
209
216{
217 this->ContourValues->SetNumberOfContours(number);
218}
219
224{
225 return this->ContourValues->GetNumberOfContours();
226}
227
232inline void vtkMarchingContourFilter::GenerateValues(int numContours, double range[2])
233{
234 this->ContourValues->GenerateValues(numContours, range);
235}
236
242 int numContours, double rangeStart, double rangeEnd)
243{
244 this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
245}
246
247VTK_ABI_NAMESPACE_END
248#endif
helper object to manage setting and generating contour values
abstract class to specify dataset behavior
Definition vtkDataSet.h:57
Abstract class in support of both point location and point insertion.
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
vtkMTimeType GetMTime() override
Modified GetMTime Because we delegate to vtkContourValues.
vtkIncrementalPointLocator * Locator
void CreateDefaultLocator()
Create default locator.
vtkIdType GetNumberOfContours()
Get the number of contours in the list of contour values.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetNumberOfContours(int number)
Set the number of contours to place into the list.
~vtkMarchingContourFilter() override
double GetValue(int i)
Get the ith contour value.
void SetValue(int i, double value)
Methods to set / get contour values.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void GenerateValues(int numContours, double range[2])
Generate numContours equally spaced contour values between specified range.
double * GetValues()
Get a pointer to an array of contour values.
void ImageContour(int dim, vtkDataSet *input, vtkPolyData *output)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void StructuredPointsContour(int dim, vtkDataSet *input, vtkPolyData *output)
void DataSetContour(vtkDataSet *input, vtkPolyData *output)
static vtkMarchingContourFilter * New()
Construct object with initial range (0,1) and single contour value of 0.0.
void SetLocator(vtkIncrementalPointLocator *locator)
Set / get a spatial locator for merging points.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:72
organize data according to scalar values (used to accelerate contouring operations)
int vtkTypeBool
Definition vtkABI.h:64
int vtkIdType
Definition vtkType.h:315
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270