00001 #ifndef _MY_HDF5OrthoRead_ 00002 #define _MY_HDF5OrthoRead_ 00003 #include "orthomesh.h" 00004 #include "hdf5orthoinfo.h" 00005 #ifdef MACOS 00006 #include <ext/hash_map> 00007 #else 00008 #include <ext/hash_map> 00009 #endif 00010 00011 #include "stringhashfun.h" 00012 #include "hdf5reader.h" 00013 #include "hdf5operator.h" 00014 00019 class HDF5OrthoReader : public HDF5Reader 00020 { 00021 private: 00022 typedef __gnu_cxx::hash_map<string,OrthoMesh*,StringHashFun,struct eqstr> MeshHeap; 00023 MeshHeap _meshCash; 00024 protected: 00025 HDF5OrthoInfo readOrthoMeshInfo(hid_t triaGroup); 00026 00027 public: 00028 HDF5OrthoReader(bool debuginfo=false); 00029 OrthoMesh& getMesh(string strMeshName); 00030 void readScalars(VecDouble &vec,std::string dataSetName); 00031 hid_t getFile(); 00032 ~HDF5OrthoReader(){}; 00033 OrthoMesh* loadOrthoMesh(std::string strMeshName); 00034 void iterateTree(hid_t id,HDF5Operator &op); 00035 // HDF5ObjArray getObjs( 00036 void list(); 00037 }; 00038 00039 #endif