From 861641c25a531aaa991b8d31ff09ac15d9edbc10 Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 31 Jan 2011 13:07:07 +0000 Subject: [PATCH] 0020973: EDF 1554 GHS3DPLUGIN: Make possible to have a mixed mesh hexa-tetra with GHS3D enlarge box size of each branch by 1e-10 of root size --- src/SMESH/SMESH_Octree.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/SMESH/SMESH_Octree.cxx b/src/SMESH/SMESH_Octree.cxx index 519f9ad14..9cc501e32 100644 --- a/src/SMESH/SMESH_Octree.cxx +++ b/src/SMESH/SMESH_Octree.cxx @@ -107,6 +107,14 @@ void SMESH_Octree::buildChildren() gp_XYZ mid = min + HSize; gp_XYZ childHsize = HSize/2.; + // get the whole model size + double rootSize = 0; + { + SMESH_Octree* root = this; + while ( root->myLevel > 0 ) + root = root->myFather; + rootSize = root->maxSize(); + } Standard_Real XminChild, YminChild, ZminChild; gp_XYZ minChild; for (int i = 0; i < 8; i++) @@ -134,6 +142,7 @@ void SMESH_Octree::buildChildren() myChildren[i]->myLimit = myLimit; myChildren[i]->myLevel = myLevel + 1; myChildren[i]->myBox = new Bnd_B3d(minChild+childHsize,childHsize); + myChildren[i]->myBox->Enlarge( rootSize * 1e-10 ); if ( myLimit->myMinBoxSize > 0. && myChildren[i]->maxSize() <= myLimit->myMinBoxSize ) myChildren[i]->myIsLeaf = true; }