]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESH/SMESH_Mesh.cxx
Salome HOME
Remove not used files
[modules/smesh.git] / src / SMESH / SMESH_Mesh.cxx
index 308456021be04dd5705e11f232379155f971161b..8622faec56ff35b218ba2235fce7b8f7f357eb82 100644 (file)
@@ -267,14 +267,17 @@ SMESH_Hypothesis::Hypothesis_Status
 
   SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
   SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
-  if ( subMeshDS && subMeshDS->IsComplexSubmesh() )
+  if ( subMeshDS && subMeshDS->IsComplexSubmesh() ) // group of sub-shapes and maybe of not sub-
   {
+    MESSAGE("AddHypothesis() to complex submesh");
     // return the worst but not fatal state of all group memebers
     SMESH_Hypothesis::Hypothesis_Status aBestRet, aWorstNotFatal, ret;
     aBestRet = SMESH_Hypothesis::HYP_BAD_DIM;
     aWorstNotFatal = SMESH_Hypothesis::HYP_OK;
     for ( TopoDS_Iterator itS ( aSubShape ); itS.More(); itS.Next())
     {
+      if ( !GetMeshDS()->ShapeToIndex( itS.Value() ))
+        continue; // not sub-shape
       ret = AddHypothesis( itS.Value(), anHypId );
       if ( !SMESH_Hypothesis::IsStatusFatal( ret ) && ret > aWorstNotFatal )
         aWorstNotFatal = ret;
@@ -380,6 +383,8 @@ SMESH_Hypothesis::Hypothesis_Status
     aWorstNotFatal = SMESH_Hypothesis::HYP_OK;
     for ( TopoDS_Iterator itS ( aSubShape ); itS.More(); itS.Next())
     {
+      if ( !GetMeshDS()->ShapeToIndex( itS.Value() ))
+        continue; // not sub-shape
       ret = RemoveHypothesis( itS.Value(), anHypId );
       if ( !SMESH_Hypothesis::IsStatusFatal( ret ) && ret > aWorstNotFatal )
         aWorstNotFatal = ret;
@@ -1075,11 +1080,10 @@ void SMESH_Mesh::RemoveGroup (const int theGroupID)
 //=============================================================================
 const SMESH_Hypothesis* SMESH_Mesh::IsLocal1DHypothesis (const TopoDS_Shape& theEdge)
 {
-  SMESH_HypoFilter filter( SMESH_HypoFilter::HasDim( 1 ));
-  filter.AndNot( SMESH_HypoFilter::IsAlgo() );
-  filter.AndNot( SMESH_HypoFilter::IsGlobal( GetMeshDS()->ShapeToMesh() ));
+  SMESH_HypoFilter hypo ( SMESH_HypoFilter::HasDim( 1 ));
+  hypo.AndNot( hypo.IsAlgo() ).AndNot( hypo.IsAssignedTo( GetMeshDS()->ShapeToMesh() ));
 
-  return GetHypothesis( theEdge, filter, true );
+  return GetHypothesis( theEdge, hypo, true );
 }
 
 //=============================================================================
@@ -1413,3 +1417,12 @@ ostream& SMESH_Mesh::Dump(ostream& save)
   save << "===========================================================================" << endl;
   return save;
 }
+
+//=======================================================================
+//function : GetElementType
+//purpose  : Returns type of mesh element with certain id
+//=======================================================================
+SMDSAbs_ElementType SMESH_Mesh::GetElementType( const int id, const bool iselem )
+{
+  return _myMeshDS->GetElementType( id, iselem );
+}