VTK  9.7.20261003
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.
49#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
51
52#include <map> // std::map
53
54VTK_ABI_NAMESPACE_BEGIN
57
60{
61public:
64 void PrintSelf(ostream& os, vtkIndent indent) override;
65
67
76 vtkSetMacro(MaximumLevelsToReadByDefault, unsigned int);
77 vtkGetMacro(MaximumLevelsToReadByDefault, unsigned int);
79
80protected:
83
84 // Get the name of the data set being read.
85 const char* GetDataSetName() override;
86
93 int CanReadFileWithDataType(const char* dsname) override;
94
101 int ReadVTKFile(vtkXMLDataElement* eVTKFile) override;
102
103 const char* GetXMLPartitionsName() override { return "Block"; }
104
105 const char* GetXMLPartitionIndexName() override { return "level"; }
106
110 void CreateMetaData(vtkXMLDataElement* ePrimary) override;
111
116 const std::string& filePath) override
117 {
118 this->Superclass::SyncCompositeDataArraySelections(composite, element, filePath);
119 }
120
127 vtkInformationVector* outputVector) override;
128
132 bool IsBlockSelected(unsigned int compositeIndex) override;
133
137 bool CanReadDataObject(vtkDataObject* dataObject) override;
138
139 // Read the vtkDataSet (a leaf) in the composite dataset.
140 vtkDataObject* ReadDataObject(vtkXMLDataElement* xmlElem, const char* filePath) override;
141
142 // Read the XML element for the subtree of a composite dataset.
143 // dataSetIndex is used to rank the leaf nodes in an inorder traversal.
145 const char* filePath, unsigned int& dataSetIndex) override;
146
147private:
149 void operator=(const vtkXMLUniformGridAMRReader&) = delete;
150
151 bool HasBlockRequests = true;
152 unsigned int MaximumLevelsToReadByDefault = 0;
153 std::map<unsigned int, unsigned int> CompositeIdToLevel;
154
155 // Hide Selection functionality since, AMR only support levels
156 vtkDataAssembly* GetAssembly() override { return nullptr; }
157 int GetAssemblyTag() VTK_FUTURE_CONST override { return 0; }
158 bool AddSelector(const char* vtkNotUsed(selector)) override { return false; }
159 void ClearSelectors() override {}
160 void SetSelector(const char* vtkNotUsed(selector)) override {}
161 int GetNumberOfSelectors() const override { return 0; }
162 const char* GetSelector(int vtkNotUsed(index)) const override { return nullptr; }
163
164 char* OutputDataType = nullptr;
165 vtkSetStringMacro(OutputDataType);
166};
167
168VTK_ABI_NAMESPACE_END
169#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()
#define VTK_MARSHALAUTO