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=========================================================================*/
34
35#ifndef vtkImageExport_h
36#define vtkImageExport_h
37
38#include "vtkIOImageModule.h" // For export macro
39#include "vtkImageAlgorithm.h"
40
41class VTKIOIMAGE_EXPORT vtkImageExport : public vtkImageAlgorithm
42{
43public:
46 void PrintSelf(ostream& os, vtkIndent indent) override;
47
52
54
58 void GetDataDimensions(int* ptr);
60 {
62 return this->DataDimensions;
63 }
64
65
72
79 {
80 return vtkImageScalarTypeNameMacro(this->GetDataScalarType());
81 }
82
84
88 void GetDataExtent(int* ptr);
90 void GetDataSpacing(double* ptr);
92 void GetDataOrigin(double* ptr);
94 void GetDataDirection(double* ptr);
96
101
103
111 vtkBooleanMacro(ImageLowerLeft, vtkTypeBool);
115
117
123 void* GetExportVoidPointer() { return this->ExportVoidPointer; }
125
127
132 void Export() { this->Export(this->ExportVoidPointer); }
133 virtual void Export(void*);
135
144
149
151
155 typedef void (*UpdateInformationCallbackType)(void*);
156 typedef int (*PipelineModifiedCallbackType)(void*);
157 typedef int* (*WholeExtentCallbackType)(void*);
158 typedef double* (*SpacingCallbackType)(void*);
159 typedef double* (*OriginCallbackType)(void*);
160 typedef double* (*DirectionCallbackType)(void*);
161 typedef const char* (*ScalarTypeCallbackType)(void*);
162 typedef int (*NumberOfComponentsCallbackType)(void*);
163 typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
164 typedef void (*UpdateDataCallbackType)(void*);
165 typedef int* (*DataExtentCallbackType)(void*);
166 typedef void* (*BufferPointerCallbackType)(void*);
168
170
186
187protected:
189 ~vtkImageExport() override;
190
191 // This is called by the superclass.
193 vtkInformationVector* outputVector) override;
194
197 virtual void UpdateDataCallback();
198 virtual int* WholeExtentCallback();
199 virtual double* SpacingCallback();
200 virtual double* OriginCallback();
201 virtual double* DirectionCallback();
202 virtual const char* ScalarTypeCallback();
205 virtual int* DataExtentCallback();
206 virtual void* BufferPointerCallback();
207
211
213
214private:
215 vtkImageExport(const vtkImageExport&) = delete;
216 void operator=(const vtkImageExport&) = delete;
217
218 static void UpdateInformationCallbackFunction(void*);
219 static int PipelineModifiedCallbackFunction(void*);
220 static int* WholeExtentCallbackFunction(void*);
221 static double* SpacingCallbackFunction(void*);
222 static double* OriginCallbackFunction(void*);
223 static double* DirectionCallbackFunction(void*);
224 static const char* ScalarTypeCallbackFunction(void*);
225 static int NumberOfComponentsCallbackFunction(void*);
226 static void PropagateUpdateExtentCallbackFunction(void*, int*);
227 static void UpdateDataCallbackFunction(void*);
228 static int* DataExtentCallbackFunction(void*);
229 static void* BufferPointerCallbackFunction(void*);
230
233};
234
235#endif
vtkInformation * GetInputInformation()
Equivalent to GetInputInformation(0, 0)
vtkAlgorithm * GetInputAlgorithm()
Equivalent to GetInputAlgorithm(0, 0).
topologically and geometrically regular array of data
void * GetPointerToData()
An alternative to Export(): Use with caution.
double * GetDataSpacing()
Get miscellaneous additional information about the data.
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.
int *(* WholeExtentCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
vtkImageData * GetInput()
Get the input object from the image pipeline.
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.
void(* UpdateDataCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
PipelineModifiedCallbackType GetPipelineModifiedCallback() const
Get pointers to the pipeline interface callbacks.
const char * GetDataScalarTypeAsString()
void * GetExportVoidPointer()
Set the void pointer of the C array to export the data to.
PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const
Get pointers to the pipeline interface callbacks.
OriginCallbackType GetOriginCallback() const
Get pointers to the pipeline interface callbacks.
virtual int NumberOfComponentsCallback()
void(* UpdateInformationCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
double * GetDataDirection()
Get miscellaneous additional information about the data.
const char *(* ScalarTypeCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
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()
int(* PipelineModifiedCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
double *(* DirectionCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
vtkIdType GetDataMemorySize()
Get the number of bytes required for the output C array.
double *(* OriginCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
virtual void * BufferPointerCallback()
void *(* BufferPointerCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
int * GetDataExtent()
Get miscellaneous additional information about the data.
double *(* SpacingCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
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()
void SetExportVoidPointer(void *)
Set the void pointer of the C array to export the data to.
~vtkImageExport() override
virtual void UpdateDataCallback()
vtkMTimeType LastPipelineMTime
virtual void PropagateUpdateExtentCallback(int *)
virtual const char * ScalarTypeCallback()
int *(* DataExtentCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
int(* NumberOfComponentsCallbackType)(void *)
These are function pointer types for the pipeline connection callbacks.
void GetDataDimensions(int *ptr)
Get the (x,y,z) index dimensions of the data.
DirectionCallbackType GetDirectionCallback() const
Get pointers to the pipeline interface callbacks.
void(* PropagateUpdateExtentCallbackType)(void *, int *)
These are function pointer types for the pipeline connection 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()
double * GetDataOrigin()
Get miscellaneous additional information about the data.
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:40
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(...)