VTK
vtkImageResize.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageResize.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 =========================================================================*/
31 #ifndef vtkImageResize_h
32 #define vtkImageResize_h
33 
34 #include "vtkImagingCoreModule.h" // For export macro
36 
38 
39 class VTKIMAGINGCORE_EXPORT vtkImageResize : public vtkThreadedImageAlgorithm
40 {
41 public:
42  static vtkImageResize *New();
44  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
45 
46  enum
47  {
50  MAGNIFICATION_FACTORS
51  };
52 
54 
60  vtkSetClampMacro(ResizeMethod, int, OUTPUT_DIMENSIONS, MAGNIFICATION_FACTORS);
61  vtkGetMacro(ResizeMethod, int);
63  this->SetResizeMethod(OUTPUT_DIMENSIONS); }
65  this->SetResizeMethod(OUTPUT_SPACING); }
67  this->SetResizeMethod(MAGNIFICATION_FACTORS); }
68  virtual const char *GetResizeMethodAsString();
70 
72 
77  vtkSetVector3Macro(OutputDimensions, int);
78  vtkGetVector3Macro(OutputDimensions, int);
80 
82 
87  vtkSetVector3Macro(OutputSpacing, double);
88  vtkGetVector3Macro(OutputSpacing, double);
90 
92 
97  vtkSetVector3Macro(MagnificationFactors, double);
98  vtkGetVector3Macro(MagnificationFactors, double);
100 
102 
111  vtkSetMacro(Border, int);
112  vtkBooleanMacro(Border, int);
113  vtkGetMacro(Border, int);
115 
117 
121  vtkSetMacro(Cropping, int);
122  vtkBooleanMacro(Cropping, int);
123  vtkGetMacro(Cropping, int);
125 
127 
132  vtkSetVector6Macro(CroppingRegion, double);
133  vtkGetVector6Macro(CroppingRegion, double);
135 
137 
140  vtkSetMacro(Interpolate, int);
141  vtkBooleanMacro(Interpolate, int);
142  vtkGetMacro(Interpolate, int);
144 
146 
149  virtual void SetInterpolator(vtkAbstractImageInterpolator *sampler);
150  virtual vtkAbstractImageInterpolator *GetInterpolator();
152 
156  vtkMTimeType GetMTime() VTK_OVERRIDE;
157 
158 protected:
159  vtkImageResize();
160  ~vtkImageResize() VTK_OVERRIDE;
161 
162  virtual vtkAbstractImageInterpolator *GetInternalInterpolator();
163 
164  int RequestInformation(vtkInformation *, vtkInformationVector **,
165  vtkInformationVector *) VTK_OVERRIDE;
166  int RequestUpdateExtent(vtkInformation *, vtkInformationVector **,
167  vtkInformationVector *) VTK_OVERRIDE;
168  int RequestData(vtkInformation *, vtkInformationVector **,
169  vtkInformationVector *) VTK_OVERRIDE;
170  void ThreadedRequestData(vtkInformation *request,
171  vtkInformationVector **inputVector,
172  vtkInformationVector *outputVector,
173  vtkImageData ***inData,
174  vtkImageData **outData, int ext[6], int id) VTK_OVERRIDE;
175 
176  int ResizeMethod;
177  int OutputDimensions[3];
178  double OutputSpacing[3];
179  double MagnificationFactors[3];
180  int Border;
181  int Cropping;
182  double CroppingRegion[6];
183 
184  double IndexStretch[3];
185  double IndexTranslate[3];
186 
189  int Interpolate;
190 
191 private:
192  vtkImageResize(const vtkImageResize&) VTK_DELETE_FUNCTION;
193  void operator=(const vtkImageResize&) VTK_DELETE_FUNCTION;
194 };
195 
196 #endif
interpolate data values from images
void SetResizeMethodToMagnificationFactors()
The resizing method to use.
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:300
Generic filter that has one input.
a simple class to control print indentation
Definition: vtkIndent.h:33
topologically and geometrically regular array of data
Definition: vtkImageData.h:39
virtual vtkMTimeType GetMTime()
Return this object's modified time.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void SetResizeMethodToOutputSpacing()
The resizing method to use.
void SetResizeMethodToOutputDimensions()
The resizing method to use.
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.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
High-quality image resizing filter.