VTK  9.3.1
vtkImageThresholdConnectivity.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
24 #ifndef vtkImageThresholdConnectivity_h
25 #define vtkImageThresholdConnectivity_h
26 
27 #include "vtkImageAlgorithm.h"
28 #include "vtkImagingMorphologicalModule.h" // For export macro
29 
30 VTK_ABI_NAMESPACE_BEGIN
31 class vtkPoints;
32 class vtkImageData;
34 
35 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageThresholdConnectivity : public vtkImageAlgorithm
36 {
37 public:
40  void PrintSelf(ostream& os, vtkIndent indent) override;
41 
43 
47  void SetSeedPoints(vtkPoints* points);
48  vtkGetObjectMacro(SeedPoints, vtkPoints);
50 
54  void ThresholdByUpper(double thresh);
55 
59  void ThresholdByLower(double thresh);
60 
65  void ThresholdBetween(double lower, double upper);
66 
68 
71  vtkSetMacro(ReplaceIn, vtkTypeBool);
72  vtkGetMacro(ReplaceIn, vtkTypeBool);
73  vtkBooleanMacro(ReplaceIn, vtkTypeBool);
75 
77 
80  void SetInValue(double val);
81  vtkGetMacro(InValue, double);
83 
85 
88  vtkSetMacro(ReplaceOut, vtkTypeBool);
89  vtkGetMacro(ReplaceOut, vtkTypeBool);
90  vtkBooleanMacro(ReplaceOut, vtkTypeBool);
92 
94 
97  void SetOutValue(double val);
98  vtkGetMacro(OutValue, double);
100 
102 
105  vtkGetMacro(UpperThreshold, double);
106  vtkGetMacro(LowerThreshold, double);
108 
110 
113  vtkSetVector2Macro(SliceRangeX, int);
114  vtkGetVector2Macro(SliceRangeX, int);
115  vtkSetVector2Macro(SliceRangeY, int);
116  vtkGetVector2Macro(SliceRangeY, int);
117  vtkSetVector2Macro(SliceRangeZ, int);
118  vtkGetVector2Macro(SliceRangeZ, int);
120 
122 
126  virtual void SetStencilData(vtkImageStencilData* stencil);
127  vtkImageStencilData* GetStencil();
129 
131 
135  vtkSetMacro(ActiveComponent, int);
136  vtkGetMacro(ActiveComponent, int);
138 
140 
146  vtkSetVector3Macro(NeighborhoodRadius, double);
147  vtkGetVector3Macro(NeighborhoodRadius, double);
149 
151 
155  vtkSetClampMacro(NeighborhoodFraction, double, 0.0, 1.0);
156  vtkGetMacro(NeighborhoodFraction, double);
158 
162  vtkMTimeType GetMTime() override;
163 
165 
169  vtkGetMacro(NumberOfInVoxels, int);
171 
172 protected:
174  ~vtkImageThresholdConnectivity() override;
175 
178  double InValue;
179  double OutValue;
182 
183  double NeighborhoodRadius[3];
185 
187 
188  int SliceRangeX[2];
189  int SliceRangeY[2];
190  int SliceRangeZ[2];
191 
193 
195 
197 
198  void ComputeInputUpdateExtent(int inExt[6], int outExt[6]);
199 
200  int FillInputPortInformation(int port, vtkInformation* info) override;
203 
204 private:
206  void operator=(const vtkImageThresholdConnectivity&) = delete;
207 };
208 
209 VTK_ABI_NAMESPACE_END
210 #endif
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Subclasses can reimplement this method to translate the update extent requests from each output port ...
int vtkTypeBool
Definition: vtkABI.h:64
a simple class to control print indentation
Definition: vtkIndent.h:28
efficient description of an image stencil
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
virtual vtkMTimeType GetMTime()
Return this object's modified time.
int FillInputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
Generic algorithm superclass for image algs.
Store zero or more vtkInformation instances.
static vtkAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called in response to a REQUEST_DATA request from the executive.
represent and manipulate 3D points
Definition: vtkPoints.h:28