33#ifndef vtkADIOS2CoreImageReader_h
34#define vtkADIOS2CoreImageReader_h
46#include "vtkIOADIOS2Module.h"
68 using Params = std::map<std::string, std::string>;
87 vtkSetMacro(FileName, std::string);
88 vtkGetMacro(FileName, std::string);
98 vtkSetVector3Macro(Origin,
double);
99 vtkGetVector3Macro(Origin,
double);
107 vtkSetVector3Macro(Spacing,
double);
108 vtkGetVector3Macro(Spacing,
double);
118 vtkSetMacro(DimensionArray, std::string);
119 vtkGetMacro(DimensionArray, std::string);
127 vtkSetMacro(DimensionArrayAsCell,
bool);
128 vtkGetMacro(DimensionArrayAsCell,
bool);
129 vtkBooleanMacro(DimensionArrayAsCell,
bool);
138 vtkSetMacro(TimeStepArray, std::string);
139 vtkGetMacro(TimeStepArray, std::string);
172 vtkSetMacro(IsColumnMajor,
bool);
173 vtkGetMacro(IsColumnMajor,
bool);
174 vtkBooleanMacro(IsColumnMajor,
bool);
242 template <
typename T>
246 template <
typename T,
template <
typename...>
class U>
248 const std::string& varName,
size_t blockIndex);
251 template <
typename T>
270 struct vtkADIOS2CoreImageReaderImpl;
271 std::unique_ptr<vtkADIOS2CoreImageReaderImpl>
Impl;
void CalculateWorkDistribution(const std::string &varName)
virtual int RequestData(vtkInformation *request, vtkInformationVector **input, vtkInformationVector *output) override
bool InitWorkDistribution()
StringToParams & GetAvilableVariables()
Get the available variables.
std::unique_ptr< vtkADIOS2CoreImageReaderImpl > Impl
bool OpenAndReadMetaData()
virtual int CanReadFile(VTK_FILEPATH const char *filename)
void ReadImageBlocks(vtkMultiBlockDataSet *mbds)
void GatherTimeStepsFromADIOSTimeArray()
const StringToParams & GetAvailableAttributes() const
Get/Set the active scalar on each image block.
int RequestDataObjectInternal(vtkInformationVector *)
~vtkADIOS2CoreImageReader() override
const char * GetArrayName(int index)
Get information about arrays.
const std::pair< std::string, VarType > & GetActiveScalar() const
Get/Set the active scalar on each image block.
void UpdateDimensionFromDimensionArray()
void SetController(vtkMultiProcessController *)
Set the MPI controller.
std::vector< std::pair< std::string, VarType > > InquireVariablesType
void SetActiveScalar(const std::pair< std::string, VarType > &inqVars)
Get/Set the active scalar on each image block.
vtkADIOS2CoreImageReader()
vtkSmartPointer< vtkMultiProcessController > Controller
int CanReadFile(VTK_FILEPATH const std::string &name)
Test whether or not a given file should even be attempted for use with this reader.
virtual int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
The main interface which triggers the reader to start.
static vtkADIOS2CoreImageReader * New(void)
std::map< std::string, std::string > Params
void SetArrayStatus(const char *name, int status)
Set the array that should be read in.
const StringToParams & GetAvilableVariables() const
Get/Set the active scalar on each image block.
vtkStringArray * GetAllTimeStepArrays()
StringToParams & GetAvailableAttributes()
Get the available attributes.
void SetFileName(VTK_FILEPATH const char *filename)
std::string DimensionArray
std::pair< std::string, VarType > & GetActiveScalar()
Get/Set the active scalar on each image block.
vtkStringArray * GetAllDimensionArrays()
Get/Set the name of the array to deduce the dimension of vtkImageData.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetNumberOfArrays()
Get information about arrays.
int GetArrayStatus(const char *name)
Get information about arrays.
std::string TimeStepArray
std::string FetchTypeStringFromVarName(const std::string &name)
bool DimensionArrayAsCell
std::map< std::string, Params > StringToParams
vtkSmartPointer< vtkAbstractArray > PopulateDataArrayFromVar(const std::string &varName, size_t blockIndex)
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **input, vtkInformationVector *output) override
void ConvertArraySelectionToInqVar()
object to represent cell connectivity
abstract superclass for arrays of numeric data
Superclass for algorithms that produce only data object as output.
general representation of visualization data
represent and manipulate attribute data in a dataset
abstract class to specify dataset behavior
represent and manipulate fields of data
topologically and geometrically regular array of data
a simple class to control print indentation
Composite dataset that organizes datasets into blocks.
Multiprocessing communication superclass.
Hold a reference to a vtkObjectBase instance.
a vtkAbstractArray subclass for strings