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
28 
29 #include <set> // for std::set in protected methods
30 
31 // Forward Declarations
32 class vtkCallbackCommand;
33 class vtkDataArray;
35 class vtkGenericIOMetaData;
36 class vtkIdList;
37 class vtkInformation;
40 class vtkStringArray;
42 
43 // GenericIO Forward Declarations
44 namespace gio
45 {
46 class GenericIOReader;
47 }
48 
49 class VTKPVVTKEXTENSIONSCOSMOTOOLS_EXPORT vtkPGenericIOReader : public vtkUnstructuredGridAlgorithm
50 {
51 public:
52  enum IOType
53  {
55  IOTYPEPOSIX
56  };
57 
59  {
61  RCB
62  };
63 
64  static vtkPGenericIOReader* New();
66  void PrintSelf(ostream& os, vtkIndent indent);
67 
69 
72  vtkSetStringMacro(FileName);
73  vtkGetStringMacro(FileName);
75 
77 
80  vtkSetStringMacro(XAxisVariableName);
81  vtkGetStringMacro(XAxisVariableName);
83 
85 
88  vtkSetStringMacro(YAxisVariableName);
89  vtkGetStringMacro(YAxisVariableName);
91 
93 
96  vtkSetStringMacro(ZAxisVariableName);
97  vtkGetStringMacro(ZAxisVariableName);
99 
101 
104  vtkSetMacro(GenericIOType, int);
105  vtkGetMacro(GenericIOType, int);
107 
109 
113  vtkSetMacro(BlockAssignment, int);
114  vtkGetMacro(BlockAssignment, int);
116 
118 
123  vtkSetMacro(RankInQuery, int);
124  vtkGetMacro(RankInQuery, int);
126 
128 
132  vtkSetMacro(QueryRankNeighbors, int);
133  vtkGetMacro(QueryRankNeighbors, int);
135 
137 
141  vtkSetMacro(AppendBlockCoordinates, bool);
142  vtkBooleanMacro(AppendBlockCoordinates, bool);
143  vtkGetMacro(AppendBlockCoordinates, bool);
145 
147 
151  vtkGetObjectMacro(ArrayList, vtkStringArray);
153 
155 
159  vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection);
161 
163 
167  vtkSetMacro(Controller, vtkMultiProcessController*);
168  vtkGetMacro(Controller, vtkMultiProcessController*);
170 
174  int GetNumberOfPointArrays();
175 
179  const char* GetPointArrayName(int i);
180 
184  int GetPointArrayStatus(const char* name);
185 
190  void SetPointArrayStatus(const char* name, int status);
191 
193 
198  vtkSetStringMacro(HaloIdVariableName);
199  vtkGetStringMacro(HaloIdVariableName);
201 
208  vtkIdType GetRequestedHaloId(vtkIdType i);
209 
216  vtkIdType GetNumberOfRequestedHaloIds();
217 
225  void SetNumberOfRequestedHaloIds(vtkIdType numIds);
226 
233  void AddRequestedHaloId(vtkIdType haloId);
234 
241  void ClearRequestedHaloIds();
242 
249  void SetRequestedHaloId(vtkIdType i, vtkIdType haloId);
250 
251 protected:
253  virtual ~vtkPGenericIOReader();
254 
255  // Pipeline methods
256  virtual int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
257  virtual int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
258 
262  void LoadMetaData();
263 
269  bool ReaderParametersChanged();
270 
274  gio::GenericIOReader* GetInternalReader();
275 
279  void GetPointFromRawData(int xType, void* xBuffer, int yType, void* yBuffer, int zType,
280  void* zBuffer, vtkIdType idx, double pnt[3]);
281 
285  void LoadRawVariableData(std::string varName);
286 
290  void LoadRawData();
291 
295  void LoadCoordinates(vtkUnstructuredGrid* grid, std::set<vtkIdType>& pointsInSelectedHalos);
296 
300  void LoadData(vtkUnstructuredGrid* grid, const std::set<vtkIdType>& pointsInSelectedHalos);
301 
305  void FindRankNeighbors();
306 
310  static void SelectionModifiedCallback(
311  vtkObject* caller, unsigned long eid, void* clientdata, void* calldata);
312 
317 
318  char* FileName;
321 
324 
327 
329 
334 
335  gio::GenericIOReader* Reader;
336  vtkGenericIOMetaData* MetaData;
337 
340 
341 private:
342  vtkPGenericIOReader(const vtkPGenericIOReader&) = delete;
343  void operator=(const vtkPGenericIOReader&) = delete;
344 };
345 
346 #endif /* vtkPGenericIOReader_h */
gio::GenericIOReader * Reader
vtkMultiProcessController * Controller
vtkCallbackCommand * SelectionObserver
int vtkIdType
vtkGenericIOMetaData * MetaData
vtkStringArray * ArrayList
vtkDataArraySelection * PointDataArraySelection
Creates a vtkUnstructuredGrid instance from a GenericIO file.