VTK
vtkImageSlab.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageSlab.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 vtkImageSlab_h
32 #define vtkImageSlab_h
33 
34 #include "vtkImagingGeneralModule.h" // For export macro
36 
37 class VTKIMAGINGGENERAL_EXPORT vtkImageSlab : public vtkThreadedImageAlgorithm
38 {
39 public:
40  static vtkImageSlab *New();
42  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
45 
49  vtkSetClampMacro(Orientation, int, 0, 2);
51  this->SetOrientation(0); };
53  this->SetOrientation(1); };
55  this->SetOrientation(2); };
56  vtkGetMacro(Orientation, int);
58 
60 
64  vtkSetVector2Macro(SliceRange, int);
65  vtkGetVector2Macro(SliceRange, int);
67 
69 
73  vtkSetClampMacro(Operation, int, VTK_IMAGE_SLAB_MIN, VTK_IMAGE_SLAB_SUM);
75  this->SetOperation(VTK_IMAGE_SLAB_MIN); };
77  this->SetOperation(VTK_IMAGE_SLAB_MAX); };
79  this->SetOperation(VTK_IMAGE_SLAB_MEAN); };
81  this->SetOperation(VTK_IMAGE_SLAB_SUM); };
82  vtkGetMacro(Operation, int);
83  const char *GetOperationAsString();
85 
87 
93  vtkSetMacro(TrapezoidIntegration, vtkTypeBool);
94  vtkBooleanMacro(TrapezoidIntegration, vtkTypeBool);
95  vtkGetMacro(TrapezoidIntegration, vtkTypeBool);
97 
99 
106  vtkSetMacro(MultiSliceOutput, vtkTypeBool);
107  vtkBooleanMacro(MultiSliceOutput, vtkTypeBool);
108  vtkGetMacro(MultiSliceOutput, vtkTypeBool);
110 
112 
119  this->SetOutputScalarType(VTK_FLOAT); };
121  this->SetOutputScalarType(VTK_DOUBLE); };
123  this->SetOutputScalarType(0); };
124  vtkGetMacro(OutputScalarType, int);
126 
127 protected:
128  vtkImageSlab();
129  ~vtkImageSlab() override;
130 
132  vtkInformationVector *) override;
134  vtkInformationVector *) override;
135  void ThreadedRequestData(vtkInformation *request,
136  vtkInformationVector **inputVector,
137  vtkInformationVector *outputVector,
138  vtkImageData ***inData,
139  vtkImageData **outData, int ext[6], int id) override;
140 
141  vtkSetMacro(OutputScalarType, int);
142 
143  int Operation;
145  int SliceRange[2];
149 
150 private:
151  vtkImageSlab(const vtkImageSlab&) = delete;
152  void operator=(const vtkImageSlab&) = delete;
153 };
154 
155 #endif
void SetOperationToMin()
Set the operation to use when combining slices.
Definition: vtkImageSlab.h:74
#define VTK_IMAGE_SLAB_MAX
void SetOperationToMean()
Set the operation to use when combining slices.
Definition: vtkImageSlab.h:78
#define VTK_IMAGE_SLAB_MIN
Store vtkAlgorithm input/output information.
void SetOperationToMax()
Set the operation to use when combining slices.
Definition: vtkImageSlab.h:76
void SetOrientationToZ()
Set the slice direction: zero for x, 1 for y, 2 for z.
Definition: vtkImageSlab.h:54
#define VTK_IMAGE_SLAB_SUM
#define VTK_IMAGE_SLAB_MEAN
void SetOrientationToY()
Set the slice direction: zero for x, 1 for y, 2 for z.
Definition: vtkImageSlab.h:52
void SetOperationToSum()
Set the operation to use when combining slices.
Definition: vtkImageSlab.h:80
vtkTypeBool TrapezoidIntegration
Definition: vtkImageSlab.h:148
void SetOrientationToX()
Set the slice direction: zero for x, 1 for y, 2 for z.
Definition: vtkImageSlab.h:50
void SetOutputScalarTypeToFloat()
Set the output scalar type to float or double, to avoid potential overflow when doing a summation ope...
Definition: vtkImageSlab.h:118
vtkTypeBool MultiSliceOutput
Definition: vtkImageSlab.h:147
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:69
#define VTK_DOUBLE
Definition: vtkType.h:59
Generic filter that has one input.
combine image slices to form a slab image
Definition: vtkImageSlab.h:37
#define VTK_FLOAT
Definition: vtkType.h:58
void SetOutputScalarTypeToDouble()
Set the output scalar type to float or double, to avoid potential overflow when doing a summation ope...
Definition: vtkImageSlab.h:120
a simple class to control print indentation
Definition: vtkIndent.h:39
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Subclasses can reimplement this method to collect information from their inputs and set information f...
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.
void SetOutputScalarTypeToInputScalarType()
Set the output scalar type to float or double, to avoid potential overflow when doing a summation ope...
Definition: vtkImageSlab.h:122
Store zero or more vtkInformation instances.
int OutputScalarType
Definition: vtkImageSlab.h:146
static vtkAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.