Adding cfMesh-v1.0 into the repository
[foam-extend-3.2.git] / src / meshLibrary / utilities / meshes / triSurf / triSurfFeatureEdges.C
blob3a3649c97bda0fec8686819a3218757241634060
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 "triSurfFeatureEdges.H"
30 namespace Foam
33 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
35 triSurfFeatureEdges::triSurfFeatureEdges()
37     featureEdges_(),
38     featureEdgeSubsets_()
41 triSurfFeatureEdges::triSurfFeatureEdges(const edgeLongList& featureEdges)
43     featureEdges_(featureEdges),
44     featureEdgeSubsets_()
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 // Destructor
49 triSurfFeatureEdges::~triSurfFeatureEdges()
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 label triSurfFeatureEdges::addEdgeSubset(const word& subsetName)
56     label id = edgeSubsetIndex(subsetName);
57     if( id >= 0 )
58     {
59         Warning << "Edge subset " << subsetName << " already exists!" << endl;
60         return id;
61     }
63     id = 0;
64     forAllConstIter(Map<meshSubset>, featureEdgeSubsets_, it)
65         id = Foam::max(id, it.key()+1);
67     featureEdgeSubsets_.insert
68     (
69         id,
70         meshSubset(subsetName, meshSubset::FEATUREEDGESUBSET)
71     );
73     return id;
76 void triSurfFeatureEdges::removeEdgeSubset(const label subsetID)
78     if( featureEdgeSubsets_.find(subsetID) == featureEdgeSubsets_.end() )
79         return;
81     featureEdgeSubsets_.erase(subsetID);
84 word triSurfFeatureEdges::edgeSubsetName(const label subsetID) const
86     Map<meshSubset>::const_iterator it = featureEdgeSubsets_.find(subsetID);
87     if( it == featureEdgeSubsets_.end() )
88     {
89         Warning << "Subset " << subsetID << " is not an edge subset" << endl;
90         return word();
91     }
93     return it().name();
96 label triSurfFeatureEdges::edgeSubsetIndex(const word& subsetName) const
98     forAllConstIter(Map<meshSubset>, featureEdgeSubsets_, it)
99     {
100         if( it().name() == subsetName )
101             return it.key();
102     }
104     return -1;
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 } // End namespace Foam
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //