VTK
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 #ifndef __vtkImageExport_h
35 #define __vtkImageExport_h
36 
37 #include "vtkImageAlgorithm.h"
38 
40 {
41 public:
42  static vtkImageExport *New();
44  void PrintSelf(ostream& os, vtkIndent indent);
45 
47  int GetDataMemorySize();
48 
50 
52  void GetDataDimensions(int *ptr);
54  this->GetDataDimensions(this->DataDimensions);
55  return this->DataDimensions; }
57 
61  int GetDataNumberOfScalarComponents();
62 
64 
66  int GetDataScalarType();
67  const char *GetDataScalarTypeAsString() {
68  return vtkImageScalarTypeNameMacro(this->GetDataScalarType()); }
70 
72 
73  int *GetDataExtent();
74  void GetDataExtent(int *ptr);
75  double *GetDataSpacing();
76  void GetDataSpacing(double *ptr);
77  double *GetDataOrigin();
78  void GetDataOrigin(double *ptr);
80 
81 //BTX
83 
85 //ETX
87 
89 
94  vtkBooleanMacro(ImageLowerLeft, int);
95  vtkGetMacro(ImageLowerLeft, int);
96  vtkSetMacro(ImageLowerLeft, int);
98 
100 
103  void SetExportVoidPointer(void *);
104  void *GetExportVoidPointer() { return this->ExportVoidPointer; };
106 
108 
111  void Export() { this->Export(this->ExportVoidPointer); };
112  virtual void Export(void *);
114 
119  void *GetPointerToData();
120 
122  void* GetCallbackUserData();
123 
124  //BTX
126 
128  typedef void (*UpdateInformationCallbackType)(void*);
129  typedef int (*PipelineModifiedCallbackType)(void*);
130  typedef int* (*WholeExtentCallbackType)(void*);
131  typedef double* (*SpacingCallbackType)(void*);
132  typedef double* (*OriginCallbackType)(void*);
133  typedef const char* (*ScalarTypeCallbackType)(void*);
134  typedef int (*NumberOfComponentsCallbackType)(void*);
135  typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
136  typedef void (*UpdateDataCallbackType)(void*);
137  typedef int* (*DataExtentCallbackType)(void*);
138  typedef void* (*BufferPointerCallbackType)(void*);
140 
142 
143  UpdateInformationCallbackType GetUpdateInformationCallback() const;
144  PipelineModifiedCallbackType GetPipelineModifiedCallback() const;
145  WholeExtentCallbackType GetWholeExtentCallback() const;
146  SpacingCallbackType GetSpacingCallback() const;
147  OriginCallbackType GetOriginCallback() const;
148  ScalarTypeCallbackType GetScalarTypeCallback() const;
149  NumberOfComponentsCallbackType GetNumberOfComponentsCallback() const;
150  PropagateUpdateExtentCallbackType GetPropagateUpdateExtentCallback() const;
151  UpdateDataCallbackType GetUpdateDataCallback() const;
152  DataExtentCallbackType GetDataExtentCallback() const;
153  BufferPointerCallbackType GetBufferPointerCallback() const;
154  //ETX
156 
157 protected:
158  vtkImageExport();
159  ~vtkImageExport();
160 
161  // This is called by the superclass.
162  virtual int RequestData(vtkInformation *request,
163  vtkInformationVector** inputVector,
164  vtkInformationVector* outputVector);
165 
166  virtual void UpdateInformationCallback();
167  virtual int PipelineModifiedCallback();
168  virtual void UpdateDataCallback();
169  virtual int* WholeExtentCallback();
170  virtual double* SpacingCallback();
171  virtual double* OriginCallback();
172  virtual const char* ScalarTypeCallback();
173  virtual int NumberOfComponentsCallback();
174  virtual void PropagateUpdateExtentCallback(int*);
175  virtual int* DataExtentCallback();
176  virtual void* BufferPointerCallback();
177 
179  int DataDimensions[3];
181 
182  unsigned long LastPipelineMTime;
183 
184 private:
185  vtkImageExport(const vtkImageExport&); // Not implemented.
186  void operator=(const vtkImageExport&); // Not implemented.
187 
188  static void UpdateInformationCallbackFunction(void*);
189  static int PipelineModifiedCallbackFunction(void*);
190  static int* WholeExtentCallbackFunction(void*);
191  static double* SpacingCallbackFunction(void*);
192  static double* OriginCallbackFunction(void*);
193  static const char* ScalarTypeCallbackFunction(void*);
194  static int NumberOfComponentsCallbackFunction(void*);
195  static void PropagateUpdateExtentCallbackFunction(void*, int*);
196  static void UpdateDataCallbackFunction(void*);
197  static int* DataExtentCallbackFunction(void*);
198  static void* BufferPointerCallbackFunction(void*);
199 };
200 
201 #endif
202 
203 
Store vtkAlgorithm input/output information.
vtkDataObject * GetInput()
Export VTK images to third-party systems.
int * GetDataDimensions()
a simple class to control print indentation
Definition: vtkIndent.h:37
#define VTK_IMAGING_EXPORT
topologically and geometrically regular array of data
Definition: vtkImageData.h:43
const char * GetDataScalarTypeAsString()
unsigned long LastPipelineMTime
void * GetExportVoidPointer()
Generic algorithm superclass for image algs.
Store zero or more vtkInformation instances.
void PrintSelf(ostream &os, vtkIndent indent)
static vtkAlgorithm * New()
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void * ExportVoidPointer