[SALOME platform 0019316]: Need to have a better interface with GHS3D diagnostics

improve work with algos not needeing shapes
This commit is contained in:
eap 2008-07-21 09:43:48 +00:00
parent 6f8dc08854
commit 60d6911d52

View File

@ -497,16 +497,9 @@ const TopoDS_Shape & SMESH_subMesh::GetSubShape() const
bool SMESH_subMesh::CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const bool SMESH_subMesh::CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const
{ {
int aHypDim = theHypothesis->GetDim(); int aHypDim = theHypothesis->GetDim();
if(_father->HasShapeToMesh()) { int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
int aShapeDim = SMESH_Gen::GetShapeDim(_subShape); if ( aHypDim <= aShapeDim )
if ( aHypDim <= aShapeDim ) return true;
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 ));
return false; return false;
} }
@ -607,9 +600,8 @@ SMESH_Hypothesis::Hypothesis_Status
// check if a shape needed by algo is present // check if a shape needed by algo is present
// ------------------------------------------- // -------------------------------------------
algo = static_cast< SMESH_Algo* >( anHyp ); algo = static_cast< SMESH_Algo* >( anHyp );
if(_father->GetShapeToMesh() != SMESH_Mesh::PseudoShape()) if ( !_father->HasShapeToMesh() && algo->NeedShape() )
if ( !_father->HasShapeToMesh() && algo->NeedShape() ) return SMESH_Hypothesis::HYP_NEED_SHAPE;
return SMESH_Hypothesis::HYP_BAD_GEOMETRY;
// ---------------------- // ----------------------
// check mesh conformity // check mesh conformity
// ---------------------- // ----------------------
@ -625,17 +617,6 @@ SMESH_Hypothesis::Hypothesis_Status
if ( ! CanAddHypothesis( anHyp )) // check dimension if ( ! CanAddHypothesis( anHyp )) // check dimension
return SMESH_Hypothesis::HYP_BAD_DIM; 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 ) ) if ( /*!anHyp->IsAuxiliary() &&*/ GetSimilarAttached( _subShape, anHyp ) )
return SMESH_Hypothesis::HYP_ALREADY_EXIST; return SMESH_Hypothesis::HYP_ALREADY_EXIST;