Fixed URL for libccmio-2.6.1 (bug report #5 by Thomas Oliveira)
[foam-extend-3.2.git] / src / mesh / cfMesh / utilities / meshes / triSurf / triSurfPointsI.H
blob720c534b4505752065e7b4dc1cbc8394ab5eeb35
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
27 \*---------------------------------------------------------------------------*/
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32 #include "triSurfPoints.H"
34 namespace Foam
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 inline label triSurfPoints::nPoints() const
41     return points_.size();
44 inline const pointField& triSurfPoints::points() const
46     return points_;
49 inline void triSurfPoints::appendVertex(const point& p)
51     const label s = points_.size();
52     points_.setSize(s+1);
53     points_[s] = p;
56 inline void triSurfPoints::addPointToSubset
58     const label setI,
59     const label pointI
62     Map<meshSubset>::iterator it = pointSubsets_.find(setI);
63     if( it == pointSubsets_.end() )
64         return;
66     it().addElement(pointI);
69 inline void triSurfPoints::removePointFromSubset
71     const label setI,
72     const label pointI
75     Map<meshSubset>::iterator it = pointSubsets_.find(setI);
76     if( it == pointSubsets_.end() )
77         return;
79     it().removeElement(pointI);
82 inline void triSurfPoints::pointInSubsets
84     const label pointI,
85     DynList<label>& pointSubsets
86 ) const
88     pointSubsets.clear();
90     forAllConstIter
91     (
92         Map<meshSubset>,
93         pointSubsets_,
94         it
95     )
96     {
97         if( it().contains(pointI) )
98             pointSubsets.append(it.key());
99     }
102 inline void triSurfPoints::pointSubsetIndices(DynList<label>& indices) const
104     indices.clear();
106     forAllConstIter
107     (
108         Map<meshSubset>,
109         pointSubsets_,
110         it
111     )
112         indices.append(it.key());
115 template<class ListType>
116 inline void triSurfPoints::pointsInSubset
118     const label setI,
119     ListType& pointLabels
120 ) const
122     pointLabels.clear();
124     Map<meshSubset>::const_iterator it =
125         pointSubsets_.find(setI);
126     if( it == pointSubsets_.end() )
127         return;
129     it().containedElements(pointLabels);
132 template<class ListType>
133 inline void triSurfPoints::updatePointSubsets(const ListType& newNodeLabels)
135     for
136     (
137         Map<meshSubset>::iterator it=pointSubsets_.begin();
138         it!=pointSubsets_.end();
139         ++it
140     )
141         it().updateSubset(newNodeLabels);
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 } // End namespace Foam
148 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //