VTK  9.3.0
vtkContourFilter.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
42#ifndef vtkContourFilter_h
43#define vtkContourFilter_h
44
45#include "vtkFiltersCoreModule.h" // For export macro
47
48#include "vtkContourValues.h" // Needed for inline methods
49
50VTK_ABI_NAMESPACE_BEGIN
51
54class vtkContourGrid;
60class vtkScalarTree;
63
64class VTKFILTERSCORE_EXPORT vtkContourFilter : public vtkPolyDataAlgorithm
65{
66public:
68 void PrintSelf(ostream& os, vtkIndent indent) override;
69
75
77
80 void SetValue(int i, double value);
81 double GetValue(int i);
82 double* GetValues();
83 void GetValues(double* contourValues);
84 void SetNumberOfContours(int number);
85 vtkIdType GetNumberOfContours();
86 void GenerateValues(int numContours, double range[2]);
87 void GenerateValues(int numContours, double rangeStart, double rangeEnd);
89
94
96
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
139 vtkSetMacro(UseScalarTree, vtkTypeBool);
140 vtkGetMacro(UseScalarTree, vtkTypeBool);
141 vtkBooleanMacro(UseScalarTree, vtkTypeBool);
143
145
149 vtkGetObjectMacro(ScalarTree, vtkScalarTree);
151
153
158 vtkGetObjectMacro(Locator, vtkIncrementalPointLocator);
160
166
168
172 vtkSetMacro(ArrayComponent, int);
173 vtkGetMacro(ArrayComponent, int);
175
177
184 vtkSetMacro(GenerateTriangles, vtkTypeBool);
185 vtkGetMacro(GenerateTriangles, vtkTypeBool);
186 vtkBooleanMacro(GenerateTriangles, vtkTypeBool);
188
190
195 vtkSetMacro(OutputPointsPrecision, int);
196 vtkGetMacro(OutputPointsPrecision, int);
198
200
208 vtkSetMacro(FastMode, bool);
209 vtkGetMacro(FastMode, bool);
210 vtkBooleanMacro(FastMode, bool);
212
213protected:
216
218
220 vtkInformationVector* outputVector) override;
222 int FillInputPortInformation(int port, vtkInformation* info) override;
223
235
245
247 vtkObject* caller, unsigned long eid, void* clientData, void* callData);
248
249private:
250 vtkContourFilter(const vtkContourFilter&) = delete;
251 void operator=(const vtkContourFilter&) = delete;
252};
253
258inline void vtkContourFilter::SetValue(int i, double value)
259{
260 this->ContourValues->SetValue(i, value);
261}
262
266inline double vtkContourFilter::GetValue(int i)
267{
268 return this->ContourValues->GetValue(i);
269}
270
276{
277 return this->ContourValues->GetValues();
278}
279
285inline void vtkContourFilter::GetValues(double* contourValues)
286{
287 this->ContourValues->GetValues(contourValues);
288}
289
296{
297 this->ContourValues->SetNumberOfContours(number);
298}
299
304{
305 return this->ContourValues->GetNumberOfContours();
306}
307
312inline void vtkContourFilter::GenerateValues(int numContours, double range[2])
313{
314 this->ContourValues->GenerateValues(numContours, range);
315}
316
321inline void vtkContourFilter::GenerateValues(int numContours, double rangeStart, double rangeEnd)
322{
323 this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
324}
325
326VTK_ABI_NAMESPACE_END
327#endif
supports function callbacks
fast generation of isosurface from 3D linear cells
generate isosurfaces/isolines from scalar values
vtkNew< vtkContourValues > ContourValues
void SetLocator(vtkIncrementalPointLocator *locator)
Set / get a spatial locator for merging points.
vtkTypeBool ComputeNormals
void ReportReferences(vtkGarbageCollector *) override
double GetValue(int i)
Get the ith contour value.
vtkTypeBool UseScalarTree
vtkNew< vtkRectilinearSynchronizedTemplates > RectilinearSynchronizedTemplates
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMTimeType GetMTime() override
Modified GetMTime Because we delegate to vtkContourValues.
vtkNew< vtkSynchronizedTemplates3D > SynchronizedTemplates3D
vtkNew< vtkGridSynchronizedTemplates3D > GridSynchronizedTemplates
vtkNew< vtkFlyingEdges3D > FlyingEdges3D
void SetNumberOfContours(int number)
Set the number of contours to place into the list.
vtkNew< vtkCallbackCommand > InternalProgressCallbackCommand
vtkTypeBool ComputeScalars
vtkIdType GetNumberOfContours()
Get the number of contours in the list of contour values.
void CreateDefaultLocator()
Create default locator.
void GenerateValues(int numContours, double range[2])
Generate numContours equally spaced contour values between specified range.
vtkTypeBool ComputeGradients
vtkIncrementalPointLocator * Locator
void SetValue(int i, double value)
Methods to set / get contour values.
virtual void SetScalarTree(vtkScalarTree *)
Enable the use of a scalar tree to accelerate contour extraction.
static vtkContourFilter * New()
Construct object with initial range (0,1) and single contour value of 0.0.
vtkNew< vtkSynchronizedTemplates2D > SynchronizedTemplates2D
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
~vtkContourFilter() override
static void InternalProgressCallbackFunction(vtkObject *caller, unsigned long eid, void *clientData, void *callData)
vtkTypeBool GenerateTriangles
vtkScalarTree * ScalarTree
double * GetValues()
Get a pointer to an array of contour values.
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkNew< vtkContour3DLinearGrid > Contour3DLinearGrid
vtkNew< vtkFlyingEdges2D > FlyingEdges2D
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
vtkNew< vtkContourGrid > ContourGrid
generate isosurfaces/isolines from scalar values (specialized for unstructured grids)
double * GetValues()
Return a pointer to a list of contour values.
int GetNumberOfContours()
Return the number of contours in the.
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.
void SetValue(int i, double value)
Set the ith contour value.
double GetValue(int i)
Get the ith contour value.
generate isoline(s) from a structured points (image) dataset
generate isosurface from 3D image data (volume)
Detect and break reference loops.
generate isosurface from structured grids
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.
Allocate and hold a VTK object.
Definition vtkNew.h:51
abstract base class for most VTK objects
Definition vtkObject.h:49
Superclass for algorithms that produce only polydata as output.
generate isosurface from rectilinear grid
organize data according to scalar values (used to accelerate contouring operations)
generate isoline(s) from a structured points set
generate isosurface from structured points
int vtkTypeBool
Definition vtkABI.h:64
int vtkIdType
Definition vtkType.h:315
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270