Fixed URL for libccmio-2.6.1 (bug report #5 by Thomas Oliveira)
[foam-extend-3.2.git] / src / mesh / cfMesh / utilities / meshes / triSurf / triSurfPoints.H
blob5df65e591421ccfa7d00994a8bbd92cbebf3f3bc
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     triSurfPoints
27 Description
28     Point coordinates information for triangulated surface
30 SourceFiles
31     triSurfPoints.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef triSurfPoints_H
36 #define triSurfPoints_H
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 #include "meshSubset.H"
41 #include "pointField.H"
42 #include "DynList.H"
43 #include "Map.H"
45 namespace Foam
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 class triSurfPoints
52 protected:
54     // Protected data
55         //- list of vertices
56         pointField points_;
58         //- map of point subsets
59         Map<meshSubset> pointSubsets_;
61     // Disallow bitwise assignment
62         void operator=(const triSurfPoints&);
64         triSurfPoints(const triSurfPoints&);
66 public:
68     // Constructors
69         //- Null constructor
70         triSurfPoints();
72         //- Construct from vertices
73         triSurfPoints(const pointField& points);
75     // Destructor
76         ~triSurfPoints();
78     // Member functions
79         //- return the number of points
80         inline label nPoints() const;
82         //- access to points
83         inline const pointField& points() const;
85         //- append a vertex to the end of the list
86         inline void appendVertex(const point& p);
88         //- point subsets
89         label addPointSubset(const word&);
90         void removePointSubset(const label);
91         word pointSubsetName(const label) const;
92         label pointSubsetIndex(const word&) const;
93         inline void addPointToSubset(const label, const label);
94         inline void removePointFromSubset(const label, const label);
95         inline void pointInSubsets(const label, DynList<label>&) const;
96         inline void pointSubsetIndices(DynList<label>&) const;
97         template<class ListType>
98         inline void pointsInSubset(const label, ListType&) const;
99         template<class ListType>
100         inline void updatePointSubsets(const ListType&);
103 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
105 } // End namespace Foam
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 #include "triSurfPointsI.H"
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
113 #endif
115 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //