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 =========================================================================*/
57 #ifndef vtkMarchingContourFilter_h
58 #define vtkMarchingContourFilter_h
59 
60 #include "vtkFiltersGeneralModule.h" // For export macro
61 #include "vtkPolyDataAlgorithm.h"
62 
63 #include "vtkContourValues.h" // Needed for direct access to ContourValues
64 
66 class vtkScalarTree;
67 
68 class VTKFILTERSGENERAL_EXPORT vtkMarchingContourFilter : public vtkPolyDataAlgorithm
69 {
70 public:
72  void PrintSelf(ostream& os, vtkIndent indent) override;
73 
78  static vtkMarchingContourFilter* New();
79 
81 
84  void SetValue(int i, double value);
85  double GetValue(int i);
86  double* GetValues();
87  void GetValues(double* contourValues);
88  void SetNumberOfContours(int number);
89  vtkIdType GetNumberOfContours();
90  void GenerateValues(int numContours, double range[2]);
91  void GenerateValues(int numContours, double rangeStart, double rangeEnd);
93 
97  vtkMTimeType GetMTime() override;
98 
100 
106  vtkSetMacro(ComputeNormals, vtkTypeBool);
107  vtkGetMacro(ComputeNormals, vtkTypeBool);
108  vtkBooleanMacro(ComputeNormals, vtkTypeBool);
110 
112 
120  vtkSetMacro(ComputeGradients, vtkTypeBool);
121  vtkGetMacro(ComputeGradients, vtkTypeBool);
122  vtkBooleanMacro(ComputeGradients, vtkTypeBool);
124 
126 
129  vtkSetMacro(ComputeScalars, vtkTypeBool);
130  vtkGetMacro(ComputeScalars, vtkTypeBool);
131  vtkBooleanMacro(ComputeScalars, vtkTypeBool);
133 
135 
138  vtkSetMacro(UseScalarTree, vtkTypeBool);
139  vtkGetMacro(UseScalarTree, vtkTypeBool);
140  vtkBooleanMacro(UseScalarTree, vtkTypeBool);
142 
144 
148  void SetLocator(vtkIncrementalPointLocator* locator);
149  vtkGetObjectMacro(Locator, vtkIncrementalPointLocator);
151 
156  void CreateDefaultLocator();
157 
158 protected:
160  ~vtkMarchingContourFilter() override;
161 
163  int FillInputPortInformation(int port, vtkInformation* info) override;
164 
172 
173  // special contouring for structured points
174  void StructuredPointsContour(int dim, vtkDataSet* input, vtkPolyData* output);
175  // special contouring for image data
176  void ImageContour(int dim, vtkDataSet* input, vtkPolyData* output);
177  // default if not structured data
178  void DataSetContour(vtkDataSet* input, vtkPolyData* output);
179 
180 private:
182  void operator=(const vtkMarchingContourFilter&) = delete;
183 };
184 
189 inline void vtkMarchingContourFilter::SetValue(int i, double value)
190 {
191  this->ContourValues->SetValue(i, value);
192 }
193 
198 {
199  return this->ContourValues->GetValue(i);
200 }
201 
207 {
208  return this->ContourValues->GetValues();
209 }
210 
216 inline void vtkMarchingContourFilter::GetValues(double* contourValues)
217 {
218  this->ContourValues->GetValues(contourValues);
219 }
220 
227 {
228  this->ContourValues->SetNumberOfContours(number);
229 }
230 
235 {
236  return this->ContourValues->GetNumberOfContours();
237 }
238 
243 inline void vtkMarchingContourFilter::GenerateValues(int numContours, double range[2])
244 {
245  this->ContourValues->GenerateValues(numContours, range);
246 }
247 
253  int numContours, double rangeStart, double rangeEnd)
254 {
255  this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
256 }
257 
258 #endif
helper object to manage setting and generating contour values
double GetValue(int i)
Get the ith contour value.
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
vtkIncrementalPointLocator * Locator
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkIdType GetNumberOfContours()
Get the number of contours in the list of contour values.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
void SetNumberOfContours(const int number)
Set the number of contours to place into the list.
Abstract class in support of both point location and point insertion.
void SetNumberOfContours(int number)
Set the number of contours to place into the list.
void GenerateValues(int numContours, double range[2])
Generate numContours equally spaced contour values between specified range.
int vtkIdType
Definition: vtkType.h:332
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:90
double GetValue(int i)
Get the ith contour value.
double * GetValues()
Get a pointer to an array of contour values.
static vtkPolyDataAlgorithm * New()
int vtkTypeBool
Definition: vtkABI.h:69
double * GetValues()
Return a pointer to a list of contour values.
Superclass for algorithms that produce only polydata as output.
void GenerateValues(int numContours, double range[2])
Generate numContours equally spaced contour values between specified range.
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual vtkMTimeType GetMTime()
Return this object's modified time.
generate isosurfaces/isolines from scalar values
organize data according to scalar values (used to accelerate contouring operations) ...
Definition: vtkScalarTree.h:54
void SetValue(int i, double value)
Methods to set / get contour values.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store zero or more vtkInformation instances.
int GetNumberOfContours()
Return the number of contours in the.
void SetValue(int i, double value)
Set the ith contour value.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.