From e8158bce0f86be43229dab3c649755d960f82f8e Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Fri, 13 Feb 2015 18:12:56 +0000 Subject: [PATCH] first test of automatic embedded edges/vertices in OCC faces --- Geo/GModelIO_OCC.cpp | 3 ++- Geo/OCCFace.cpp | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index a5eac37dc0..22296bf55d 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 cbf2d27dec..843a2dec8e 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 -- GitLab