20 #ifndef vtkXdmfReaderInternal_h 
   21 #define vtkXdmfReaderInternal_h 
   23 #ifndef VTK_WRAPPING_CXX 
   37 #include "vtk_xdmf2.h" 
   38 #include VTKXDMF2_HEADER(XdmfArray.h) 
   39 #include VTKXDMF2_HEADER(XdmfAttribute.h) 
   40 #include VTKXDMF2_HEADER(XdmfDOM.h) 
   42 #include VTKXDMF2_HEADER(XdmfDataDesc.h) 
   44 #include VTKXDMF2_HEADER(XdmfDataItem.h) 
   45 #include VTKXDMF2_HEADER(XdmfGrid.h) 
   47 #include VTKXDMF2_HEADER(XdmfTopology.h) 
   49 #include VTKXDMF2_HEADER(XdmfGeometry.h) 
   51 #include VTKXDMF2_HEADER(XdmfTime.h) 
   53 #include VTKXDMF2_HEADER(XdmfSet.h) 
   63 #include <vtksys/SystemTools.hxx> 
   76   bool Parse(
const char* xmffilename);
 
   77   bool ParseString(
const char* xmfdata, 
size_t length);
 
   84   const std::vector<std::string>& 
GetDomains() { 
return this->Domains; }
 
   92   bool SetActiveDomain(
const char* domainname);
 
   93   bool SetActiveDomain(
int index);
 
  113   void UpdateDomains();
 
  116   int ActiveDomainIndex;
 
  117   xdmf2::XdmfDOM XMLDOM;
 
  119   std::vector<std::string> Domains;
 
  121   char* LastReadContents;
 
  122   size_t LastReadContentsLength;
 
  133     vtkXdmfArraySelection::const_iterator iter = other.begin();
 
  134     for (; iter != other.end(); ++iter)
 
  136       (*this)[iter->first] = iter->second;
 
  144     vtkXdmfArraySelection::iterator iter = this->find(
name);
 
  145     if (iter != this->end())
 
  156     vtkXdmfArraySelection::iterator iter = this->find(
name);
 
  157     return (iter != this->end());
 
  167     for (vtkXdmfArraySelection::iterator iter = this->begin(); iter != this->end(); ++iter)
 
  172         return iter->first.c_str();
 
  186   XdmfInt64 NumberOfGrids;
 
  187   xdmf2::XdmfGrid* XMFGrids;
 
  189   XdmfXmlNode XMLDomain;
 
  190   xdmf2::XdmfDOM* XMLDOM;
 
  192   unsigned int GridsOverflowCounter;
 
  195   std::map<std::string, vtkIdType> GridCenteredAttrbuteRoots;
 
  196   std::map<vtkIdType, std::map<XdmfInt64, vtkIdType> > GridCenteredAttrbuteValues;
 
  204   std::map<XdmfFloat64, int> TimeSteps; 
 
  206   std::map<int, XdmfFloat64> TimeStepsRev;
 
  219   bool IsValid() { 
return (this->XMLDomain != 0); }
 
  234   xdmf2::XdmfGrid* GetGrid(XdmfInt64 cc);
 
  243   int GetVTKDataType();
 
  249   const std::map<XdmfFloat64, int>& 
GetTimeSteps() { 
return this->TimeSteps; }
 
  256   int GetIndexForTime(
double time);
 
  265     std::map<int, XdmfFloat64>::iterator iter = this->TimeStepsRev.find(
index);
 
  266     return (iter != this->TimeStepsRev.end()) ? iter->second : 0.0;
 
  275   xdmf2::XdmfGrid* GetGrid(xdmf2::XdmfGrid* xmfGrid, 
double time);
 
  281   bool IsStructured(xdmf2::XdmfGrid*);
 
  289   bool GetWholeExtent(xdmf2::XdmfGrid*, 
int extents[6]);
 
  297   bool GetOriginAndSpacing(xdmf2::XdmfGrid*, 
double origin[3], 
double spacing[3]);
 
  304   int GetVTKDataType(xdmf2::XdmfGrid* xmfGrid);
 
  308   static int GetDataDimensionality(xdmf2::XdmfGrid* xmfGrid);
 
  326   void CollectMetaData();
 
  329   void CollectMetaData(xdmf2::XdmfGrid* xmfGrid, 
vtkIdType silParent);
 
  332   void CollectNonLeafMetaData(xdmf2::XdmfGrid* xmfGrid, 
vtkIdType silParent);
 
  335   void CollectLeafMetaData(xdmf2::XdmfGrid* xmfGrid, 
vtkIdType silParent);
 
  342   bool UpdateGridAttributeInSIL(xdmf2::XdmfAttribute* xmfAttribute, 
vtkIdType gridSILId);