Salome HOME
Fix bug with 2D algorithms, applied to shells (PAOUK).
authorjfa <jfa@opencascade.com>
Wed, 4 Oct 2006 13:15:19 +0000 (13:15 +0000)
committerjfa <jfa@opencascade.com>
Wed, 4 Oct 2006 13:15:19 +0000 (13:15 +0000)
src/SMESH/SMESH_subMesh.cxx

index 6413b8031826769596f8d8c2a5ac8f9ca9dd8853..f2fbedfe30ae7d069ff52e01824c0940808f580b 100644 (file)
@@ -482,9 +482,18 @@ bool SMESH_subMesh::IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis,
   switch ( theShapeType ) {
   case TopAbs_EDGE: 
   case TopAbs_FACE: 
-  case TopAbs_SHELL:
   case TopAbs_SOLID:
     return SMESH_Gen::GetShapeDim( theShapeType ) == theHypothesis->GetDim();
+
+  case TopAbs_SHELL:
+    // Special case for algorithms, building 2D mesh on a whole shell.
+    // Before this fix there was a problem after restoring from study,
+    // because in that case algorithm is assigned before hypothesis
+    // (on shell in problem case) and hypothesis is checked on faces
+    // (because it is 2D), where we have NO_ALGO state.
+    // Now 2D hypothesis is also applicable to shells.
+    return (theHypothesis->GetDim() == 2 || theHypothesis->GetDim() == 3);
+
 //   case TopAbs_WIRE:
 //   case TopAbs_COMPSOLID:
 //   case TopAbs_COMPOUND: