INT PAL 0052630: Bring to front behavior is not correct

This commit is contained in:
mpa 2015-03-24 12:39:17 +03:00
parent 18006cbdf3
commit 3cd4475b68
2 changed files with 7 additions and 12 deletions

View File

@ -843,8 +843,6 @@ void GEOM_Displayer::updateShapeProperties( const Handle(GEOM_AISShape)& AISShap
propMap.value( GEOM::propertyName( GEOM::DisplayMode ) ).toInt() );
// - face boundaries color and line width
if( AISShape->DisplayMode() == GEOM_AISShape::ShadingWithEdges )
AISShape->Attributes()->SetFaceBoundaryDraw( Standard_True );
anAspect = AISShape->Attributes()->FaceBoundaryAspect();
anAspect->SetColor( SalomeApp_Tools::color( propMap.value( GEOM::propertyName( GEOM::OutlineColor ) ).value<QColor>() ) );
anAspect->SetWidth( propMap.value( GEOM::propertyName( GEOM::LineWidth ) ).toInt() );

View File

@ -254,24 +254,21 @@ void GEOM_AISShape::Compute(const Handle(PrsMgr_PresentationManager3d)& aPresent
}
case ShadingWithEdges:
{
myDrawer->SetFaceBoundaryDraw( Standard_True );
shadingMode(aPresentationManager, aPrs, Shading);
if( anIsColorField && myFieldDimension == 1 )
if( anIsColorField && myFieldDimension == 1 ) {
myDrawer->SetFaceBoundaryDraw( Standard_False );
drawField( aPrs );
else
myDrawer->SetFaceBoundaryDraw( Standard_True );
}
break;
}
case TexturedShape:
{
if(!isTopLev)
#ifdef USE_TEXTURED_SHAPE
AIS_TexturedShape::Compute(aPresentationManager, aPrs, aMode);
#else
AIS_Shape::Compute(aPresentationManager, aPrs, aMode);
#endif
else
shadingMode(aPresentationManager, aPrs, Shading);
break;
}
}
if (isShowVectors())
@ -443,10 +440,10 @@ void GEOM_AISShape::setTopLevel(Standard_Boolean f) {
myPrevDisplayMode = DisplayMode();
Standard_Integer dm;
switch(topLevelDisplayMode()) {
case TopKeepCurrent : dm = myPrevDisplayMode; break;
case TopWireFrame : dm = Wireframe; break;
case TopWireFrame : dm = Wireframe; break;
case TopShading : dm = Shading; break;
case TopShadingWithEdges : dm = ShadingWithEdges; break;
default : dm = Shading; break;
default : dm = myPrevDisplayMode; break;
}
SetDisplayMode(dm);
} else {