BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / surfMesh / surfaceFormats / ftr / FTRsurfaceFormat.H
blobe3ddd5788c3566cdc5e04611cb965a19ca1ae487
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::fileFormats::FTRsurfaceFormat
27 Description
28     Reading of the (now deprecated and infrequently used)
29     Foam Trisurface Format.
31 Deprecated
32     Other formats are better. (deprecated Mar 2009)
34 SourceFiles
35     FTRsurfaceFormat.C
37 \*---------------------------------------------------------------------------*/
39 #ifndef FTRsurfaceFormat_H
40 #define FTRsurfaceFormat_H
42 #include "IFstream.H"
43 #include "MeshedSurface.H"
44 #include "UnsortedMeshedSurface.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
50 namespace fileFormats
53 /*---------------------------------------------------------------------------*\
54                       Class FTRsurfaceFormat Declaration
55 \*---------------------------------------------------------------------------*/
57 template<class Face>
58 class FTRsurfaceFormat
60     public UnsortedMeshedSurface<Face>
62     // Private classes
64         //- read compatibility for ftr patch definitions
65         class ftrPatch
66         {
67             //- Name of patch
68             word name_;
70             //- Type of patch (ignored since it is usually "empty")
71             word type_;
73         public:
75             const word& name() const
76             {
77                 return name_;
78             }
80             friend Istream& operator>>(Istream& is, ftrPatch& p)
81             {
82                 is >> p.name_ >> p.type_;
83                 return is;
84             }
85         };
88     // Private Member Functions
90         //- Disallow default bitwise copy construct
91         FTRsurfaceFormat(const FTRsurfaceFormat<Face>&);
93         //- Disallow default bitwise assignment
94         void operator=(const FTRsurfaceFormat<Face>&);
97 public:
99     // Constructors
101         //- Construct from file name
102         FTRsurfaceFormat(const fileName&);
105     // Selectors
107         //- Read file and return surface
108         static autoPtr<UnsortedMeshedSurface<Face> > New(const fileName& name)
109         {
110             return autoPtr<UnsortedMeshedSurface<Face> >
111             (
112                 new FTRsurfaceFormat<Face>(name)
113             );
114         }
117     //- Destructor
118     virtual ~FTRsurfaceFormat()
119     {}
122     // Member Functions
124         //- Read from file
125         virtual bool read(const fileName&);
129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 } // End namespace fileFormats
132 } // End namespace Foam
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 #ifdef NoRepository
137 #   include "FTRsurfaceFormat.C"
138 #endif
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 #endif
144 // ************************************************************************* //