VTK  9.2.6
vtkMarchingContourFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkMarchingContourFilter.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=========================================================================*/
53
54#ifndef vtkMarchingContourFilter_h
55#define vtkMarchingContourFilter_h
56
57#include "vtkFiltersGeneralModule.h" // For export macro
59
60#include "vtkContourValues.h" // Needed for direct access to ContourValues
61
63class vtkScalarTree;
64
65class VTKFILTERSGENERAL_EXPORT vtkMarchingContourFilter : public vtkPolyDataAlgorithm
66{
67public:
69 void PrintSelf(ostream& os, vtkIndent indent) override;
70
76
78
81 void SetValue(int i, double value);
82 double GetValue(int i);
83 double* GetValues();
84 void GetValues(double* contourValues);
85 void SetNumberOfContours(int number);
87 void GenerateValues(int numContours, double range[2]);
88 void GenerateValues(int numContours, double rangeStart, double rangeEnd);
90
95
97
105 vtkBooleanMacro(ComputeNormals, vtkTypeBool);
107
109
119 vtkBooleanMacro(ComputeGradients, vtkTypeBool);
121
123
128 vtkBooleanMacro(ComputeScalars, vtkTypeBool);
130
132
137 vtkBooleanMacro(UseScalarTree, vtkTypeBool);
139
141
148
154
155protected:
158
160 int FillInputPortInformation(int port, vtkInformation* info) override;
161
169
170 // special contouring for structured points
171 void StructuredPointsContour(int dim, vtkDataSet* input, vtkPolyData* output);
172 // special contouring for image data
173 void ImageContour(int dim, vtkDataSet* input, vtkPolyData* output);
174 // default if not structured data
175 void DataSetContour(vtkDataSet* input, vtkPolyData* output);
176
177private:
179 void operator=(const vtkMarchingContourFilter&) = delete;
180};
181
186inline void vtkMarchingContourFilter::SetValue(int i, double value)
187{
188 this->ContourValues->SetValue(i, value);
189}
190
195{
196 return this->ContourValues->GetValue(i);
197}
198
204{
205 return this->ContourValues->GetValues();
206}
207
213inline void vtkMarchingContourFilter::GetValues(double* contourValues)
214{
215 this->ContourValues->GetValues(contourValues);
216}
217
224{
225 this->ContourValues->SetNumberOfContours(number);
226}
227
232{
233 return this->ContourValues->GetNumberOfContours();
234}
235
240inline void vtkMarchingContourFilter::GenerateValues(int numContours, double range[2])
241{
242 this->ContourValues->GenerateValues(numContours, range);
243}
244
250 int numContours, double rangeStart, double rangeEnd)
251{
252 this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
253}
254
255#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:34
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:85
organize data according to scalar values (used to accelerate contouring operations)
int vtkTypeBool
Definition vtkABI.h:69
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287