VTK  9.6.20260613
vtkImageAlgorithm.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
37
38#ifndef vtkImageAlgorithm_h
39#define vtkImageAlgorithm_h
40
41#include "vtkAlgorithm.h"
42#include "vtkCommonExecutionModelModule.h" // For export macro
43#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
44
45VTK_ABI_NAMESPACE_BEGIN
46class vtkDataSet;
47class vtkImageData;
48
49class VTKCOMMONEXECUTIONMODEL_EXPORT VTK_MARSHALAUTO vtkImageAlgorithm : public vtkAlgorithm
50{
51public:
53 void PrintSelf(ostream& os, vtkIndent indent) override;
54
56
64 virtual void SetOutput(vtkDataObject* d);
66
74
76
84
86
92 vtkDataObject* GetInput() { return this->GetInput(0); }
95
97
103 virtual void AddInputData(int, vtkDataObject*);
105
106protected:
109
114 virtual int RequestInformation(vtkInformation* request, vtkInformationVector** inputVector,
115 vtkInformationVector* outputVector);
116
123
125
134 vtkInformationVector** inputVector, vtkInformationVector* outputVector);
135
143 virtual int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
144 vtkInformationVector* outputVector);
145
151
153
157 virtual void ExecuteData(vtkDataObject* output);
158 virtual void Execute();
160
162
166 virtual void AllocateOutputData(
167 vtkImageData* out, vtkInformation* outInfo, VTK_FUTURE_CONST int uExtent[6]);
170
175 virtual void CopyAttributeData(
176 vtkImageData* in, vtkImageData* out, vtkInformationVector** inputVector);
177
179
184 int FillOutputPortInformation(int port, vtkInformation* info) override;
185 int FillInputPortInformation(int port, vtkInformation* info) override;
187
188private:
189 vtkImageAlgorithm(const vtkImageAlgorithm&) = delete;
190 void operator=(const vtkImageAlgorithm&) = delete;
191};
192
193VTK_ABI_NAMESPACE_END
194#endif
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:166
virtual void ExecuteDataWithInformation(vtkDataObject *output, vtkInformation *outInfo)
This is a convenience method that is implemented in many subclasses instead of RequestData.
void SetInputData(vtkDataObject *)
Assign a data object as input.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void Execute()
This method is the old style execute method, provided for the sake of backwards compatibility with ol...
virtual void SetOutput(vtkDataObject *d)
Get the output data object for a port on this algorithm.
vtkDataObject * GetInput(int port)
Get a data object for one of the input port connections.
~vtkImageAlgorithm() override
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Subclasses can reimplement this method to translate the update extent requests from each output port ...
virtual int RequestUpdateTime(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual void CopyInputArrayAttributesToOutput(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Convenience method to copy the scalar type and number of components from the input data to the output...
virtual vtkImageData * AllocateOutputData(vtkDataObject *out, vtkInformation *outInfo)
Allocate the output data.
vtkDataObject * GetInput()
Get a data object for one of the input port connections.
vtkTypeBool ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Process a request from the executive.
virtual void AllocateOutputData(vtkImageData *out, vtkInformation *outInfo, VTK_FUTURE_CONST int uExtent[6])
Allocate the output data.
virtual void AddInputData(int, vtkDataObject *)
Assign a data object as input.
virtual void AddInputData(vtkDataObject *)
Assign a data object as input.
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Subclasses can reimplement this method to collect information from their inputs and set information f...
int FillInputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
vtkImageData * GetImageDataInput(int port)
Get a data object for one of the input port connections.
int FillOutputPortInformation(int port, vtkInformation *info) override
These method should be reimplemented by subclasses that have more than a single input or single outpu...
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called in response to a REQUEST_DATA request from the executive.
vtkImageData * GetOutput()
Get the output data object for a port on this algorithm.
virtual void ExecuteData(vtkDataObject *output)
This method is the old style execute method, provided for the sake of backwards compatibility with ol...
virtual void CopyAttributeData(vtkImageData *in, vtkImageData *out, vtkInformationVector **inputVector)
Copy the other point and cell data.
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)
#define vtkImageAlgorithm