VTK  9.6.20260415
vtkXMLUniformGridAMRReader.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright (c) Kitware, Inc.
3// SPDX-License-Identifier: BSD-3-Clause
43
44#ifndef vtkXMLUniformGridAMRReader_h
45#define vtkXMLUniformGridAMRReader_h
46
47#include "vtkIOXMLModule.h" // For export macro
48#include "vtkSmartPointer.h" // needed for vtkSmartPointer.
50
51#include <map> // std::map
52
53VTK_ABI_NAMESPACE_BEGIN
56
58{
59public:
62 void PrintSelf(ostream& os, vtkIndent indent) override;
63
65
74 vtkSetMacro(MaximumLevelsToReadByDefault, unsigned int);
75 vtkGetMacro(MaximumLevelsToReadByDefault, unsigned int);
77
78protected:
81
82 // Get the name of the data set being read.
83 const char* GetDataSetName() override;
84
91 int CanReadFileWithDataType(const char* dsname) override;
92
99 int ReadVTKFile(vtkXMLDataElement* eVTKFile) override;
100
101 const char* GetXMLPartitionsName() override { return "Block"; }
102
103 const char* GetXMLPartitionIndexName() override { return "level"; }
104
108 void CreateMetaData(vtkXMLDataElement* ePrimary) override;
109
114 const std::string& filePath) override
115 {
116 this->Superclass::SyncCompositeDataArraySelections(composite, element, filePath);
117 }
118
125 vtkInformationVector* outputVector) override;
126
130 bool IsBlockSelected(unsigned int compositeIndex) override;
131
135 bool CanReadDataObject(vtkDataObject* dataObject) override;
136
137 // Read the vtkDataSet (a leaf) in the composite dataset.
138 vtkDataObject* ReadDataObject(vtkXMLDataElement* xmlElem, const char* filePath) override;
139
140 // Read the XML element for the subtree of a composite dataset.
141 // dataSetIndex is used to rank the leaf nodes in an inorder traversal.
143 const char* filePath, unsigned int& dataSetIndex) override;
144
145private:
147 void operator=(const vtkXMLUniformGridAMRReader&) = delete;
148
149 bool HasBlockRequests = true;
150 unsigned int MaximumLevelsToReadByDefault = 0;
151 std::map<unsigned int, unsigned int> CompositeIdToLevel;
152
153 // Hide Selection functionality since, AMR only support levels
154 vtkDataAssembly* GetAssembly() override { return nullptr; }
155 int GetAssemblyTag() VTK_FUTURE_CONST override { return 0; }
156 bool AddSelector(const char* vtkNotUsed(selector)) override { return false; }
157 void ClearSelectors() override {}
158 void SetSelector(const char* vtkNotUsed(selector)) override {}
159 int GetNumberOfSelectors() const override { return 0; }
160 const char* GetSelector(int vtkNotUsed(index)) const override { return nullptr; }
161
162 char* OutputDataType = nullptr;
163 vtkSetStringMacro(OutputDataType);
164};
165
166VTK_ABI_NAMESPACE_END
167#endif
abstract superclass for composite (multi-block or AMR) datasets
hierarchical representation to use with vtkPartitionedDataSetCollection
general representation of visualization data
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
a multi-resolution dataset based on vtkCartesianGrid allowing overlaps
Legacy, empty shell inheriting vtkAMRDataObject.
virtual void SyncCompositeDataArraySelections(vtkCompositeDataSet *composite, vtkXMLDataElement *element, const std::string &filePath)=0
Recursively synchronize the data array selection of the reader for the file specified in the XML elem...
Represents an XML element and those nested inside.
virtual int GetAssemblyTag()
Whenever the assembly is changed, this tag gets changed.
virtual int GetNumberOfSelectors() const
API to access selectors.
virtual bool AddSelector(const char *selector)
API to set selectors.
virtual void SetSelector(const char *selector)
API to set selectors.
virtual const char * GetSelector(int index) const
API to access selectors.
virtual void ClearSelectors()
API to set selectors.
const char * GetXMLPartitionIndexName() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int ReadVTKFile(vtkXMLDataElement *eVTKFile) override
Read the top-level element from the file.
bool IsBlockSelected(unsigned int compositeIndex) override
Given the composite id, this method tells if the block should be read.
const char * GetXMLPartitionsName() override
~vtkXMLUniformGridAMRReader() override
bool CanReadDataObject(vtkDataObject *dataObject) override
Given the data object class, return whether it is allowed.
void SyncCompositeDataArraySelections(vtkCompositeDataSet *composite, vtkXMLDataElement *element, const std::string &filePath) override
Synchronize the data array selection of the reader for the file specified in the XML element.
void ReadComposite(vtkXMLDataElement *element, vtkCompositeDataSet *composite, const char *filePath, unsigned int &dataSetIndex) override
void CreateMetaData(vtkXMLDataElement *ePrimary) override
Read the meta-data from the AMR from the file.
const char * GetDataSetName() override
Get the name of the data set being read.
vtkDataObject * ReadDataObject(vtkXMLDataElement *xmlElem, const char *filePath) override
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Overridden to create an output data object based on the type in the file.
int CanReadFileWithDataType(const char *dsname) override
This method is used by CanReadFile() to check if the reader can read an XML with the primary element ...
static vtkXMLUniformGridAMRReader * New()