VTK
vtkImageStencil.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageStencil.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 =========================================================================*/
29 #ifndef vtkImageStencil_h
30 #define vtkImageStencil_h
31 
32 #include "vtkImagingStencilModule.h" // For export macro
34 
36 
37 class VTKIMAGINGSTENCIL_EXPORT vtkImageStencil : public vtkThreadedImageAlgorithm
38 {
39 public:
40  static vtkImageStencil *New();
42  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
45 
50  virtual void SetStencilData(vtkImageStencilData *stencil);
51  vtkImageStencilData *GetStencil();
53 
58  {
59  this->SetInputConnection(2, outputPort);
60  }
61 
63 
66  vtkSetMacro(ReverseStencil, vtkTypeBool);
67  vtkBooleanMacro(ReverseStencil, vtkTypeBool);
68  vtkGetMacro(ReverseStencil, vtkTypeBool);
70 
72 
77  virtual void SetBackgroundInputData(vtkImageData *input);
78  vtkImageData *GetBackgroundInput();
80 
82 
85  void SetBackgroundValue(double val) {
86  this->SetBackgroundColor(val,val,val,val); };
87  double GetBackgroundValue() {
88  return this->BackgroundColor[0]; };
90 
92 
96  vtkSetVector4Macro(BackgroundColor, double);
97  vtkGetVector4Macro(BackgroundColor, double);
99 
100 protected:
101  vtkImageStencil();
102  ~vtkImageStencil() override;
103 
104  void ThreadedRequestData(vtkInformation *request,
105  vtkInformationVector **inputVector,
106  vtkInformationVector *outputVector,
107  vtkImageData ***inData, vtkImageData **outData,
108  int extent[6], int id) override;
109 
111  double BackgroundColor[4];
112 
113  int FillInputPortInformation(int, vtkInformation*) override;
114 
115 private:
116  vtkImageStencil(const vtkImageStencil&) = delete;
117  void operator=(const vtkImageStencil&) = delete;
118 };
119 
120 #endif
Store vtkAlgorithm input/output information.
Proxy object to connect input/output ports.
int vtkTypeBool
Definition: vtkABI.h:69
Generic filter that has one input.
a simple class to control print indentation
Definition: vtkIndent.h:39
efficient description of an image stencil
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
void SetBackgroundValue(double val)
Set the default output value to use when the second input is not set.
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
virtual void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int threadId)
If the subclass does not define an Execute method, then the task will be broken up, multiple threads will be spawned, and each thread will call this method.
vtkTypeBool ReverseStencil
combine images via a cookie-cutter operation
int FillInputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
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.
void SetStencilConnection(vtkAlgorithmOutput *outputPort)
Specify the stencil to use.
double GetBackgroundValue()
Set the default output value to use when the second input is not set.