VTK  9.2.6
vtkImageExport.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkImageExport.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=========================================================================*/
44#ifndef vtkImageExport_h
45#define vtkImageExport_h
46
47#include "vtkIOImageModule.h" // For export macro
48#include "vtkImageAlgorithm.h"
49
50class VTKIOIMAGE_EXPORT vtkImageExport : public vtkImageAlgorithm
51{
52public:
55 void PrintSelf(ostream& os, vtkIndent indent) override;
56
61
63
67 void GetDataDimensions(int* ptr);
69 {
70 this->GetDataDimensions(this->DataDimensions);
71 return this->DataDimensions;
72 }
74
81
88 {
89 return vtkImageScalarTypeNameMacro(this->GetDataScalarType());
90 }
91
93
97 void GetDataExtent(int* ptr);
98 double* GetDataSpacing() VTK_SIZEHINT(3);
99 void GetDataSpacing(double* ptr);
100 double* GetDataOrigin() VTK_SIZEHINT(3);
101 void GetDataOrigin(double* ptr);
102 double* GetDataDirection() VTK_SIZEHINT(9);
103 void GetDataDirection(double* ptr);
105
109 vtkImageData* GetInput();
110
112
120 vtkBooleanMacro(ImageLowerLeft, vtkTypeBool);
121 vtkGetMacro(ImageLowerLeft, vtkTypeBool);
122 vtkSetMacro(ImageLowerLeft, vtkTypeBool);
124
126
131 void SetExportVoidPointer(void*);
132 void* GetExportVoidPointer() { return this->ExportVoidPointer; }
134
136
141 void Export() { this->Export(this->ExportVoidPointer); }
142 virtual void Export(void*);
144
153
158
160
164 typedef void (*UpdateInformationCallbackType)(void*);
165 typedef int (*PipelineModifiedCallbackType)(void*);
166 typedef int* (*WholeExtentCallbackType)(void*);
167 typedef double* (*SpacingCallbackType)(void*);
168 typedef double* (*OriginCallbackType)(void*);
169 typedef double* (*DirectionCallbackType)(void*);
170 typedef const char* (*ScalarTypeCallbackType)(void*);
171 typedef int (*NumberOfComponentsCallbackType)(void*);
172 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
173 typedef void (*UpdateDataCallbackType)(void*);
174 typedef int* (*DataExtentCallbackType)(void*);
175 typedef void* (*BufferPointerCallbackType)(void*);
177
179
182 UpdateInformationCallbackType GetUpdateInformationCallback() const;
183 PipelineModifiedCallbackType GetPipelineModifiedCallback() const;
184 WholeExtentCallbackType GetWholeExtentCallback() const;
185 SpacingCallbackType GetSpacingCallback() const;
186 OriginCallbackType GetOriginCallback() const;
187 DirectionCallbackType GetDirectionCallback() const;
188 ScalarTypeCallbackType GetScalarTypeCallback() const;
189 NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const;
190 PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const;
191 UpdateDataCallbackType GetUpdateDataCallback() const;
192 DataExtentCallbackType GetDataExtentCallback() const;
193 BufferPointerCallbackType GetBufferPointerCallback() const;
195
196protected:
198 ~vtkImageExport() override;
199
200 // This is called by the superclass.
202 vtkInformationVector* outputVector) override;
203
206 virtual void UpdateDataCallback();
207 virtual int* WholeExtentCallback();
208 virtual double* SpacingCallback();
209 virtual double* OriginCallback();
210 virtual double* DirectionCallback();
211 virtual const char* ScalarTypeCallback();
214 virtual int* DataExtentCallback();
215 virtual void* BufferPointerCallback();
216
218 int DataDimensions[3];
220
222
223private:
224 vtkImageExport(const vtkImageExport&) = delete;
225 void operator=(const vtkImageExport&) = delete;
226
227 static void UpdateInformationCallbackFunction(void*);
228 static int PipelineModifiedCallbackFunction(void*);
229 static int* WholeExtentCallbackFunction(void*);
230 static double* SpacingCallbackFunction(void*);
231 static double* OriginCallbackFunction(void*);
232 static double* DirectionCallbackFunction(void*);
233 static const char* ScalarTypeCallbackFunction(void*);
234 static int NumberOfComponentsCallbackFunction(void*);
235 static void PropagateUpdateExtentCallbackFunction(void*, int*);
236 static void UpdateDataCallbackFunction(void*);
237 static int* DataExtentCallbackFunction(void*);
238 static void* BufferPointerCallbackFunction(void*);
239
242};
243
244#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:49
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int vtkTypeBool
Definition vtkABI.h:69
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_SIZEHINT(...)