![]() |
Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
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
00020 #include
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 meshset_list
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