23126: [CEA 1562] Regression : Wrong nodes position using SetEnforcedVertex on a sphere

Fix SMESH_MesherHelper::IsQuadraticSubMesh()

IPAL52836: A sub-face of a box can't be selected in OB to be added to Viscous Layers hypothesis
   Fix StdMeshersGUI_SubShapeSelectorWdg::selectionIntoArgument()
This commit is contained in:
eap 2015-08-03 20:45:26 +03:00
parent 2e144ad6b9
commit afb2a8e781
2 changed files with 23 additions and 19 deletions

View File

@ -192,11 +192,12 @@ bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
} }
// if ( nbOldLinks == myTLinkNodeMap.size() ) -- 0023068 // if ( nbOldLinks == myTLinkNodeMap.size() ) -- 0023068
// myCreateQuadratic = false; if ( myTLinkNodeMap.empty() )
myCreateQuadratic = false;
if(!myCreateQuadratic) { if ( !myCreateQuadratic )
myTLinkNodeMap.clear(); myTLinkNodeMap.clear();
}
SetSubShape( aSh ); SetSubShape( aSh );
return myCreateQuadratic; return myCreateQuadratic;

View File

@ -255,24 +255,27 @@ void StdMeshersGUI_SubShapeSelectorWdg::selectionIntoArgument()
GEOM::GEOM_Object_var aGeomObj = GetGeomObjectByEntry( IO->getEntry() ); GEOM::GEOM_Object_var aGeomObj = GetGeomObjectByEntry( IO->getEntry() );
if ( !CORBA::is_nil( aGeomObj ) ) { // Selected Object From Study if ( !CORBA::is_nil( aGeomObj ) ) { // Selected Object From Study
GEOM::GEOM_Object_var aGeomFatherObj = aGeomObj->GetMainShape(); // commented for IPAL52836
QString aFatherEntry = ""; //
QString aMainFatherEntry = ""; // GEOM::GEOM_Object_var aGeomFatherObj = aGeomObj->GetMainShape();
TopoDS_Shape shape; // QString aFatherEntry = "";
if ( !CORBA::is_nil( aGeomFatherObj ) ) { // QString aMainFatherEntry = "";
// Get Main Shape // TopoDS_Shape shape;
GEOM::GEOM_Object_var aGeomMain = GetGeomObjectByEntry( myEntry.c_str() ); // if ( !CORBA::is_nil( aGeomFatherObj ) ) {
if ( !CORBA::is_nil( aGeomMain ) && aGeomMain->GetType() == 37 ) { // Main Shape is a Group // // Get Main Shape
GEOM::GEOM_Object_var aMainFatherObj = aGeomMain->GetMainShape(); // GEOM::GEOM_Object_var aGeomMain = GetGeomObjectByEntry( myEntry.c_str() );
if ( !CORBA::is_nil( aMainFatherObj ) ) // if ( !CORBA::is_nil( aGeomMain ) && aGeomMain->GetType() == 37 ) { // Main Shape is a Group
aMainFatherEntry = aMainFatherObj->GetStudyEntry(); // GEOM::GEOM_Object_var aMainFatherObj = aGeomMain->GetMainShape();
} // if ( !CORBA::is_nil( aMainFatherObj ) )
aFatherEntry = aGeomFatherObj->GetStudyEntry(); // aMainFatherEntry = aMainFatherObj->GetStudyEntry();
} // }
// aFatherEntry = aGeomFatherObj->GetStudyEntry();
// }
if (( ! aFatherEntry.isEmpty() ) && // if (( ! aFatherEntry.isEmpty() ) &&
( aFatherEntry == myEntry.c_str() || aFatherEntry == aMainFatherEntry ) ) // ( aFatherEntry == myEntry.c_str() || aFatherEntry == aMainFatherEntry ) )
{ {
TopoDS_Shape shape;
if ( aGeomObj->GetType() == 37 /*GEOM_GROUP*/ ) { // Selected Group that belongs the main object if ( aGeomObj->GetType() == 37 /*GEOM_GROUP*/ ) { // Selected Group that belongs the main object
GEOMBase::GetShape(aGeomObj, shape); GEOMBase::GetShape(aGeomObj, shape);
if ( !shape.IsNull() ) { if ( !shape.IsNull() ) {