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 Mesh with geometry information
33 \*---------------------------------------------------------------------------*/
35 #ifndef polyMeshGenPoints_H
36 #define polyMeshGenPoints_H
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 #include "objectRegistry.H"
42 #include "meshSubset.H"
43 #include "pointFieldPMG.H"
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 class polyMeshGenPoints
58 //- reference to the Time registry
62 pointFieldPMG points_;
64 //- map of point subsets
65 std::map<label, meshSubset> pointSubsets_;
67 // Disallow bitwise assignment
68 void operator=(const polyMeshGenPoints&);
70 polyMeshGenPoints(const polyMeshGenPoints&);
74 friend class polyMeshGenModifier;
78 polyMeshGenPoints(const Time&);
80 //- Construct from components without the boundary
84 const pointField& points
92 inline const Time& returnTime() const;
95 inline const pointFieldPMG& points() const;
97 //- non-const access to points
98 inline pointFieldPMG& points();
100 //- append a vertex to the end of the list
101 inline void appendVertex(const point& p);
104 label addPointSubset(const word&);
105 void removePointSubset(const label);
106 word pointSubsetName(const label) const;
107 label pointSubsetIndex(const word&) const;
108 inline void addPointToSubset(const label, const label);
109 inline void removePointFromSubset(const label, const label);
110 inline void pointInSubsets(const label, DynList<label>&) const;
111 inline void pointSubsetIndices(DynList<label>&) const;
112 template<class ListType>
113 inline void pointsInSubset(const label, ListType&) const;
114 template<class ListType>
115 inline void updatePointSubsets(const ListType&);
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 } // End namespace Foam
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
130 #include "polyMeshGenPointsI.H"
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //