VTK  9.3.0
vtkImageExport.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
23#ifndef vtkImageExport_h
24#define vtkImageExport_h
25
26#include "vtkIOImageModule.h" // For export macro
27#include "vtkImageAlgorithm.h"
28
29VTK_ABI_NAMESPACE_BEGIN
30class VTKIOIMAGE_EXPORT vtkImageExport : public vtkImageAlgorithm
31{
32public:
35 void PrintSelf(ostream& os, vtkIndent indent) override;
36
41
43
47 void GetDataDimensions(int* ptr);
49 {
50 this->GetDataDimensions(this->DataDimensions);
51 return this->DataDimensions;
52 }
54
61
68 {
69 return vtkImageScalarTypeNameMacro(this->GetDataScalarType());
70 }
71
73
77 void GetDataExtent(int* ptr);
78 double* GetDataSpacing() VTK_SIZEHINT(3);
79 void GetDataSpacing(double* ptr);
80 double* GetDataOrigin() VTK_SIZEHINT(3);
81 void GetDataOrigin(double* ptr);
82 double* GetDataDirection() VTK_SIZEHINT(9);
83 void GetDataDirection(double* ptr);
85
89 vtkImageData* GetInput();
90
92
100 vtkBooleanMacro(ImageLowerLeft, vtkTypeBool);
101 vtkGetMacro(ImageLowerLeft, vtkTypeBool);
102 vtkSetMacro(ImageLowerLeft, vtkTypeBool);
104
106
111 void SetExportVoidPointer(void*);
112 void* GetExportVoidPointer() { return this->ExportVoidPointer; }
114
116
121 void Export() { this->Export(this->ExportVoidPointer); }
122 virtual void Export(void*);
124
133
138
140
144 typedef void (*UpdateInformationCallbackType)(void*);
145 typedef int (*PipelineModifiedCallbackType)(void*);
146 typedef int* (*WholeExtentCallbackType)(void*);
147 typedef double* (*SpacingCallbackType)(void*);
148 typedef double* (*OriginCallbackType)(void*);
149 typedef double* (*DirectionCallbackType)(void*);
150 typedef const char* (*ScalarTypeCallbackType)(void*);
151 typedef int (*NumberOfComponentsCallbackType)(void*);
152 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
153 typedef void (*UpdateDataCallbackType)(void*);
154 typedef int* (*DataExtentCallbackType)(void*);
155 typedef void* (*BufferPointerCallbackType)(void*);
157
159
162 UpdateInformationCallbackType GetUpdateInformationCallback() const;
163 PipelineModifiedCallbackType GetPipelineModifiedCallback() const;
164 WholeExtentCallbackType GetWholeExtentCallback() const;
165 SpacingCallbackType GetSpacingCallback() const;
166 OriginCallbackType GetOriginCallback() const;
167 DirectionCallbackType GetDirectionCallback() const;
168 ScalarTypeCallbackType GetScalarTypeCallback() const;
169 NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const;
170 PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const;
171 UpdateDataCallbackType GetUpdateDataCallback() const;
172 DataExtentCallbackType GetDataExtentCallback() const;
173 BufferPointerCallbackType GetBufferPointerCallback() const;
175
176protected:
178 ~vtkImageExport() override;
179
180 // This is called by the superclass.
182 vtkInformationVector* outputVector) override;
183
186 virtual void UpdateDataCallback();
187 virtual int* WholeExtentCallback();
188 virtual double* SpacingCallback();
189 virtual double* OriginCallback();
190 virtual double* DirectionCallback();
191 virtual const char* ScalarTypeCallback();
194 virtual int* DataExtentCallback();
195 virtual void* BufferPointerCallback();
196
198 int DataDimensions[3];
200
202
203private:
204 vtkImageExport(const vtkImageExport&) = delete;
205 void operator=(const vtkImageExport&) = delete;
206
207 static void UpdateInformationCallbackFunction(void*);
208 static int PipelineModifiedCallbackFunction(void*);
209 static int* WholeExtentCallbackFunction(void*);
210 static double* SpacingCallbackFunction(void*);
211 static double* OriginCallbackFunction(void*);
212 static double* DirectionCallbackFunction(void*);
213 static const char* ScalarTypeCallbackFunction(void*);
214 static int NumberOfComponentsCallbackFunction(void*);
215 static void PropagateUpdateExtentCallbackFunction(void*, int*);
216 static void UpdateDataCallbackFunction(void*);
217 static int* DataExtentCallbackFunction(void*);
218 static void* BufferPointerCallbackFunction(void*);
219
222};
223
224VTK_ABI_NAMESPACE_END
225#endif
Superclass for all sources, filters, and sinks in VTK.
vtkInformation * GetInputInformation()
Equivalent to GetInputInformation(0, 0)
vtkAlgorithm * GetInputAlgorithm()
Equivalent to GetInputAlgorithm(0, 0).
Generic algorithm superclass for image algs.
topologically and geometrically regular array of data
Export VTK images to third-party systems.
void * GetPointerToData()
An alternative to Export(): Use with caution.
WholeExtentCallbackType GetWholeExtentCallback() const
Get pointers to the pipeline interface callbacks.
DataExtentCallbackType GetDataExtentCallback() const
Get pointers to the pipeline interface callbacks.
virtual int * DataExtentCallback()
int GetDataNumberOfScalarComponents()
Get the number of scalar components of the data.
NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const
Get pointers to the pipeline interface callbacks.
int GetDataScalarType()
Get the scalar type of the data.
vtkTypeBool ImageLowerLeft
virtual void Export(void *)
The main interface: update the pipeline and export the image to the memory pointed to by SetExportVoi...
BufferPointerCallbackType GetBufferPointerCallback() const
Get pointers to the pipeline interface callbacks.
PipelineModifiedCallbackType GetPipelineModifiedCallback() const
Get pointers to the pipeline interface callbacks.
const char * GetDataScalarTypeAsString()
PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const
Get pointers to the pipeline interface callbacks.
OriginCallbackType GetOriginCallback() const
Get pointers to the pipeline interface callbacks.
virtual int NumberOfComponentsCallback()
virtual double * OriginCallback()
virtual double * SpacingCallback()
UpdateDataCallbackType GetUpdateDataCallback() const
Get pointers to the pipeline interface callbacks.
static vtkImageExport * New()
ScalarTypeCallbackType GetScalarTypeCallback() const
Get pointers to the pipeline interface callbacks.
SpacingCallbackType GetSpacingCallback() const
Get pointers to the pipeline interface callbacks.
virtual int * WholeExtentCallback()
vtkIdType GetDataMemorySize()
Get the number of bytes required for the output C array.
virtual void * BufferPointerCallback()
int * GetDataExtent()
Get miscellaneous additional information about the data.
void Export()
The main interface: update the pipeline and export the image to the memory pointed to by SetExportVoi...
int * GetDataDimensions()
Get the (x,y,z) index dimensions of the data.
virtual double * DirectionCallback()
~vtkImageExport() override
virtual void UpdateDataCallback()
vtkMTimeType LastPipelineMTime
virtual void PropagateUpdateExtentCallback(int *)
virtual const char * ScalarTypeCallback()
void GetDataDimensions(int *ptr)
Get the (x,y,z) index dimensions of the data.
DirectionCallbackType GetDirectionCallback() const
Get pointers to the pipeline interface callbacks.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called in response to a REQUEST_DATA request from the executive.
UpdateInformationCallbackType GetUpdateInformationCallback() const
Get pointers to the pipeline interface callbacks.
void * GetCallbackUserData()
Get the user data that should be passed to the callback functions.
virtual int PipelineModifiedCallback()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void UpdateInformationCallback()
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int vtkTypeBool
Definition vtkABI.h:64
int vtkIdType
Definition vtkType.h:315
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270
#define VTK_SIZEHINT(...)