Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / conversion / ensight / part / ensightPartFaces.H
blob40337717d9b6aea3b1dd5a833913072df2d53559
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::ensightPartFaces
27 Description
28     An implementation of ensightPart to hold volume mesh faces.
30 SourceFiles
31     ensightPartFaces.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef ensightPartFaces_H
36 #define ensightPartFaces_H
38 #include "ensightPart.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 /*---------------------------------------------------------------------------*\
46                      Class ensightPartFaces Declaration
47 \*---------------------------------------------------------------------------*/
49 class ensightPartFaces
51     public ensightPart
53     // Private Member Functions
55         //- Disallow default bitwise assignment
56         void operator=(const ensightPartFaces&);
58         //- track points used
59         virtual localPoints calcLocalPoints() const;
61         //- element connectivity
62         virtual void writeConnectivity
63         (
64             ensightGeoFile& os,
65             const string& key,
66             const labelList& idList,
67             const labelList& pointMap
68         ) const;
71 protected:
73     //- addressable ensight element types
74     enum elemType
75     {
76         tria3Elements,
77         quad4Elements,
78         nsidedElements
79     };
81     // Static data members
82     static List<word> elemTypes_;
85 public:
87     //- Runtime type information
88     TypeName("ensightFaces");
90     // Constructors
92         //- Construct empty part with number and description
93         ensightPartFaces(label partNumber, const string& partDescription);
95         //- Construct from polyMesh and polyPatch
96         ensightPartFaces
97         (
98             label partNumber,
99             const polyMesh&,
100             const polyPatch&
101         );
103         //- Construct as copy
104         ensightPartFaces(const ensightPartFaces&);
106         //- Construct from Istream
107         ensightPartFaces(Istream&);
109         //- Construct on freestore from Istream
110         static autoPtr<ensightPartFaces> New(Istream& is)
111         {
112             return autoPtr<ensightPartFaces>(new ensightPartFaces(is));
113         }
116     //- Destructor
117     virtual ~ensightPartFaces();
120     // Member Functions
122         //- static listing of the element types
123         virtual List<word> const& elementTypes() const
124         {
125             return elemTypes_;
126         }
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 } // End namespace Foam
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 #endif
138 // ************************************************************************* //