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 WRITE_SMF_HPP
17 #define WRITE_SMF_HPP
18
19 #include <iosfwd>
20
21 #include "moab/Forward.hpp"
22 #include "moab/WriterIface.hpp"
23
24 namespace moab
25 {
26
27 class WriteUtilIface;
28
29 class WriteSmf : public WriterIface
30 {
31
32 public:
33 //! Constructor
34 WriteSmf( Interface* impl );
35
36 //! Destructor
37 virtual ~WriteSmf();
38
39 static WriterIface* factory( Interface* );
40
41 //! writes out a file
42 ErrorCode write_file( const char* file_name,
43 const bool overwrite,
44 const FileOptions& opts,
45 const EntityHandle* output_list,
46 const int num_sets,
47 const std::vector< std::string >& qa_list,
48 const Tag* tag_list = NULL,
49 int num_tags = 0,
50 int export_dimension = 3 );
51
52 private:
53 Interface* mbImpl;
54 WriteUtilIface* writeTool;
55 };
56
57 } // namespace moab
58
59 #endif