X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_Tree.hxx;h=4c0e16a7ed0424901da5f22a6f7c3cf4269d861c;hp=8f6d66f1af3268d192f6e297204ff21d7e88b454;hb=5d68554076bbca0e1e95fb0db215a6c2b84b6c54;hpb=2e6e5e83cbaaef5d6746944839eb47205e701c9f diff --git a/src/SMESHUtils/SMESH_Tree.hxx b/src/SMESHUtils/SMESH_Tree.hxx index 8f6d66f1a..4c0e16a7e 100644 --- a/src/SMESHUtils/SMESH_Tree.hxx +++ b/src/SMESHUtils/SMESH_Tree.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -85,7 +85,7 @@ class SMESH_Tree static int nbChildren() { return NB_CHILDREN; } - // Compute the bigger dimension of my box + // Compute the biggest dimension of my box virtual double maxSize() const = 0; protected: @@ -115,14 +115,14 @@ protected: // Tree limit const SMESH_TreeLimit* myLimit; -private: - // Build the children recursively - void buildChildren(); + // Bounding box of a tree + box_type* myBox; // Level of the Tree int myLevel; - box_type* myBox; + // Build the children recursively + void buildChildren(); }; //=========================================================================== @@ -141,7 +141,7 @@ SMESH_Tree::SMESH_Tree (SMESH_TreeLimit* limit): myLevel(0), myBox(0) { - if ( !myLimit ) myLimit = new SMESH_TreeLimit(); + //if ( !myLimit ) myLimit = new SMESH_TreeLimit(); } //================================================================================ @@ -155,6 +155,7 @@ void SMESH_Tree::compute() { if ( myLevel==0 ) { + if ( !myLimit ) myLimit = new SMESH_TreeLimit(); myBox = buildRootBox(); if ( myLimit->myMinBoxSize > 0. && maxSize() <= myLimit->myMinBoxSize ) myIsLeaf = true; @@ -218,6 +219,8 @@ void SMESH_Tree::buildChildren() myChildren[i] = newChild(); // and we assign to him its box. myChildren[i]->myFather = this; + if (myChildren[i]->myLimit) + delete myChildren[i]->myLimit; myChildren[i]->myLimit = myLimit; myChildren[i]->myLevel = myLevel + 1; myChildren[i]->myBox = newChildBox( i );