1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | cfMesh: A library for mesh generation
5 \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6 \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
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
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/>.
27 \*---------------------------------------------------------------------------*/
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 inline cellListPMG::cellListPMG()
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 inline cellListPMG::~cellListPMG()
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56 inline label cellListPMG::size() const
61 inline void cellListPMG::setSize(const label nElmts)
63 if( nElmts >= cellList::size() )
65 if( cellList::size() != 0 )
67 Info << "Resizing cells!" << endl;
68 cellList copy(label(1.5*nElmts));
69 for(label i=0;i<nElmts_;++i)
70 copy[i].transfer(this->operator[](i));
72 cellList::transfer(copy);
76 cellList::setSize(label(1.5*nElmts));
83 inline void cellListPMG::clear()
88 inline void cellListPMG::append(const cell& c)
90 const label i = nElmts_;
92 this->operator[](i) = c;
95 inline cell& cellListPMG::newElmt(const label cI)
98 return this->operator[](cI);
101 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
103 inline void cellListPMG::operator=(const cellList& cls)
107 this->operator[](cI) = cls[cI];
110 inline Ostream& operator<<(Ostream& os, const cellListPMG& cls)
112 SubList<cell> c(cls, cls.nElmts_, 0);
118 inline Istream& operator>>(Istream& is, cellListPMG& cls)
120 cellList& cells = static_cast<cellList&>(cls);
122 cls.nElmts_ = cells.size();
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 } // End namespace Foam
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //