]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
PAL11200. SMESH_Hypothesis::HYP_BAD_SUBSHAPE status added
authoreap <eap@opencascade.com>
Thu, 16 Feb 2006 13:43:27 +0000 (13:43 +0000)
committereap <eap@opencascade.com>
Thu, 16 Feb 2006 13:43:27 +0000 (13:43 +0000)
src/SMESH/SMESH_Hypothesis.hxx
src/SMESH/SMESH_Mesh.cxx
src/SMESHGUI/SMESH_msg_en.po
src/SMESH_I/SMESH_Mesh_i.cxx

index 2edcd141ae831a6ac74c0de588fd4b0460cbbde3..2ebd25a39163517ed0cdc55306973c8aede15acc 100644 (file)
@@ -49,7 +49,8 @@ public:
     HYP_INCOMPATIBLE, // hypothesis does not fit algo
     HYP_NOTCONFORM,   // not conform mesh is produced appling a hypothesis
     HYP_ALREADY_EXIST,// such hypothesis already exist
-    HYP_BAD_DIM       // bad dimension
+    HYP_BAD_DIM,      // bad dimension
+    HYP_BAD_SUBSHAPE  // shape is neither the main one, nor its subshape, nor a group
   };
   static bool IsStatusFatal(Hypothesis_Status theStatus)
   { return theStatus >= HYP_UNKNOWN_FATAL; }
index e6aabf149902b1a71d63ee308252bebe0114c6f3..abe270cc361cc12d7292ebf8ad377ead60271ac5 100644 (file)
@@ -267,6 +267,9 @@ SMESH_Hypothesis::Hypothesis_Status
   if(MYDEBUG) MESSAGE("SMESH_Mesh::AddHypothesis");
 
   SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
+  if ( !subMesh || !subMesh->GetId())
+    return SMESH_Hypothesis::HYP_BAD_SUBSHAPE;
+
   SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
   if ( subMeshDS && subMeshDS->IsComplexSubmesh() ) // group of sub-shapes and maybe of not sub-
   {
@@ -628,6 +631,8 @@ SMESH_subMesh *SMESH_Mesh::GetSubMesh(const TopoDS_Shape & aSubShape)
     if ( it.More() )
       index = _myMeshDS->AddCompoundSubmesh( aSubShape, it.Value().ShapeType() );
   }
+//   if ( !index )
+//     return NULL; // neither sub-shape nor a group
 
   map <int, SMESH_subMesh *>::iterator i_sm = _mapSubMesh.find(index);
   if ( i_sm != _mapSubMesh.end())
index b0c73c29efc10d155f7036695ab4245c5ab257d6..6dbef1d587c671a1ea94170301edea04b1b18094 100644 (file)
@@ -1219,6 +1219,9 @@ msgstr "Such dimention hypothesis is already assigned to the shape"
 msgid "SMESH_HYP_8"
 msgstr "Hypothesis and submesh dimensions mismatch"
 
+msgid "SMESH_HYP_9"
+msgstr "Shape is neither the main one, nor its subshape, nor a valid group"
+
 msgid "MISSING_ALGO"
 msgstr "%3 %2D algorithm is missing"
 
index c56c56918dd829aeb6edc0eed393b25d20ff4cd2..388525addf8df17d949f897ef9e70262291ad3d2 100644 (file)
@@ -316,6 +316,8 @@ static SMESH::Hypothesis_Status ConvertHypothesisStatus
     res = SMESH::HYP_ALREADY_EXIST; break;
   case SMESH_Hypothesis::HYP_BAD_DIM:
     res = SMESH::HYP_BAD_DIM; break;
+  case SMESH_Hypothesis::HYP_BAD_SUBSHAPE:
+    res = SMESH::HYP_BAD_SUBSHAPE; break;
   default:
     res = SMESH::HYP_UNKNOWN_FATAL;
   }