Regression of bugs/L9

-  theMesh.GetSubMesh(theShape)->ComputeStateEngine( SMESH_subMesh::CLEAN );
+  // CLEAN event is incorrectly ptopagated seemingly due to Propagation hyp
+  // so TEMPORARY solution is to clean the submesh manually
+  //theMesh.GetSubMesh(theShape)->ComputeStateEngine( SMESH_subMesh::CLEAN );
+  if (SMESHDS_SubMesh * subMeshDS = meshDS->MeshElements(theShape))
This commit is contained in:
eap 2010-10-26 08:33:55 +00:00
parent 0e0ecdd7e5
commit b168bef52e

View File

@ -948,7 +948,23 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape & t
return error( COMPERR_BAD_INPUT_MESH, "No node on vertex"); return error( COMPERR_BAD_INPUT_MESH, "No node on vertex");
// remove elements created by e.g. patern mapping (PAL21999) // remove elements created by e.g. patern mapping (PAL21999)
theMesh.GetSubMesh(theShape)->ComputeStateEngine( SMESH_subMesh::CLEAN ); // CLEAN event is incorrectly ptopagated seemingly due to Propagation hyp
// so TEMPORARY solution is to clean the submesh manually
//theMesh.GetSubMesh(theShape)->ComputeStateEngine( SMESH_subMesh::CLEAN );
if (SMESHDS_SubMesh * subMeshDS = meshDS->MeshElements(theShape))
{
SMDS_ElemIteratorPtr ite = subMeshDS->GetElements();
while (ite->more())
meshDS->RemoveFreeElement(ite->next(), subMeshDS);
SMDS_NodeIteratorPtr itn = subMeshDS->GetNodes();
while (itn->more()) {
const SMDS_MeshNode * node = itn->next();
if ( node->NbInverseElements() == 0 )
meshDS->RemoveFreeNode(node, subMeshDS);
else
meshDS->RemoveNode(node);
}
}
if (!Curve.IsNull()) if (!Curve.IsNull())
{ {