Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / mesh / cfMesh / utilities / containers / Lists / cellListPMG.H
blob014d29f6ab7dc9ea99500af7bfe3c2c775569b29
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | cfMesh: A library for mesh generation
4    \\    /   O peration     |
5     \\  /    A nd           | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6      \\/     M anipulation  | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
9     This file is part of cfMesh.
11     cfMesh 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     cfMesh 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 cfMesh.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     cellListPMG
27 Description
28     This is a container with additional size to prevent re-allocation
29     every time it is resized
31 SourceFiles
34 \*---------------------------------------------------------------------------*/
36 #ifndef cellListPMG_H
37 #define cellListPMG_H
39 #include "cellList.H"
40 #include "Istream.H"
41 #include "Ostream.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 class cellListPMG
51     : public cellList
53     // Private data
54         //- number of used elements
55         label nElmts_;
57     // Disallow bitwise assignment
58         void operator=(const cellListPMG&);
60         cellListPMG(const cellListPMG&);
62     // Disallow transfer from cellList
63         void transfer(cellList&);
65 public:
67     // Constructors
68         //- null construct
69         inline cellListPMG();
71     // Destructor
72         inline ~cellListPMG();
74     // Member functions
75         //- return the number of used elements
76         inline label size() const;
78         //- set the number of used elements
79         inline void setSize(const label nElmts);
81         //- set the size to zero
82         inline void clear();
84         //- add a cell at the end of the list
85         inline void append(const cell&);
87         //- return an element with bound checking
88         inline cell& newElmt(const label);
90     // Member operators
91         inline void operator=(const cellList&);
93         friend inline Ostream& operator<<(Ostream&, const cellListPMG&);
95         friend inline Istream& operator>>(Istream&, cellListPMG&);
98 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
100 } // End namespace Foam
102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104 #include "cellListPMGI.H"
106 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 #endif
110 // ************************************************************************* //