VTK  9.6.20260613
vtkImageAnisotropicDiffusion3D.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
31
32#ifndef vtkImageAnisotropicDiffusion3D_h
33#define vtkImageAnisotropicDiffusion3D_h
34
36#include "vtkImagingGeneralModule.h" // For export macro
37
38VTK_ABI_NAMESPACE_BEGIN
39class VTKIMAGINGGENERAL_EXPORT vtkImageAnisotropicDiffusion3D : public vtkImageSpatialAlgorithm
40{
41public:
44 void PrintSelf(ostream& os, vtkIndent indent) override;
45
52 void SetNumberOfIterations(int num);
53
55
58 vtkGetMacro(NumberOfIterations, int);
60
62
69 vtkSetMacro(DiffusionThreshold, double);
70 vtkGetMacro(DiffusionThreshold, double);
72
74
77 vtkSetMacro(DiffusionFactor, double);
78 vtkGetMacro(DiffusionFactor, double);
80
82
85 vtkSetMacro(Faces, vtkTypeBool);
86 vtkGetMacro(Faces, vtkTypeBool);
87 vtkBooleanMacro(Faces, vtkTypeBool);
88 vtkSetMacro(Edges, vtkTypeBool);
89 vtkGetMacro(Edges, vtkTypeBool);
90 vtkBooleanMacro(Edges, vtkTypeBool);
91 vtkSetMacro(Corners, vtkTypeBool);
92 vtkGetMacro(Corners, vtkTypeBool);
93 vtkBooleanMacro(Corners, vtkTypeBool);
95
97
104
105protected:
108
112 // to determine which neighbors to diffuse
116 // What threshold to use
118
120 vtkInformationVector* outputVector, vtkImageData*** inData, vtkImageData** outData,
121 VTK_FUTURE_CONST int outExt[6], int id) override;
122 void Iterate(vtkImageData* in, vtkImageData* out, double ar0, double ar1, double ar2,
123 VTK_FUTURE_CONST int* coreExtent, int count);
124
125private:
127 void operator=(const vtkImageAnisotropicDiffusion3D&) = delete;
128};
129
130VTK_ABI_NAMESPACE_END
131#endif
static vtkImageAnisotropicDiffusion3D * New()
void Iterate(vtkImageData *in, vtkImageData *out, double ar0, double ar1, double ar2, VTK_FUTURE_CONST int *coreExtent, int count)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetNumberOfIterations(int num)
This method sets the number of iterations which also affects the input neighborhood needed to compute...
~vtkImageAnisotropicDiffusion3D() override=default
void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, VTK_FUTURE_CONST int outExt[6], int id) override
If the subclass does not define an Execute method, then the task will be broken up,...
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.
int vtkTypeBool
Definition vtkABI.h:64