44 copyFacets.
setSize(surf_.size());
58 if( parts[partI] ==
name )
60 copyPatch[patchI] =
true;
69 if( copyPatch[surf_[triI].region()] )
70 copyFacets[triI] =
true;
75 surf_.facetSubsetIndices(facetSubsetsIDs);
79 const word fsName = surf_.facetSubsetName(facetSubsetsIDs[i]);
83 if( parts[partI] == fsName )
86 surf_.facetsInSubset(facetSubsetsIDs[i], containedFacets);
88 forAll(containedFacets, cfI)
89 copyFacets[containedFacets[cfI]] =
true;
103 Info <<
"Starting copying surface parts" <<
endl;
116 forAll(surf_.patches(), patchI)
123 if( !copyFacets[triI] )
133 if( newPointLabel[tri[pI]] == -1 )
135 newPointLabel[tri[pI]] =
nPoints;
139 newTri[pI] = newPointLabel[tri[pI]];
142 newTriangleLabel[triI] =
s.size();
143 s.appendTriangle(newTri);
146 Info <<
"Copied triangles " <<
s.size() <<
endl;
155 if( newPointLabel[i] < 0 )
158 newPts[newPointLabel[i]] = pts[i];
163 surf_.pointSubsetIndices(subsetIds);
164 forAll(subsetIds, subsetI)
166 const label origId = subsetIds[subsetI];
167 const word sName = surf_.pointSubsetName(origId);
170 surf_.pointsInSubset(origId, pointsInSubset);
172 const label newId =
s.addPointSubset(sName);
175 const label newPointI = newPointLabel[pointsInSubset[i]];
180 s.addPointToSubset(newId, newPointI);
185 surf_.facetSubsetIndices(subsetIds);
186 forAll(subsetIds, subsetI)
188 const label origId = subsetIds[subsetI];
189 const word sName = surf_.facetSubsetName(origId);
192 surf_.facetsInSubset(origId, trianglesInSubset);
194 const label newId =
s.addFacetSubset(sName);
195 forAll(trianglesInSubset, i)
197 const label newTriI = newTriangleLabel[trianglesInSubset[i]];
202 s.addFacetToSubset(newId, newTriI);
208 const VRWGraph& pointEdges = surf_.pointEdges();
210 const VRWGraph& edgeFacets = surf_.edgeFacets();
211 forAll(newEdgeLabel, edgeI)
213 const edge&
e = surf_.featureEdges()[edgeI];
217 const label eJ = pointEdges(
e.start(), peI);
225 if( newPointLabel[
e.start()] < 0 )
227 if( newPointLabel[
e.end()] < 0 )
229 bool foundTriangle(
false);
232 if( newTriangleLabel[edgeFacets(eI, efI)] >= 0 )
234 foundTriangle =
true;
244 edge(newPointLabel[
e.start()], newPointLabel[
e.end()])
249 surf_.edgeSubsetIndices(subsetIds);
250 forAll(subsetIds, subsetI)
252 const label origId = subsetIds[subsetI];
253 const word sName = surf_.edgeSubsetName(origId);
256 surf_.edgesInSubset(origId, edgesInSubset);
258 const label newId =
s.addEdgeSubset(sName);
261 const label newEdgeI = newEdgeLabel[edgesInSubset[i]];
266 s.addEdgeToSubset(newId, newEdgeI);
270 Info <<
"Finished copying surface parts" <<
endl;