diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index a5eac37dc041c5ee4ce09ba9654f1c97abc10b3b..22296bf55d62ddfada7632dada3245ce2e646615 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -35,7 +35,8 @@ void OCC_Internals::buildLists() addShapeToLists(shape); } -void OCC_Internals::buildShapeFromGModel(GModel* gm){ +void OCC_Internals::buildShapeFromGModel(GModel* gm) +{ somap.Clear(); shmap.Clear(); fmap.Clear(); diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp index cbf2d27dec0f32c5b1542a4db29669de98d1db19..843a2dec8e8f54efc76c9d1182dc5c73b6a3a71e 100644 --- a/Geo/OCCFace.cpp +++ b/Geo/OCCFace.cpp @@ -70,6 +70,12 @@ void OCCFace::setup() if(!e){ Msg::Error("Unknown edge in face %d", tag()); } + else if(edge.Orientation() == TopAbs_INTERNAL){ + Msg::Info("Adding embedded edge %d", e->tag()); + embedded_edges.push_back(e); + OCCEdge *occe = (OCCEdge*)e; + occe->setTrimmed(this); + } else{ l_wire.push_back(e); Msg::Debug("Edge %d (%d --> %d) ori %d", e->tag(), @@ -123,6 +129,20 @@ void OCCFace::setup() // (*it)->getBeginVertex()->tag(), (*it)->getEndVertex()->tag(), // (*it)->isSeam(this)); // } + + /* + for(exp2.Init(s, TopAbs_VERTEX); exp2.More(); exp2.Next()){ + TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current()); + GVertex *v = model()->getOCCInternals()->getOCCVertexByNativePtr(model(), vertex); + if(!v){ + Msg::Error("Unknown vertex in face %d", tag()); + } + else if(vertex.Orientation() == TopAbs_INTERNAL){ + Msg::Info("Adding embedded vertex %d", v->tag()); + embedded_vertices.push_back(v); + } + } + */ } SBoundingBox3d OCCFace::bounds() const