MOAB: Mesh Oriented datABase
(version 5.4.1)
|
00001 #ifndef READ_SMS_HPP 00002 #define READ_SMS_HPP 00003 00004 #include "moab/Forward.hpp" 00005 #include "moab/ReaderIface.hpp" 00006 #include "moab/Range.hpp" 00007 #include <vector> 00008 00009 namespace moab 00010 { 00011 00012 class ReadUtilIface; 00013 00014 // Base class for binary and ASCII readers 00015 class ReadSms : public ReaderIface 00016 { 00017 00018 public: 00019 //! factory method 00020 static ReaderIface* factory( Interface* ); 00021 00022 ErrorCode load_file( const char* file_name, 00023 const EntityHandle* file_set, 00024 const FileOptions& opts, 00025 const SubsetList* subset_list = 0, 00026 const Tag* file_id_tag = 0 ); 00027 00028 ErrorCode read_tag_values( const char* file_name, 00029 const char* tag_name, 00030 const FileOptions& opts, 00031 std::vector< int >& tag_values_out, 00032 const SubsetList* subset_list = 0 ); 00033 00034 //! Constructor 00035 ReadSms( Interface* impl = NULL ); 00036 00037 //! Destructor 00038 virtual ~ReadSms(); 00039 00040 private: 00041 ErrorCode add_entities( EntityHandle start, EntityHandle count, const Tag* file_id_tag ); 00042 00043 ErrorCode load_file_impl( FILE* file, const Tag* file_id_tag ); 00044 00045 ErrorCode get_set( std::vector< EntityHandle >* sets, 00046 int set_type, 00047 int set_id, 00048 Tag set_tag, 00049 EntityHandle& this_set, 00050 const Tag* file_id_tag ); 00051 00052 ErrorCode read_parallel_info( FILE* file_ptr ); 00053 00054 ReadUtilIface* readMeshIface; 00055 00056 //! interface instance 00057 Interface* mdbImpl; 00058 00059 Tag globalId, paramCoords, geomDimension; 00060 00061 int setId; 00062 }; 00063 00064 } // namespace moab 00065 00066 #endif