33 #ifndef vtkADIOS2CoreImageReader_h
34 #define vtkADIOS2CoreImageReader_h
43 #include "vtkSetGet.h"
46 #include "vtkIOADIOS2Module.h"
68 using Params = std::map<std::string, std::string>;
81 virtual int CanReadFile(
const char* filename);
91 void SetFileName(
const char* filename);
98 vtkSetVector3Macro(Origin,
double);
99 vtkGetVector3Macro(Origin,
double);
107 vtkSetVector3Macro(Spacing,
double);
108 vtkGetVector3Macro(Spacing,
double);
127 vtkSetMacro(DimensionArrayAsCell,
bool);
128 vtkGetMacro(DimensionArrayAsCell,
bool);
129 vtkBooleanMacro(DimensionArrayAsCell,
bool);
152 int GetNumberOfArrays();
153 const char* GetArrayName(
int index);
160 void SetArrayStatus(
const char*
name,
int status);
161 int GetArrayStatus(
const char*
name);
172 vtkSetMacro(IsColumnMajor,
bool);
173 vtkGetMacro(IsColumnMajor,
bool);
174 vtkBooleanMacro(IsColumnMajor,
bool);
181 void SetActiveScalar(
const std::pair<std::string, VarType>& inqVars);
182 std::pair<std::string, VarType>& GetActiveScalar();
183 const std::pair<std::string, VarType>& GetActiveScalar()
const;
225 void UpdateDimensionFromDimensionArray();
228 bool OpenAndReadMetaData();
231 void ConvertArraySelectionToInqVar();
234 bool InitWorkDistribution();
239 bool GatherTimeSteps();
242 template <
typename T>
243 void CalculateWorkDistribution(
const std::string& varName);
246 template <
typename T,
template <
typename...>
class U>
251 template <
typename T>
252 void GatherTimeStepsFromADIOSTimeArray();
270 struct vtkADIOS2CoreImageReaderImpl;
271 std::unique_ptr<vtkADIOS2CoreImageReaderImpl>
Impl;