22 #ifndef vtkPGenericIOMultiBlockReader_h 23 #define vtkPGenericIOMultiBlockReader_h 25 #include "vtkMultiBlockDataSetAlgorithm.h" 26 #include "vtkPVVTKExtensionsCosmoToolsModule.h" 30 class vtkCallbackCommand;
31 class vtkDataArraySelection;
32 class vtkMultiProcessController;
35 class vtkUnstructuredGrid;
36 class vtkInformationDoubleKey;
41 class GenericIOReader;
45 :
public vtkMultiBlockDataSetAlgorithm
62 ostream& os, vtkIndent indent);
68 vtkSetStringMacro(XAxisVariableName) vtkGetStringMacro(XAxisVariableName)
75 vtkSetStringMacro(YAxisVariableName) vtkGetStringMacro(YAxisVariableName)
82 vtkSetStringMacro(ZAxisVariableName) vtkGetStringMacro(ZAxisVariableName)
89 vtkSetStringMacro(FileName) vtkGetStringMacro(FileName)
96 vtkSetMacro(GenericIOType,
int) vtkGetMacro(GenericIOType,
int)
112 vtkGetObjectMacro(ArrayList, vtkStringArray)
120 vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection)
128 vtkGetMacro(Controller, vtkMultiProcessController*)
129 vtkSetMacro(Controller, vtkMultiProcessController*)
135 int GetNumberOfPointArrays();
140 const
char* GetPointArrayName(
int i);
145 int GetPointArrayStatus(const
char* name);
150 void SetPointArrayStatus(const
char* name,
int status);
158 vtkSetStringMacro(HaloIdVariableName) vtkGetStringMacro(HaloIdVariableName)
167 vtkIdType GetRequestedHaloId(vtkIdType i);
175 vtkIdType GetNumberOfRequestedHaloIds();
184 void SetNumberOfRequestedHaloIds(vtkIdType numIds);
192 void AddRequestedHaloId(vtkIdType haloId);
200 void ClearRequestedHaloIds();
208 void SetRequestedHaloId(vtkIdType i, vtkIdType haloId);
212 ~vtkPGenericIOMultiBlockReader();
214 char* XAxisVariableName;
215 char* YAxisVariableName;
216 char* ZAxisVariableName;
217 char* HaloIdVariableName;
225 vtkMultiProcessController* Controller;
227 vtkStringArray* ArrayList;
228 vtkDataArraySelection* PointDataArraySelection;
230 vtkCallbackCommand* SelectionObserver;
232 gio::GenericIOReader* Reader;
234 gio::GenericIOReader* GetInternalReader();
236 bool ReaderParametersChanged();
240 void LoadRawVariableDataForBlock(const std::
string& varName,
int blockId);
242 void LoadRawDataForBlock(
int blockId);
244 void GetPointFromRawData(
int xType,
void* xBuffer,
int yType,
void* yBuffer,
int zType,
245 void* zBuffer, vtkIdType
id,
double point[3]);
247 void LoadCoordinatesForBlock(
248 vtkUnstructuredGrid* grid, std::set<vtkIdType>& pointsInSelectedHalos,
int blockId);
250 void LoadDataArraysForBlock(
251 vtkUnstructuredGrid* grid, const std::set<vtkIdType>& pointsInSelectedHalos,
int blockId);
253 vtkUnstructuredGrid* LoadBlock(
int blockId);
258 static
void SelectionModifiedCallback(
259 vtkObject* caller,
unsigned long eid,
void* clientdata,
void* calldata);
262 virtual
int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
263 virtual
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
266 vtkPGenericIOMultiBlockReader(const vtkPGenericIOMultiBlockReader&) VTK_DELETE_FUNCTION;
267 void operator=(const vtkPGenericIOMultiBlockReader&) VTK_DELETE_FUNCTION;
269 class vtkGenericIOMultiBlockMetaData;
270 vtkGenericIOMultiBlockMetaData* MetaData;
Creates a vtkMultiBlockDataSet from a GenericIO file.