Line data Source code
1 : // The libMesh Finite Element Library. 2 : // Copyright (C) 2002-2025 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner 3 : 4 : // This library is free software; you can redistribute it and/or 5 : // modify it under the terms of the GNU Lesser General Public 6 : // License as published by the Free Software Foundation; either 7 : // version 2.1 of the License, or (at your option) any later version. 8 : 9 : // This library is distributed in the hope that it will be useful, 10 : // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 : // Lesser General Public License for more details. 13 : 14 : // You should have received a copy of the GNU Lesser General Public 15 : // License along with this library; if not, write to the Free Software 16 : // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 : 18 : #ifndef LIBMESH_OFF_IO_H 19 : #define LIBMESH_OFF_IO_H 20 : 21 : // Local includes 22 : #include "libmesh/libmesh_common.h" 23 : #include "libmesh/mesh_input.h" 24 : 25 : namespace libMesh 26 : { 27 : 28 : // Forward declarations 29 : class MeshBase; 30 : 31 : /** 32 : * This class is responsible for reading an unstructured, triangulated 33 : * surface in the standard OFF OOGL format. 34 : * 35 : * \author John W. Peterson 36 : * \date 2004 37 : * \brief Reads OOF OOGL triangulated surface files. 38 : */ 39 : class OFFIO : public MeshInput<MeshBase> 40 : { 41 : public: 42 : /** 43 : * Constructor. Takes a non-const Mesh reference which it 44 : * will fill up with elements. 45 : */ 46 : explicit 47 : OFFIO (MeshBase &); 48 : 49 : /** 50 : * Reads in an OFF OOGL data file based on the string 51 : * you pass it. 52 : */ 53 : virtual void read (const std::string & name) override; 54 : 55 : private: 56 : /** 57 : * Implementation of the read() function. This function 58 : * is called by the public interface function and implements 59 : * reading the file. 60 : */ 61 : void read_stream (std::istream & in); 62 : }; 63 : 64 : 65 : // ------------------------------------------------------------ 66 : // OFFIO inline members 67 : inline 68 12 : OFFIO::OFFIO (MeshBase & mesh_in) : 69 12 : MeshInput<MeshBase> (mesh_in) 70 1 : {} 71 : 72 : 73 : } // namespace libMesh 74 : 75 : 76 : #endif // LIBMESH_OFF_IO_H