Forward compatibility: flex
[foam-extend-3.2.git] / src / mesh / cfMesh / utilities / meshes / polyMeshGen / polyMeshGenPointsI.H
blob6867f430f40ddd7d60ef08fcdb212fc0690624ac
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 Description
27 \*---------------------------------------------------------------------------*/
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32 #include "polyMeshGenPoints.H"
34 namespace Foam
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 inline const Time& polyMeshGenPoints::returnTime() const
41     return runTime_;
44 inline const pointFieldPMG& polyMeshGenPoints::points() const
46     return points_;
49 inline pointFieldPMG& polyMeshGenPoints::points()
51     return points_;
54 inline void polyMeshGenPoints::appendVertex(const point& p)
56     points_.append(p);
59 inline void polyMeshGenPoints::addPointToSubset
61     const label setI,
62     const label pointI
65     std::map<label, meshSubset>::iterator it = pointSubsets_.find(setI);
66     if( it == pointSubsets_.end() )
67         return;
69     it->second.addElement(pointI);
72 inline void polyMeshGenPoints::removePointFromSubset
74     const label setI,
75     const label pointI
78     std::map<label, meshSubset>::iterator it = pointSubsets_.find(setI);
79     if( it == pointSubsets_.end() )
80         return;
82     it->second.removeElement(pointI);
85 inline void polyMeshGenPoints::pointInSubsets
87     const label pointI,
88     DynList<label>& pointSubsets
89 ) const
91     pointSubsets.clear();
93     std::map<label, meshSubset>::const_iterator it;
94     for
95     (
96         it=pointSubsets_.begin();
97         it!=pointSubsets_.end();
98         ++it
99     )
100     {
101         if( it->second.contains(pointI) )
102             pointSubsets.append(it->first);
103     }
106 inline void polyMeshGenPoints::pointSubsetIndices(DynList<label>& indices) const
108     indices.clear();
110     std::map<label, meshSubset>::const_iterator it;
111     for
112     (
113         it=pointSubsets_.begin();
114         it!=pointSubsets_.end();
115         ++it
116     )
117         indices.append(it->first);
120 template<class ListType>
121 inline void polyMeshGenPoints::pointsInSubset
123     const label setI,
124     ListType& pointLabels
125 ) const
127     pointLabels.clear();
129     std::map<label, meshSubset>::const_iterator it =
130         pointSubsets_.find(setI);
131     if( it == pointSubsets_.end() )
132         return;
134     it->second.containedElements(pointLabels);
137 template<class ListType>
138 inline void polyMeshGenPoints::updatePointSubsets(const ListType& newNodeLabels)
140     for
141     (
142         std::map<label, meshSubset>::iterator it=pointSubsets_.begin();
143         it!=pointSubsets_.end();
144         ++it
145     )
146         it->second.updateSubset(newNodeLabels);
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 } // End namespace Foam
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //