[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
{
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;