Salome HOME
Merge from BR_V5_DEV 17Feb09
authorvsr <vsr@opencascade.com>
Tue, 17 Feb 2009 06:55:16 +0000 (06:55 +0000)
committervsr <vsr@opencascade.com>
Tue, 17 Feb 2009 06:55:16 +0000 (06:55 +0000)
src/SMESH/SMESH_MesherHelper.cxx
src/SMESH/SMESH_MesherHelper.hxx

index 292c29e..35bfeef 100644 (file)
@@ -1150,6 +1150,25 @@ bool SMESH_MesherHelper::LoadNodeColumns(TParam2ColumnMap & theParam2ColumnMap,
 }
 
 //=======================================================================
+/*!
+ * \brief Return number of unique ancestors of the shape
+ */
+//=======================================================================
+
+int SMESH_MesherHelper::NbAncestors(const TopoDS_Shape& shape,
+                                    const SMESH_Mesh&   mesh,
+                                    TopAbs_ShapeEnum    ancestorType/*=TopAbs_SHAPE*/)
+{
+  TopTools_MapOfShape ancestors;
+  TopTools_ListIteratorOfListOfShape ansIt( mesh.GetAncestors(shape) );
+  for ( ; ansIt.More(); ansIt.Next() ) {
+    if ( ancestorType == TopAbs_SHAPE || ansIt.Value().ShapeType() == ancestorType )
+      ancestors.Add( ansIt.Value() );
+  }
+  return ancestors.Extent();
+}
+
+//=======================================================================
 /**
  * Check mesh without geometry for: if all elements on this shape are quadratic,
  * quadratic elements will be created.
index f88f1fc..f9f9062 100644 (file)
@@ -106,6 +106,13 @@ public:
     return ind;
   }
 
+  /*!
+   * \brief Return number of unique ancestors of the shape
+   */
+  static int NbAncestors(const TopoDS_Shape& shape,
+                         const SMESH_Mesh&   mesh,
+                         TopAbs_ShapeEnum    ancestorType=TopAbs_SHAPE);
+
 public:
   // ---------- PUBLIC INSTANCE METHODS ----------