Branch data Line data Source code
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 : 52 : class WriterIface
35 : : {
36 : : public:
37 [ - + ]: 104 : 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, const bool overwrite, const FileOptions& opts,
62 : : const EntityHandle* meshset_list, const int num_sets,
63 : : const std::vector< std::string >& qa_records, const Tag* tag_list = NULL,
64 : : int num_tags = 0, int requested_output_dimension = 3 ) = 0;
65 : : };
66 : :
67 : : } // namespace moab
68 : :
69 : : #endif
|