PAL19272 CEA patch 4.1.1 / 3.2.9: problem with nodes or corners

Remove nodes on vertices at CLEAN event if !algo->NeedDescretBoundary()
This commit is contained in:
eap 2008-03-17 13:56:56 +00:00
parent 553f9198f9
commit 886d5de06c

View File

@ -625,16 +625,16 @@ 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;
if(anHyp->GetDim() == 3 && !_father->HasShapeToMesh() // EAP: __NOT__ Only NETGEN_3D and GHS3D_3D can be assigned to the Mesh w/o geometryy,
&& event == ADD_ALGO) { // but any algo which !NeedShape()
//Only NETGEN_3D and GHS3D_3D can be assigned to the Mesh w/o geometryy // if(anHyp->GetDim() == 3 && !_father->HasShapeToMesh()
bool isNetgen3D = (strcmp( "NETGEN_3D", anHyp->GetName()) == 0); // && event == ADD_ALGO) {
bool isGhs3d = (strcmp( "GHS3D_3D", anHyp->GetName()) == 0); // //Only NETGEN_3D and GHS3D_3D can be assigned to the Mesh w/o geometryy
if( !isNetgen3D && !isGhs3d) // bool isNetgen3D = (strcmp( "NETGEN_3D", anHyp->GetName()) == 0);
return SMESH_Hypothesis::HYP_BAD_DIM; // 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;
@ -1223,7 +1223,10 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
_computeState = READY_TO_COMPUTE; _computeState = READY_TO_COMPUTE;
SMESHDS_SubMesh* smDS = GetSubMeshDS(); SMESHDS_SubMesh* smDS = GetSubMeshDS();
if ( smDS && smDS->NbNodes() ) { if ( smDS && smDS->NbNodes() ) {
_computeState = COMPUTE_OK; if ( event == CLEAN ) // this occures for algo which !NeedDescretBoundary() (PAL19272)
cleanSubMesh( this );
else
_computeState = COMPUTE_OK;
} }
else if ( event == COMPUTE && !_alwaysComputed ) { else if ( event == COMPUTE && !_alwaysComputed ) {
const TopoDS_Vertex & V = TopoDS::Vertex( _subShape ); const TopoDS_Vertex & V = TopoDS::Vertex( _subShape );