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 / meshes / triSurf / triSurfPoints.C
blob45b652f94ca1726eb3121cbccaa4eb6b23c17ccb
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
26 \*---------------------------------------------------------------------------*/
28 #include "triSurfPoints.H"
30 namespace Foam
33 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
35 triSurfPoints::triSurfPoints()
37     points_(),
38     pointSubsets_()
41 triSurfPoints::triSurfPoints(const pointField& points)
43     points_(points),
44     pointSubsets_()
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 // Destructor
49 triSurfPoints::~triSurfPoints()
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 label triSurfPoints::addPointSubset(const word& subsetName)
56     label id = pointSubsetIndex(subsetName);
57     if( id >= 0 )
58     {
59         Warning << "Point subset " << subsetName << " already exists!" << endl;
60         return id;
61     }
63     id = 0;
64     forAllConstIter(Map<meshSubset>, pointSubsets_, it)
65         id = Foam::max(id, it.key()+1);
67     pointSubsets_.insert
68     (
69         id,
70         meshSubset(subsetName, meshSubset::POINTSUBSET)
71     );
73     return id;
76 void triSurfPoints::removePointSubset(const label subsetID)
78     if( pointSubsets_.find(subsetID) == pointSubsets_.end() )
79         return;
81     pointSubsets_.erase(subsetID);
84 word triSurfPoints::pointSubsetName(const label subsetID) const
86     Map<meshSubset>::const_iterator it = pointSubsets_.find(subsetID);
87     if( it == pointSubsets_.end() )
88     {
89         Warning << "Subset " << subsetID << " is not a point subset" << endl;
90         return word();
91     }
93     return it().name();
96 label triSurfPoints::pointSubsetIndex(const word& subsetName) const
98     forAllConstIter(Map<meshSubset>, pointSubsets_, it)
99     {
100         if( it().name() == subsetName )
101             return it.key();
102     }
104     return -1;
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 } // End namespace Foam
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //