Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
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  */
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