Forward compatibility: flex
[foam-extend-3.2.git] / src / mesh / cfMesh / utilities / meshes / polyMeshGen / polyMeshGenPoints.H
blob242e0145ee507b23cdcb8b4352b3018be1bd9236
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 Class
25     polyMeshGenPoints
27 Description
28     Mesh with geometry information
30 SourceFiles
31     polyMeshGenPoints.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef polyMeshGenPoints_H
36 #define polyMeshGenPoints_H
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 #include "objectRegistry.H"
41 #include "foamTime.H"
42 #include "meshSubset.H"
43 #include "pointFieldPMG.H"
44 #include "DynList.H"
46 #include <map>
48 namespace Foam
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 class polyMeshGenPoints
55 protected:
57     // Protected data
58         //- reference to the Time registry
59         const Time& runTime_;
61         //- list of vertices
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&);
72 public:
74     friend class polyMeshGenModifier;
76     // Constructors
77         //- Null constructor
78         polyMeshGenPoints(const Time&);
80         //- Construct from components without the boundary
81         polyMeshGenPoints
82         (
83             const Time&,
84             const pointField& points
85         );
87     // Destructor
88         ~polyMeshGenPoints();
90     // Member functions
91         //- access to Time
92         inline const Time& returnTime() const;
94         //- access to points
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);
103         //- point subsets
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&);
117     // Read mesh
118         void read();
120     // Write mesh
121         void write() const;
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 } // End namespace Foam
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
130 #include "polyMeshGenPointsI.H"
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
134 #endif
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //