42 void Foam::edgeSurface::writeOBJ
51 const point& pt = points[pointI];
53 os <<
"v " << pt.
x() <<
' ' << pt.y() <<
' ' << pt.z() <<
endl;
57 const edge&
e = edges[edgeI];
59 os <<
"l " << e.start()+1 <<
' ' << e.end()+1 <<
endl;
75 const point& pt = points[pointI];
77 os <<
"v " << pt.
x() <<
' ' << pt.y() <<
' ' << pt.z() <<
endl;
81 const edge& e = edges[edgeLabels[i]];
83 os <<
"l " << e.start()+1 <<
' ' << e.end()+1 <<
endl;
89 void Foam::edgeSurface::calcPointEdges()
91 pointEdges_.setSize(points_.size());
97 const edge& e = edges_[edgeI];
103 forAll(pointEdges_, pointI)
105 pointEdges_[pointI].setSize(pointNEdges[pointI]);
112 const edge& e = edges_[edgeI];
115 pEdges0[pointNEdges[e[0]]++] = edgeI;
118 pEdges1[pointNEdges[e[1]]++] = edgeI;
129 const bool isFirstSurface,
134 nSurfacePoints_(surf.
nPoints()),
136 nSurfaceEdges_(surf.
nEdges()),
138 faceEdges_(surf.
size()),
139 pointEdges_(points_.size())
150 points_[pointI++] = surfPoints[i];
157 points_[pointI++] = cutPoints[i];
175 const edge& e = surfEdges[edgeI];
181 label freeNewEdgeI = allEdges.
size();
183 if (extraVerts.
empty())
198 extraVerts[0] + nSurfacePoints_
202 for (label extraI = 1; extraI < extraVerts.
size(); extraI++)
208 extraVerts[extraI-1] + nSurfacePoints_,
209 extraVerts[extraI] + nSurfacePoints_
217 extraVerts[extraVerts.
size()-1] + nSurfacePoints_,
228 for (label eI = freeNewEdgeI; eI < allEdges.size(); eI++)
230 allParentEdges.
append(edgeI);
234 allFaceEdges[myFaces[myFaceI]].append(eI);
240 nSurfaceEdges_ = allEdges.size();
249 const edge& e = cutEdges[i];
251 allEdges.
append(
edge(e[0] + nSurfacePoints_, e[1] + nSurfacePoints_));
268 label edgeI = iter();
285 allFaceEdges[faceI].append(edgeI + nSurfaceEdges_);
290 parentEdges_.transfer(allParentEdges);
292 forAll(allFaceEdges, faceI)
294 faceEdges_[faceI].transfer(allFaceEdges[faceI]);
306 Pout<<
"edgeSurface : Dumping faceEdges to files" <<
endl;
310 const labelList& fEdges = faceEdges_[faceI];
312 if (fEdges.
size() != 3)
315 Pout<<
"edgeSurface : Dumping faceEdges for face " << faceI
316 <<
" to " << faceFName <<
endl;
319 writeOBJ(points_, edges_, fEdges, fStream);
323 Pout<<
"edgeSurface : Dumping edges to edges.obj" <<
endl;
327 Pout<<
"edgeSurface : Dumping intersectionEdges to"
328 <<
" intersectionEdges.obj" <<
endl;
329 OFstream intEdgesStream(
"intersectionEdges.obj");
331 labelList edgeLabels(edges_.size() - nSurfaceEdges_);
334 for(label edgeI = nSurfaceEdges_; edgeI < edges_.size(); edgeI++)
336 edgeLabels[i++] = edgeI;
339 writeOBJ(points_, edges_, edgeLabels, intEdgesStream);
354 Pout<<
"Old face consisted of edges:" <<
endl;
356 const labelList& fEdges = faceEdges_[faceI];
359 const edge& e = edges_[fEdges[i]];
361 Pout<<
" " << fEdges[i] <<
' ' << e
362 << points_[e.
start()] <<
' ' << points_[e.
end()] <<
endl;
367 const label oldNEdges = edges_.size();
369 edges_.setSize(oldNEdges + additionalEdges.
size());
372 label newEdgeI = oldNEdges;
374 forAll(additionalEdges, i)
376 edges_[newEdgeI] = additionalEdges[i];
384 label nFEdges = fEdges.
size();
388 forAll(additionalEdges, i)
390 fEdges[nFEdges++] = oldNEdges + i;
400 const labelList& fEdges = faceEdges_[faceI];
402 Pout<<
"New face consists of edges:" <<
endl;
405 const edge& e = edges_[fEdges[i]];
407 Pout<<
" " << fEdges[i] <<
' ' << e
408 << points_[e.
start()] <<
' ' << points_[e.
end()] <<
endl;