21 #ifndef __vtkXdmfReaderInternal_h
22 #define __vtkXdmfReaderInternal_h
36 #include "XdmfArray.h"
37 #include "XdmfAttribute.h"
39 #include "XdmfDataDesc.h"
40 #include "XdmfDataItem.h"
42 #include "XdmfTopology.h"
43 #include "XdmfGeometry.h"
51 #include <vtksys/SystemTools.hxx>
55 #include <vtksys/ios/sstream>
66 bool Parse(
const char*xmffilename);
67 bool ParseString(
const char* xmfdata,
size_t length);
74 {
return this->Domains; }
81 bool SetActiveDomain(
const char* domainname);
82 bool SetActiveDomain(
int index);
89 {
return this->ActiveDomain; }
101 void UpdateDomains();
104 int ActiveDomainIndex;
107 std::vector<std::string> Domains;
109 char* LastReadContents;
110 size_t LastReadContentsLength;
121 vtkXdmfArraySelection::const_iterator iter = other.begin();
122 for (; iter != other.end(); ++iter)
124 (*this)[iter->first] = iter->second;
130 (*this)[
name] = status;
135 vtkXdmfArraySelection::iterator iter = this->find(name);
136 if (iter != this->
end())
147 vtkXdmfArraySelection::iterator iter = this->find(name);
148 return (iter != this->
end());
164 for (vtkXdmfArraySelection::iterator iter = this->begin();
165 iter != this->
end(); ++iter)
170 return iter->first.c_str();
179 return static_cast<int>(this->
size());
187 XdmfInt64 NumberOfGrids;
190 XdmfXmlNode XMLDomain;
193 unsigned int GridsOverflowCounter;
196 std::map<std::string, vtkIdType> GridCenteredAttrbuteRoots;
198 std::map<XdmfInt64, vtkIdType> > GridCenteredAttrbuteValues;
206 std::set<XdmfFloat64> TimeSteps;
220 {
return (this->XMLDomain != 0); }
225 {
return this->SIL; }
233 XdmfGrid* GetGrid(XdmfInt64 cc);
239 int GetVTKDataType();
245 {
return this->TimeSteps; }
250 int GetIndexForTime(
double time);
257 std::set<XdmfFloat64>::iterator iter;
259 for (iter = this->TimeSteps.begin(); iter != this->TimeSteps.end();
275 XdmfGrid* GetGrid(XdmfGrid* xmfGrid,
double time);
279 bool IsStructured(XdmfGrid*);
286 bool GetWholeExtent(XdmfGrid*,
int extents[6]);
292 bool GetOriginAndSpacing(XdmfGrid*,
double origin[3],
double spacing[3]);
299 int GetVTKDataType(XdmfGrid* xmfGrid);
303 static int GetDataDimensionality(XdmfGrid* xmfGrid);
306 {
return this->PointArrays; }
308 {
return this->CellArrays; }
310 {
return this->Grids; }
312 {
return this->Sets; }
323 void CollectMetaData();
326 void CollectMetaData(XdmfGrid* xmfGrid, vtkIdType silParent);
329 void CollectNonLeafMetaData(XdmfGrid* xmfGrid, vtkIdType silParent);
332 void CollectLeafMetaData(XdmfGrid* xmfGrid, vtkIdType silParent);
338 bool UpdateGridAttributeInSIL(
339 XdmfAttribute* xmfAttribute, vtkIdType gridSILId);
void AddArray(const char *name, bool status=true)
bool ArrayIsEnabled(const char *name)
vtkXdmfArraySelection * GetPointArraySelection()
void SetArrayStatus(const char *name, bool status)
vtkXdmfArraySelection * GetSetsSelection()
GLuint GLsizei GLsizei * length
#define VTKIOXDMF2_EXPORT
bool HasArray(const char *name)
vtkXdmfDomain * GetActiveDomain()
Base class for graph data types.
vtkXdmfArraySelection * GetCellArraySelection()
GLuint const GLchar * name
const std::vector< std::string > & GetDomains()
void Merge(const vtkXdmfArraySelection &other)
An editable directed graph.
vtkXdmfArraySelection * GetGridSelection()
XdmfFloat64 GetTimeForIndex(int index)
XdmfInt64 GetNumberOfGrids()
const std::set< XdmfFloat64 > & GetTimeSteps()
const char * GetArrayName(int index)
helper class to build a SIL i.e. a directed graph used by reader producing composite datasets to desc...
GLsizei const GLchar ** string
int GetArraySetting(const char *name)