Loading [MathJax]/extensions/tex2jax.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
WriterIface.hpp
Go to the documentation of this file.
1 /** 2  * MOAB, a Mesh-Oriented datABase, is a software component for creating, 3  * storing and accessing finite element mesh data. 4  * 5  * Copyright 2004 Sandia Corporation. Under the terms of Contract 6  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government 7  * retains certain rights in this software. 8  * 9  * This library is free software; you can redistribute it and/or 10  * modify it under the terms of the GNU Lesser General Public 11  * License as published by the Free Software Foundation; either 12  * version 2.1 of the License, or (at your option) any later version. 13  * 14  */ 15  16 #ifndef MOAB_WRITER_IFACE_HPP 17 #define MOAB_WRITER_IFACE_HPP 18  19 #include <vector> 20 #include <string> 21 #include "moab/Types.hpp" 22  23 namespace moab 24 { 25  26 class FileOptions; 27  28 /** 29  *\brief Interface for mesh writer implementations. 30  *\version 1.00 31  *\date 2004-4-23 32  *\author Jason Kraftcheck 33  */ 34 class WriterIface 35 { 36  public: 37  virtual ~WriterIface() {} 38  39  /** 40  *\brief Export mesh to a file. 41  * 42  * Method all writers must provide to export a mesh. 43  * 44  *\param file_name The name of the file to create. 45  *\param overwrite If false, reader should fail if the file already 46  * exists. 47  *\param meshset_list A list of meshsets to export, or NULL if the 48  * whole mesh is to be exported. 49  *\param num_sets The length of <code>meshset_list</code> or zero 50  * if the whole mesh is to be exported. 51  *\param qa_records File history metadata 52  *\param tag_list Array of handles for tags to write. If null, 53  * write all tags. If non-NULL but num_tags is 54  * zero, write no tags. 55  *\param requseted_output_dimension The geometric dimension of the 56  * output mesh (coord values per vertex.) If 57  * zero, the dimension of the mesh as returned 58  * from Interface should be used. 59  *\author Jason Kraftcheck 60  */ 61  virtual ErrorCode write_file( const char* file_name, 62  const bool overwrite, 63  const FileOptions& opts, 64  const EntityHandle* meshset_list, 65  const int num_sets, 66  const std::vector< std::string >& qa_records, 67  const Tag* tag_list = NULL, 68  int num_tags = 0, 69  int requested_output_dimension = 3 ) = 0; 70 }; 71  72 } // namespace moab 73  74 #endif