From e275a51a622a4dd8d6433297f4c3e41e9b2ee90d Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sat, 1 Apr 2017 09:51:24 +0100 Subject: [PATCH] use correct entity bounding box for OCC entities --- Geo/GModel.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index ef1d3af007..772ac25ea6 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -742,16 +742,22 @@ SBoundingBox3d GModel::bounds(bool aroundVisible) { std::vector<GEntity*> entities; getEntities(entities); - // using the mesh vertices for now; should use entities[i]->bounds() instead SBoundingBox3d bb; - for(unsigned int i = 0; i < entities.size(); i++) + for(unsigned int i = 0; i < entities.size(); i++){ if(!aroundVisible || entities[i]->getVisibility()){ - if(entities[i]->dim() == 0) - bb += static_cast<GVertex*>(entities[i])->xyz(); - else - for(unsigned int j = 0; j < entities[i]->mesh_vertices.size(); j++) - bb += entities[i]->mesh_vertices[j]->point(); + if(entities[i]->getNativeType() == GEntity::OpenCascadeModel){ + bb += entities[i]->bounds(); + } + else{ + // using the mesh vertices for now + if(entities[i]->dim() == 0) + bb += static_cast<GVertex*>(entities[i])->xyz(); + else + for(unsigned int j = 0; j < entities[i]->mesh_vertices.size(); j++) + bb += entities[i]->mesh_vertices[j]->point(); + } } + } return bb; } -- GitLab