VTK
vtkImageAppend.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageAppend.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 vtkImageAppend_h
30 #define vtkImageAppend_h
31 
32 #include "vtkFiltersCoreModule.h" // For export macro
34 
35 class VTKFILTERSCORE_EXPORT vtkImageAppend : public vtkThreadedImageAlgorithm
36 {
37 public:
38  static vtkImageAppend *New();
40  void PrintSelf(ostream& os, vtkIndent indent) override;
41 
48  virtual void ReplaceNthInputConnection(int idx, vtkAlgorithmOutput* input);
49 
51 
56  void SetInputData(int num, vtkDataObject *input);
57  void SetInputData(vtkDataObject *input) { this->SetInputData(0, input); };
59 
61 
66  vtkDataObject *GetInput(int num);
67  vtkDataObject *GetInput() { return this->GetInput(0); };
69 
75  int GetNumberOfInputs() { return this->GetNumberOfInputConnections(0); };
76 
78 
84  vtkSetMacro(AppendAxis, int);
85  vtkGetMacro(AppendAxis, int);
87 
89 
97  vtkSetMacro(PreserveExtents, vtkTypeBool);
98  vtkGetMacro(PreserveExtents, vtkTypeBool);
99  vtkBooleanMacro(PreserveExtents, vtkTypeBool);
101 
102 protected:
103  vtkImageAppend();
104  ~vtkImageAppend() override;
105 
108  // Array holds the AppendAxisExtent shift for each input.
109  int *Shifts;
110 
113  vtkInformationVector *) override;
114 
117  vtkInformationVector *) override;
118 
119  void ThreadedRequestData (vtkInformation* request,
120  vtkInformationVector** inputVector,
121  vtkInformationVector* outputVector,
122  vtkImageData ***inData, vtkImageData **outData,
123  int ext[6], int id) override;
124 
125 
126  // see vtkAlgorithm for docs.
127  int FillInputPortInformation(int, vtkInformation*) override;
128 
129  void InitOutput(int outExt[6], vtkImageData *outData);
130 
131  void InternalComputeInputUpdateExtent(
132  int *inExt, int *outExt, int *inWextent, int whichInput);
133 
134  // overridden to allocate all of the output arrays, not just active scalars
136  vtkInformation* outInfo,
137  int *uExtent) override;
139  vtkInformation* outInfo) override;
140 
141  // overridden to prevent shallow copies across, since we have to do it elementwise
143  vtkInformationVector** inputVector) override;
144 
145 
146 private:
147  vtkImageAppend(const vtkImageAppend&) = delete;
148  void operator=(const vtkImageAppend&) = delete;
149 };
150 
151 #endif
152 
153 
154 
155 
int GetNumberOfInputConnections(int port)
Get the number of inputs currently connected to a port.
Collects data from multiple inputs into one image.
Store vtkAlgorithm input/output information.
vtkTypeBool PreserveExtents
vtkDataObject * GetInput()
Get a data object for one of the input port connections.
void SetInputData(vtkDataObject *)
Assign a data object as input.
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Subclasses can reimplement this method to translate the update extent requests from each output port ...
Proxy object to connect input/output ports.
virtual void AllocateOutputData(vtkImageData *out, vtkInformation *outInfo, int *uExtent)
Allocate the output data.
int vtkTypeBool
Definition: vtkABI.h:69
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 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.
virtual void CopyAttributeData(vtkImageData *in, vtkImageData *out, vtkInformationVector **inputVector)
Copy the other point and cell data.
int GetNumberOfInputs()
Get the number of inputs to this filter.
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.
vtkDataObject * GetInput()
Get one input to this filter.
general representation of visualization data
Definition: vtkDataObject.h:58
void SetInputData(vtkDataObject *input)
Assign a data object as input.