]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
0021542: EDF 1699 SMESH: Reorient a group of faces
authoreap <eap@opencascade.com>
Fri, 29 Jun 2012 13:47:33 +0000 (13:47 +0000)
committereap <eap@opencascade.com>
Fri, 29 Jun 2012 13:47:33 +0000 (13:47 +0000)
+  // Return height of the tree, full or from this level to topest leaf
+  int                    getHeight(const bool full=true) const;

src/SMESHUtils/SMESH_Octree.cxx
src/SMESHUtils/SMESH_Octree.hxx

index 9c06e9f3ad308bbc850e9923db0ea1c53cc9db73..00778a729a6af359750e34b05ff09bf86426c6ad 100644 (file)
@@ -175,7 +175,7 @@ bool SMESH_Octree::isLeaf() const
 
 double SMESH_Octree::maxSize() const
 {
-  if ( myBox )
+  if ( myBox && !myBox->IsVoid() )
   {
     gp_XYZ min = myBox->CornerMin();
     gp_XYZ max = myBox->CornerMax();
@@ -185,3 +185,27 @@ double SMESH_Octree::maxSize() const
   }
   return 0.;
 }
+
+//================================================================================
+/*!
+ * \brief Return height of the tree, full or from this level to topest leaf
+ */
+//================================================================================
+
+int SMESH_Octree::getHeight(const bool full) const
+{
+  if ( full && myFather )
+    return myFather->getHeight( true );
+
+  if ( isLeaf() )
+    return 1;
+
+  int heigth = 0;
+  for (int i = 0; i<8; i++)
+  {
+    int h = myChildren[i]->getHeight( false );
+    if ( h > heigth )
+      heigth = h;
+  }
+  return heigth + 1;
+}
index eaa27399ba5f868001c793f1c14190e933b55585..97d767a60cffb0d7bab10d123c625dd616c89273 100644 (file)
@@ -76,6 +76,9 @@ public:
   // Return index of a child the given point is in
   inline int             getChildIndex(double x, double y, double z, const gp_XYZ& boxMiddle)const;
 
+  // Return height of the tree, full or from this level to topest leaf
+  int                    getHeight(const bool full=true) const;
+
 protected:
   // Return box of the whole tree
   virtual Bnd_B3d*       buildRootBox() = 0;