From bbee248796c79a97e431c95fcc9d9f05b2861228 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 4 Nov 2008 20:37:54 +0000 Subject: [PATCH] skipping embed edges from loops --- Geo/OCCFace.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp index 5ba119fe01..301f6a9afb 100644 --- a/Geo/OCCFace.cpp +++ b/Geo/OCCFace.cpp @@ -46,7 +46,14 @@ OCCFace::OCCFace(GModel *m, TopoDS_Face _s, int num, TopTools_IndexedMapOfShape TopoDS_Edge edge = TopoDS::Edge(exp3.Current()); int index = emap.FindIndex(edge); GEdge *e = m->getEdgeByTag(index); - if(e){ + if(!e){ + Msg::Error("Unknown edge %d in face %d", index, num); + } + else if(std::find(embedded_edges.begin(), embedded_edges.end(), e) != + embedded_edges.end()){ + Msg::Debug("OCC Face %d - Skipping embedded edge in loop", num); + } + else{ l_wire.push_back(e); Msg::Debug("Edge %d ori %d", e->tag(), edge.Orientation()); e->addFace(this); @@ -55,9 +62,6 @@ OCCFace::OCCFace(GModel *m, TopoDS_Face _s, int num, TopTools_IndexedMapOfShape occe->setTrimmed(this); } } - else{ - Msg::Error("Unknown edge %d in face %d", index, num); - } } GEdgeLoop el(l_wire); -- GitLab