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/>.
28 User-selected list of feature edges used in the meshing process
33 \*---------------------------------------------------------------------------*/
35 #ifndef triSurfFeatureEdges_H
36 #define triSurfFeatureEdges_H
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 #include "edgeLongList.H"
41 #include "meshSubset.H"
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 class triSurfFeatureEdges
54 //- list of feature edges
55 edgeLongList featureEdges_;
57 //- map of edge subsets
58 Map<meshSubset> featureEdgeSubsets_;
60 // Disallow bitwise assignment
61 void operator=(const triSurfFeatureEdges&);
63 triSurfFeatureEdges(const triSurfFeatureEdges&);
69 triSurfFeatureEdges();
71 //- Construct from feature edges
72 triSurfFeatureEdges(const edgeLongList& triangles);
75 ~triSurfFeatureEdges();
78 //- return the number of feature edges
79 inline label nFeatureEdges() const;
81 //- access to feature edges
82 inline const edgeLongList& featureEdges() const;
84 //- append an edge to the end of the list
85 inline void appendFeatureEdge(const edge& e);
88 label addEdgeSubset(const word&);
89 void removeEdgeSubset(const label);
90 word edgeSubsetName(const label) const;
91 label edgeSubsetIndex(const word&) const;
92 inline void addEdgeToSubset(const label, const label);
93 inline void removeEdgeFromSubset(const label, const label);
94 inline void edgeInSubsets(const label, DynList<label>&) const;
95 inline void edgeSubsetIndices(DynList<label>&) const;
96 template<class ListType>
97 inline void edgesInSubset(const label, ListType&) const;
98 template<class ListType>
99 inline void updateEdgeSubsets(const ListType&);
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 } // End namespace Foam
108 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
110 #include "triSurfFeatureEdgesI.H"
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //