ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / surfMesh / surfaceFormats / surfaceFormatsCore.H
blob39218b9bc936555807128902272f0c48565753fb
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::surfaceFormatsCore
27 Description
28     A collection of helper functions for reading/writing surface formats.
30 SourceFiles
31     surfaceFormatsCore.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef surfaceFormatsCore_H
36 #define surfaceFormatsCore_H
38 #include "Map.H"
39 #include "HashSet.H"
40 #include "labelList.H"
41 #include "surfZoneList.H"
42 #include "surfZoneIdentifierList.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 // Forward declaration of friend functions and operators
51 class IFstream;
52 class Time;
54 namespace fileFormats
57 /*---------------------------------------------------------------------------*\
58                      Class surfaceFormatsCore Declaration
59 \*---------------------------------------------------------------------------*/
61 class surfaceFormatsCore
63 protected:
65         //- Return a list with a single entry,
66         //  the size corresponds to that of the container
67         template<class Container>
68         static List<surfZone> oneZone
69         (
70             const Container& container,
71             const word& name = "zone0"
72         )
73         {
74             return List<surfZone>(1, surfZone(name, container.size(), 0, 0));
75         }
77         //- Read non-comment line
78         static string getLineNoComment(IFstream&);
81 public:
83     // Static Data
85         //- The file extension corresponding to 'native' surface format
86         //  Normally "ofs" (mnemonic: OF = OpenFOAM, S = Surface)
87         static word nativeExt;
90     // Static Member Functions
92         static bool checkSupport
93         (
94             const wordHashSet& available,
95             const word& ext,
96             const bool verbose,
97             const word& functionName
98         );
100         //- Return the local file name (within time directory)
101         //  NEEDS FIXING
102         static fileName localMeshFileName(const word& surfName="");
104         //- Find instance with surfName
105         //  NEEDS FIXING
106         static fileName findMeshInstance(const Time&, const word& surfName="");
108         //- Find mesh file with surfName
109         //  NEEDS FIXING
110         static fileName findMeshFile(const Time&, const word& surfName="");
113     // Constructors
115         //- Construct null
116         surfaceFormatsCore();
119     //- Destructor
120     virtual ~surfaceFormatsCore();
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 } // End namespace fileFormats
127 } // End namespace Foam
129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 #endif
133 // ************************************************************************* //