From 4967bb58cf33d971c8dc92d78f22e7671c80d7f1 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Thu, 9 Dec 2010 22:22:33 +0000 Subject: [PATCH] fix to allow merging of several occ models --- Geo/GModelIO_OCC.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index cc14fe9075..faa4147076 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -501,6 +501,7 @@ GRegion* OCC_Internals::addRegionToModel(GModel *model, TopoDS_Solid region){ void OCC_Internals::buildGModel(GModel *model) { + int voffset = model->getMaxElementaryNumber(0); // building geom vertices int nvertices = vmap.Extent(); @@ -513,11 +514,12 @@ void OCC_Internals::buildGModel(GModel *model) // building geom edges int nedges = emap.Extent(); for(int i = 1; i <= nedges; i++){ - int i1 = vmap.FindIndex(TopExp::FirstVertex(TopoDS::Edge(emap(i)))); - int i2 = vmap.FindIndex(TopExp::LastVertex(TopoDS::Edge(emap(i)))); + int i1 = voffset + vmap.FindIndex(TopExp::FirstVertex(TopoDS::Edge(emap(i)))); + int i2 = voffset + vmap.FindIndex(TopExp::LastVertex(TopoDS::Edge(emap(i)))); int num = model->getMaxElementaryNumber(1) + 1; if (!getOCCEdgeByNativePtr(model,TopoDS::Edge(emap(i)))) - model->add(new OCCEdge(model, TopoDS::Edge(emap(i)), num, model->getVertexByTag(i1), model->getVertexByTag(i2))); + model->add(new OCCEdge(model, TopoDS::Edge(emap(i)), num, + model->getVertexByTag(i1), model->getVertexByTag(i2))); } // building geom faces -- GitLab