ParaView
vtkPGenericIOReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPGenericIOReader.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  =========================================================================*/
22 #ifndef vtkPGenericIOReader_h
23 #define vtkPGenericIOReader_h
24 
25 // VTK includes
26 #include "vtkPVVTKExtensionsCosmoToolsModule.h" // For export macro
27 #include "vtkUnstructuredGridAlgorithm.h"
28 
29 #include <set> // for std::set in protected methods
30 
31 // Forward Declarations
32 class vtkCallbackCommand;
33 class vtkDataArray;
34 class vtkDataArraySelection;
35 class vtkGenericIOMetaData;
36 class vtkIdList;
37 class vtkInformation;
38 class vtkInformationVector;
39 class vtkMultiProcessController;
40 class vtkStdString;
41 class vtkStringArray;
42 class vtkUnstructuredGrid;
43 
44 // GenericIO Forward Declarations
45 namespace gio
46 {
47 class GenericIOReader;
48 }
49 
50 class VTKPVVTKEXTENSIONSCOSMOTOOLS_EXPORT vtkPGenericIOReader : public vtkUnstructuredGridAlgorithm
51 {
52 public:
53  enum IOType
54  {
56  IOTYPEPOSIX
57  };
58 
60  {
62  RCB
63  };
64 
65  static vtkPGenericIOReader* New();
66  vtkTypeMacro(vtkPGenericIOReader, vtkUnstructuredGridAlgorithm);
67  void PrintSelf(ostream& os, vtkIndent indent);
68 
70 
73  vtkSetStringMacro(FileName);
74  vtkGetStringMacro(FileName);
76 
78 
81  vtkSetStringMacro(XAxisVariableName);
82  vtkGetStringMacro(XAxisVariableName);
84 
86 
89  vtkSetStringMacro(YAxisVariableName);
90  vtkGetStringMacro(YAxisVariableName);
92 
94 
97  vtkSetStringMacro(ZAxisVariableName);
98  vtkGetStringMacro(ZAxisVariableName);
100 
102 
105  vtkSetMacro(GenericIOType, int);
106  vtkGetMacro(GenericIOType, int);
108 
110 
114  vtkSetMacro(BlockAssignment, int);
115  vtkGetMacro(BlockAssignment, int);
117 
119 
124  vtkSetMacro(RankInQuery, int);
125  vtkGetMacro(RankInQuery, int);
127 
129 
133  vtkSetMacro(QueryRankNeighbors, int);
134  vtkGetMacro(QueryRankNeighbors, int);
136 
138 
142  vtkSetMacro(AppendBlockCoordinates, bool);
143  vtkBooleanMacro(AppendBlockCoordinates, bool);
144  vtkGetMacro(AppendBlockCoordinates, bool);
146 
148 
152  vtkGetObjectMacro(ArrayList, vtkStringArray);
154 
156 
160  vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection);
162 
164 
168  vtkSetMacro(Controller, vtkMultiProcessController*);
169  vtkGetMacro(Controller, vtkMultiProcessController*);
171 
175  int GetNumberOfPointArrays();
176 
180  const char* GetPointArrayName(int i);
181 
185  int GetPointArrayStatus(const char* name);
186 
191  void SetPointArrayStatus(const char* name, int status);
192 
194 
199  vtkSetStringMacro(HaloIdVariableName);
200  vtkGetStringMacro(HaloIdVariableName);
202 
209  vtkIdType GetRequestedHaloId(vtkIdType i);
210 
217  vtkIdType GetNumberOfRequestedHaloIds();
218 
226  void SetNumberOfRequestedHaloIds(vtkIdType numIds);
227 
234  void AddRequestedHaloId(vtkIdType haloId);
235 
242  void ClearRequestedHaloIds();
243 
250  void SetRequestedHaloId(vtkIdType i, vtkIdType haloId);
251 
252 protected:
254  virtual ~vtkPGenericIOReader();
255 
256  // Pipeline methods
257  virtual int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
258  virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
259 
263  void LoadMetaData();
264 
270  bool ReaderParametersChanged();
271 
275  gio::GenericIOReader* GetInternalReader();
276 
280  void GetPointFromRawData(int xType, void* xBuffer, int yType, void* yBuffer, int zType,
281  void* zBuffer, vtkIdType idx, double pnt[3]);
282 
286  void LoadRawVariableData(std::string varName);
287 
291  void LoadRawData();
292 
296  void LoadCoordinates(vtkUnstructuredGrid* grid, std::set<vtkIdType>& pointsInSelectedHalos);
297 
301  void LoadData(vtkUnstructuredGrid* grid, const std::set<vtkIdType>& pointsInSelectedHalos);
302 
306  void FindRankNeighbors();
307 
311  static void SelectionModifiedCallback(
312  vtkObject* caller, unsigned long eid, void* clientdata, void* calldata);
313 
318 
319  char* FileName;
322 
325 
328 
329  vtkMultiProcessController* Controller;
330 
331  vtkStringArray* ArrayList;
332  vtkIdList* HaloList;
333  vtkDataArraySelection* PointDataArraySelection;
334  vtkCallbackCommand* SelectionObserver;
335 
336  gio::GenericIOReader* Reader;
337  vtkGenericIOMetaData* MetaData;
338 
341 
342 private:
343  vtkPGenericIOReader(const vtkPGenericIOReader&) VTK_DELETE_FUNCTION;
344  void operator=(const vtkPGenericIOReader&) VTK_DELETE_FUNCTION;
345 };
346 
347 #endif /* vtkPGenericIOReader_h */
gio::GenericIOReader * Reader
vtkMultiProcessController * Controller
vtkCallbackCommand * SelectionObserver
vtkGenericIOMetaData * MetaData
vtkStringArray * ArrayList
vtkDataArraySelection * PointDataArraySelection
Creates a vtkUnstructuredGrid instance from a GenericIO file.