Forward compatibility: flex
[foam-extend-3.2.git] / src / conversion / ensight / part / ensightPartCells.H
blob9788b930d86a63494dd9d40e185ef60e9df227e1
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::ensightPartCells
27 Description
28     An implementation of ensightPart to hold volume mesh cells.
30 SourceFiles
31     ensightPartCells.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef ensightPartCells_H
36 #define ensightPartCells_H
38 #include "ensightPart.H"
39 #include "typeInfo.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                       Class ensightPartCells Declaration
48 \*---------------------------------------------------------------------------*/
50 class ensightPartCells
52     public ensightPart
54     // Private Member Functions
56         //- Disallow default bitwise assignment
57         void operator=(const ensightPartCells&);
59         //- classify the cell types
60         void classify(const labelList& idLabels = labelList::null());
62         //- track points used
63         virtual localPoints calcLocalPoints() const;
65         //- track the points used
66         // virtual void makeLocalPointMap();
68         //- element connectivity
69         virtual void writeConnectivity
70         (
71             ensightGeoFile& os,
72             const string& key,
73             const labelList& idList,
74             const labelList& pointMap
75         ) const;
78 protected:
80     //- addressable Ensight element types
81     enum elemType
82     {
83         tetra4Elements,
84         pyramid5Elements,
85         penta6Elements,
86         hexa8Elements,
87         nfacedElements
88     };
90     // Static data members
91     static List<word> elemTypes_;
94 public:
96     //- Runtime type information
97     TypeName("ensightCells");
99     // Constructors
101         //- Construct empty part with number and description
102         ensightPartCells(label partNumber, const string& partDescription);
104         //- Construct from polyMesh without zones
105         ensightPartCells(label partNumber, const polyMesh&);
107         //- Construct from polyMesh and list of (non-zoned) cells
108         ensightPartCells
109         (
110             label partNumber,
111             const polyMesh&,
112             const labelList&
113         );
115         //- Construct from polyMesh and cellZone
116         ensightPartCells
117         (
118             label partNumber,
119             const polyMesh&,
120             const cellZone&
121         );
123         //- Construct as copy
124         ensightPartCells(const ensightPartCells&);
126         //- Construct from Istream
127         ensightPartCells(Istream&);
129         //- Construct on freestore from Istream
130         static autoPtr<ensightPartCells> New(Istream& is)
131         {
132             return autoPtr<ensightPartCells>(new ensightPartCells(is));
133         }
136     //- Destructor
137     virtual ~ensightPartCells();
140     // Member Functions
142         //- static listing of the element types
143         virtual List<word> const& elementTypes() const
144         {
145             return elemTypes_;
146         }
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 } // End namespace Foam
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 #endif
158 // ************************************************************************* //