Salome HOME
[SALOME platform 0019316]: Need to have a better interface with GHS3D diagnostics
authoreap <eap@opencascade.com>
Mon, 21 Jul 2008 09:43:48 +0000 (09:43 +0000)
committereap <eap@opencascade.com>
Mon, 21 Jul 2008 09:43:48 +0000 (09:43 +0000)
     improve work with algos not needeing shapes

src/SMESH/SMESH_subMesh.cxx

index a5d5c3f9b89443726c6c035fbfff28338ab43ff6..756a76899cc464a304d03afbd5044c47e9ccd0d9 100644 (file)
@@ -497,16 +497,9 @@ const TopoDS_Shape & SMESH_subMesh::GetSubShape() const
 bool SMESH_subMesh::CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const
 {
   int aHypDim   = theHypothesis->GetDim();
-  if(_father->HasShapeToMesh()) {
-    int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
-    if ( aHypDim <= aShapeDim )
-      return true;
-  }
-  else
-    //Only 3D hypothesis may be assigned to the mesh w/o geometry
-    return aHypDim == 3;
-//   if ( aHypDim < aShapeDim )
-//     return ( _father->IsMainShape( _subShape ));
+  int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
+  if ( aHypDim <= aShapeDim )
+    return true;
 
   return false;
 }
@@ -607,9 +600,8 @@ SMESH_Hypothesis::Hypothesis_Status
     // check if a shape needed by algo is present
     // -------------------------------------------
     algo = static_cast< SMESH_Algo* >( anHyp );
-    if(_father->GetShapeToMesh() != SMESH_Mesh::PseudoShape())
-      if ( !_father->HasShapeToMesh() && algo->NeedShape() )
-        return SMESH_Hypothesis::HYP_BAD_GEOMETRY;
+    if ( !_father->HasShapeToMesh() && algo->NeedShape() )
+      return SMESH_Hypothesis::HYP_NEED_SHAPE;
     // ----------------------
     // check mesh conformity
     // ----------------------
@@ -625,17 +617,6 @@ SMESH_Hypothesis::Hypothesis_Status
     if ( ! CanAddHypothesis( anHyp )) // check dimension
       return SMESH_Hypothesis::HYP_BAD_DIM;
 
-    // EAP: __NOT__ Only NETGEN_3D and GHS3D_3D can be assigned to the Mesh w/o geometryy,
-    // but any algo which !NeedShape()
-//     if(anHyp->GetDim() == 3 && !_father->HasShapeToMesh()
-//        && event == ADD_ALGO) {
-//       //Only NETGEN_3D and GHS3D_3D can be assigned to the Mesh w/o geometryy
-//       bool isNetgen3D = (strcmp( "NETGEN_3D", anHyp->GetName()) == 0);
-//       bool  isGhs3d = (strcmp( "GHS3D_3D", anHyp->GetName()) == 0);
-//       if( !isNetgen3D && !isGhs3d)
-//         return SMESH_Hypothesis::HYP_BAD_DIM;
-//     }
-    
     if ( /*!anHyp->IsAuxiliary() &&*/ GetSimilarAttached( _subShape, anHyp ) )
       return SMESH_Hypothesis::HYP_ALREADY_EXIST;