Salome HOME
+ bool findUVByHalfDivision( const gp_Pnt& thePoint, const gp_XY& theUV,
[modules/smesh.git] / src / SMESHUtils / SMESH_Tree.hxx
index 8f6d66f1af3268d192f6e297204ff21d7e88b454..cb821ce71a71460dcd126c09be2477e8ab955817 100644 (file)
@@ -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<BND_BOX,NB_CHILDREN>::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<BND_BOX,NB_CHILDREN>::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<BND_BOX,NB_CHILDREN>::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 );