VTK
vtkImageImport.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageImport.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 __vtkImageImport_h
35 #define __vtkImageImport_h
36 
37 #include "vtkImageAlgorithm.h"
38 
40 {
41 public:
42  static vtkImageImport *New();
44  void PrintSelf(ostream& os, vtkIndent indent);
45 
49  void CopyImportVoidPointer(void *ptr, int size);
50 
52 
56  void SetImportVoidPointer(void *ptr);
57  void *GetImportVoidPointer() {return this->ImportVoidPointer;};
59 
65  void SetImportVoidPointer(void *ptr, int save);
66 
68 
70  vtkSetMacro(DataScalarType,int);
71  void SetDataScalarTypeToDouble(){this->SetDataScalarType(VTK_DOUBLE);}
72  void SetDataScalarTypeToFloat(){this->SetDataScalarType(VTK_FLOAT);}
73  void SetDataScalarTypeToInt(){this->SetDataScalarType(VTK_INT);}
74  void SetDataScalarTypeToShort(){this->SetDataScalarType(VTK_SHORT);}
75  void SetDataScalarTypeToUnsignedShort()
76  {this->SetDataScalarType(VTK_UNSIGNED_SHORT);}
77  void SetDataScalarTypeToUnsignedChar()
78  {this->SetDataScalarType(VTK_UNSIGNED_CHAR);}
79  vtkGetMacro(DataScalarType, int);
80  const char *GetDataScalarTypeAsString() {
81  return vtkImageScalarTypeNameMacro(this->DataScalarType); }
83 
85 
87  vtkSetMacro(NumberOfScalarComponents,int);
88  vtkGetMacro(NumberOfScalarComponents,int);
90 
92 
96  vtkSetVector6Macro(DataExtent,int);
97  vtkGetVector6Macro(DataExtent,int);
98  void SetDataExtentToWholeExtent()
99  {this->SetDataExtent(this->GetWholeExtent());}
101 
103 
105  vtkSetVector3Macro(DataSpacing,double);
106  vtkGetVector3Macro(DataSpacing,double);
108 
110 
112  vtkSetVector3Macro(DataOrigin,double);
113  vtkGetVector3Macro(DataOrigin,double);
115 
117 
120  vtkSetVector6Macro(WholeExtent,int);
121  vtkGetVector6Macro(WholeExtent,int);
123 
125 
126  virtual int RequestUpdateExtent( vtkInformation* request,
127  vtkInformationVector** inputVector,
128  vtkInformationVector* outputVector);
130 
132 
134  vtkSetStringMacro(ScalarArrayName);
135  vtkGetStringMacro(ScalarArrayName);
137 
138  //BTX
140 
142  typedef void (*UpdateInformationCallbackType)(void*);
143  typedef int (*PipelineModifiedCallbackType)(void*);
144  typedef int* (*WholeExtentCallbackType)(void*);
145  typedef double* (*SpacingCallbackType)(void*);
146  typedef double* (*OriginCallbackType)(void*);
147  typedef const char* (*ScalarTypeCallbackType)(void*);
148  typedef int (*NumberOfComponentsCallbackType)(void*);
149  typedef void (*PropagateUpdateExtentCallbackType)(void*, int*);
150  typedef void (*UpdateDataCallbackType)(void*);
151  typedef int* (*DataExtentCallbackType)(void*);
152  typedef void* (*BufferPointerCallbackType)(void*);
154 
156 
159  vtkSetMacro(UpdateInformationCallback, UpdateInformationCallbackType);
160  vtkGetMacro(UpdateInformationCallback, UpdateInformationCallbackType);
162 
164 
168  vtkSetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType);
169  vtkGetMacro(PipelineModifiedCallback, PipelineModifiedCallbackType);
171 
173 
177  vtkSetMacro(WholeExtentCallback, WholeExtentCallbackType);
178  vtkGetMacro(WholeExtentCallback, WholeExtentCallbackType);
180 
182 
185  vtkSetMacro(SpacingCallback, SpacingCallbackType);
186  vtkGetMacro(SpacingCallback, SpacingCallbackType);
188 
190 
193  vtkSetMacro(OriginCallback, OriginCallbackType);
194  vtkGetMacro(OriginCallback, OriginCallbackType);
196 
198 
201  vtkSetMacro(ScalarTypeCallback, ScalarTypeCallbackType);
202  vtkGetMacro(ScalarTypeCallback, ScalarTypeCallbackType);
204 
206 
209  vtkSetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType);
210  vtkGetMacro(NumberOfComponentsCallback, NumberOfComponentsCallbackType);
212 
214 
219  vtkSetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType);
220  vtkGetMacro(PropagateUpdateExtentCallback,PropagateUpdateExtentCallbackType);
222 
224 
227  vtkSetMacro(UpdateDataCallback, UpdateDataCallbackType);
228  vtkGetMacro(UpdateDataCallback, UpdateDataCallbackType);
230 
232 
237  vtkSetMacro(DataExtentCallback, DataExtentCallbackType);
238  vtkGetMacro(DataExtentCallback, DataExtentCallbackType);
240 
242 
246  vtkSetMacro(BufferPointerCallback, BufferPointerCallbackType);
247  vtkGetMacro(BufferPointerCallback, BufferPointerCallbackType);
249 
251 
253  vtkSetMacro(CallbackUserData, void*);
254  vtkGetMacro(CallbackUserData, void*);
256 
257  //ETX
258 
260 
261  int InvokePipelineModifiedCallbacks();
262  void InvokeUpdateInformationCallbacks();
263  void InvokeExecuteInformationCallbacks();
264  void InvokeExecuteDataCallbacks();
265  void LegacyCheckWholeExtent();
267 
268 protected:
269  vtkImageImport();
270  ~vtkImageImport();
271 
274 
275 
278 
281 
282  int WholeExtent[6];
283  int DataExtent[6];
284  double DataSpacing[3];
285  double DataOrigin[3];
286 
289 
290  //BTX
291  UpdateInformationCallbackType UpdateInformationCallback;
292  PipelineModifiedCallbackType PipelineModifiedCallback;
293  WholeExtentCallbackType WholeExtentCallback;
294  SpacingCallbackType SpacingCallback;
295  OriginCallbackType OriginCallback;
296  ScalarTypeCallbackType ScalarTypeCallback;
297  NumberOfComponentsCallbackType NumberOfComponentsCallback;
298  PropagateUpdateExtentCallbackType PropagateUpdateExtentCallback;
299  UpdateDataCallbackType UpdateDataCallback;
300  DataExtentCallbackType DataExtentCallback;
301  BufferPointerCallbackType BufferPointerCallback;
302  //ETX
303 
304  virtual void ExecuteData(vtkDataObject *d);
305 
306 private:
307  vtkImageImport(const vtkImageImport&); // Not implemented.
308  void operator=(const vtkImageImport&); // Not implemented.
309 };
310 
311 #endif