moab
|
00001 00016 //------------------------------------------------------------------------- 00017 // Filename : WriteGMV.hpp 00018 // 00019 // Purpose : Writer template 00020 // 00021 // Special Notes : 00022 // 00023 // Creator : Tim Tautges 00024 // 00025 // Date : 2/04 00026 // 00027 //------------------------------------------------------------------------- 00028 00029 #ifndef WRITEGMV_HPP 00030 #define WRITEGMV_HPP 00031 00032 #include "moab/Forward.hpp" 00033 #include "moab/WriterIface.hpp" 00034 00035 namespace moab { 00036 00037 class WriteUtilIface; 00038 00040 class WriteGMV : public WriterIface 00041 { 00042 00043 public: 00044 00046 WriteGMV(Interface *impl); 00047 00049 virtual ~WriteGMV(); 00050 00051 static WriterIface* factory( Interface* ); 00052 00053 ErrorCode write_file( const char* filename, 00054 const bool overwite, 00055 const FileOptions& opts, 00056 const EntityHandle* output_sets, 00057 const int num_output_sets, 00058 const std::vector<std::string>& qa_list, 00059 const Tag* tag_list = NULL, 00060 int num_tags = 0, 00061 int requested_dimension = 3); 00062 00064 ErrorCode write_file(const char *file_name, 00065 const EntityHandle output_set, 00066 const int user_dimension = 3, 00067 const bool mesh = true, 00068 const bool poly_mesh = true); 00069 00070 protected: 00071 00072 private: 00073 00075 Interface *mbImpl; 00076 WriteUtilIface* mWriteIface; 00077 00079 EntityHandle mCurrentMeshHandle; 00080 00083 Tag mMaterialSetTag; 00084 Tag mDirichletSetTag; 00085 Tag mNeumannSetTag; 00086 Tag mHasMidNodesTag; 00087 Tag mGeomDimensionTag; 00088 Tag mGlobalIdTag; 00089 00090 static const char *gmvTypeNames[MBMAXTYPE]; 00091 00092 ErrorCode local_write_mesh(const char *file_name, 00093 const EntityHandle output_set, 00094 const int user_dimension, 00095 const bool mesh, 00096 const bool poly_mesh); 00097 }; 00098 00099 } // namespace moab 00100 00101 #endif