diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index faa41470767b73e19fc97778f5c879b079355eb9..c304d918edb07066e61df82d03c7470abc0aae8e 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -501,39 +501,39 @@ 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(); for(int i = 1; i <= nvertices; i++){ int num = model->getMaxElementaryNumber(0) + 1; - if (!getOCCVertexByNativePtr(model,TopoDS::Vertex(vmap(i)))) - model->add(new OCCVertex(model,num , TopoDS::Vertex(vmap(i)))); + if (!getOCCVertexByNativePtr(model, TopoDS::Vertex(vmap(i)))) + model->add(new OCCVertex(model, num, TopoDS::Vertex(vmap(i)))); } // building geom edges int nedges = emap.Extent(); for(int i = 1; i <= nedges; i++){ - int i1 = voffset + vmap.FindIndex(TopExp::FirstVertex(TopoDS::Edge(emap(i)))); - int i2 = voffset + vmap.FindIndex(TopExp::LastVertex(TopoDS::Edge(emap(i)))); + int i1 = vmap.FindIndex(TopExp::FirstVertex(TopoDS::Edge(emap(i)))); + int i2 = 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))); + if (!getOCCEdgeByNativePtr(model, TopoDS::Edge(emap(i)))){ + GVertex *v1 = getOCCVertexByNativePtr(model, TopoDS::Vertex(vmap(i1))); + GVertex *v2 = getOCCVertexByNativePtr(model, TopoDS::Vertex(vmap(i2))); + model->add(new OCCEdge(model, TopoDS::Edge(emap(i)), num, v1, v2)); + } } // building geom faces int nfaces = fmap.Extent(); for(int i = 1; i <= nfaces; i++){ int num = model->getMaxElementaryNumber(2) + 1; - if (!getOCCFaceByNativePtr(model,TopoDS::Face(fmap(i)))) + if (!getOCCFaceByNativePtr(model, TopoDS::Face(fmap(i)))) model->add(new OCCFace(model, TopoDS::Face(fmap(i)), num)); } // building geom regions int nvolumes = somap.Extent(); for(int i = 1; i <= nvolumes; i++){ int num = model->getMaxElementaryNumber(3) + 1; - if (!getOCCRegionByNativePtr(model,TopoDS::Solid(somap(i)))) + if (!getOCCRegionByNativePtr(model, TopoDS::Solid(somap(i)))) model->add(new OCCRegion(model, TopoDS::Solid(somap(i)), num)); } }