MOAB: Mesh Oriented datABase
(version 5.4.1)
|
00001 /** 00002 * MOAB, a Mesh-Oriented datABase, is a software component for creating, 00003 * storing and accessing finite element mesh data. 00004 * 00005 * Copyright 2004 Sandia Corporation. Under the terms of Contract 00006 * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government 00007 * retains certain rights in this software. 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Lesser General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2.1 of the License, or (at your option) any later version. 00013 * 00014 */ 00015 00016 #ifndef MOAB_WRITER_IFACE_HPP 00017 #define MOAB_WRITER_IFACE_HPP 00018 00019 #include <vector> 00020 #include <string> 00021 #include "moab/Types.hpp" 00022 00023 namespace moab 00024 { 00025 00026 class FileOptions; 00027 00028 /** 00029 *\brief Interface for mesh writer implementations. 00030 *\version 1.00 00031 *\date 2004-4-23 00032 *\author Jason Kraftcheck 00033 */ 00034 class WriterIface 00035 { 00036 public: 00037 virtual ~WriterIface() {} 00038 00039 /** 00040 *\brief Export mesh to a file. 00041 * 00042 * Method all writers must provide to export a mesh. 00043 * 00044 *\param file_name The name of the file to create. 00045 *\param overwrite If false, reader should fail if the file already 00046 * exists. 00047 *\param meshset_list A list of meshsets to export, or NULL if the 00048 * whole mesh is to be exported. 00049 *\param num_sets The length of <code>meshset_list</code> or zero 00050 * if the whole mesh is to be exported. 00051 *\param qa_records File history metadata 00052 *\param tag_list Array of handles for tags to write. If null, 00053 * write all tags. If non-NULL but num_tags is 00054 * zero, write no tags. 00055 *\param requseted_output_dimension The geometric dimension of the 00056 * output mesh (coord values per vertex.) If 00057 * zero, the dimension of the mesh as returned 00058 * from Interface should be used. 00059 *\author Jason Kraftcheck 00060 */ 00061 virtual ErrorCode write_file( const char* file_name, 00062 const bool overwrite, 00063 const FileOptions& opts, 00064 const EntityHandle* meshset_list, 00065 const int num_sets, 00066 const std::vector< std::string >& qa_records, 00067 const Tag* tag_list = NULL, 00068 int num_tags = 0, 00069 int requested_output_dimension = 3 ) = 0; 00070 }; 00071 00072 } // namespace moab 00073 00074 #endif