diff --git a/doc/salome/gui/GEOM/input/geometry_preferences.doc b/doc/salome/gui/GEOM/input/geometry_preferences.doc
index 6c1f7d03b..5e9e94e7d 100644
--- a/doc/salome/gui/GEOM/input/geometry_preferences.doc
+++ b/doc/salome/gui/GEOM/input/geometry_preferences.doc
@@ -33,6 +33,20 @@ default color for edges, vectors and wires (isolated lines).
vertices.
Color of isolines - allows to select default color for
isolines.
+Top level color - allows to select default color for objects which
+were brought to the viewer foreground.
+Top level display mode - allows to select default top level display mode between:
+
+- Show additional wireframe actor - allows to have the shading actor at its usual
+place (in the back) and add the additional wireframe actor in the viewer foreground.
+- Keep current display mode - allows to use current display mode of object.
+- Wireframe - allows to switch display mode to wireframe mode after
+"top-level" operation.
+- Shading - allows to switch display mode to shading mode after
+"top-level" operation.
+- Shading With Edges - allows to switch display mode to shading with edges mode after
+"top-level" operation.
+
Transparency - allows to define default transparency value.
Deflection coefficient - allows to define default deflection
coefficient for lines and surfaces. A smaller coefficient provides
diff --git a/src/OBJECT/GEOM_AISShape.cxx b/src/OBJECT/GEOM_AISShape.cxx
index fe26569e1..f75b7a6b7 100644
--- a/src/OBJECT/GEOM_AISShape.cxx
+++ b/src/OBJECT/GEOM_AISShape.cxx
@@ -457,11 +457,11 @@ void GEOM_AISShape::setTopLevelDisplayMode(const GEOM_AISShape::TopLevelDispMode
}
Standard_Boolean GEOM_AISShape::switchTopLevel() {
- return myTopLevelDm != TopShowAdditionalWActor;
+ return myTopLevelDm != TopShowAdditionalWActor;
}
Standard_Boolean GEOM_AISShape::toActivate() {
- return Standard_True;
+ return ( myTopLevel && myTopLevelDm == TopShowAdditionalWActor ) ? false : true;
}
void GEOM_AISShape::setFieldStepInfo( const GEOM::field_data_type theFieldDataType,
diff --git a/src/OBJECT/GEOM_TopWireframeShape.cxx b/src/OBJECT/GEOM_TopWireframeShape.cxx
index 0cec60e0d..2a2101fff 100755
--- a/src/OBJECT/GEOM_TopWireframeShape.cxx
+++ b/src/OBJECT/GEOM_TopWireframeShape.cxx
@@ -43,64 +43,71 @@
#include
#include
-GEOM_TopWireframeShape::GEOM_TopWireframeShape(const TopoDS_Shape& shape)
- : SALOME_AISShape(shape)
+GEOM_TopWireframeShape::GEOM_TopWireframeShape( const TopoDS_Shape& shape )
+ :SALOME_AISShape(shape)
{
- SetDisplayMode(AIS_WireFrame);
- Handle(Prs3d_IsoAspect) anAspect = Attributes()->UIsoAspect();
- anAspect->SetNumber( 0 );
- Attributes()->SetUIsoAspect( anAspect );
- anAspect = Attributes()->VIsoAspect();
- anAspect->SetNumber( 0 );
- Attributes()->SetVIsoAspect( anAspect );
- SetColor(GEOM_AISShape::topLevelColor());
+ SetDisplayMode( AIS_WireFrame );
+ Handle(Prs3d_IsoAspect) anAspect = Attributes()->UIsoAspect();
+ anAspect->SetNumber( 0 );
+ Attributes()->SetUIsoAspect( anAspect );
+ anAspect = Attributes()->VIsoAspect();
+ anAspect->SetNumber( 0 );
+ Attributes()->SetVIsoAspect( anAspect );
+ SetColor( GEOM_AISShape::topLevelColor() );
}
GEOM_TopWireframeShape::~GEOM_TopWireframeShape()
{
}
-Handle(SALOME_InteractiveObject) GEOM_TopWireframeShape::getIO(){
+Handle(SALOME_InteractiveObject) GEOM_TopWireframeShape::getIO()
+{
Handle(SALOME_InteractiveObject) IO;
if ( !GetOwner().IsNull() )
IO = Handle(SALOME_InteractiveObject)::DownCast( GetOwner() );
return IO;
}
-Standard_Boolean GEOM_TopWireframeShape::hasIO(){
+Standard_Boolean GEOM_TopWireframeShape::hasIO()
+{
return !getIO().IsNull();
}
-void GEOM_TopWireframeShape::setName(const Standard_CString /*aName*/)
+void GEOM_TopWireframeShape::setName( const Standard_CString /*aName*/ )
{
}
-Standard_CString GEOM_TopWireframeShape::getName(){
+Standard_CString GEOM_TopWireframeShape::getName()
+{
return "";
}
-void GEOM_TopWireframeShape::highlightSubShapes(const TColStd_IndexedMapOfInteger& /*aIndexMap*/,
- const Standard_Boolean /*aHighlight*/ )
+void GEOM_TopWireframeShape::highlightSubShapes( const TColStd_IndexedMapOfInteger& /*aIndexMap*/,
+ const Standard_Boolean /*aHighlight*/ )
{
}
-Standard_Boolean GEOM_TopWireframeShape::isTopLevel() {
+Standard_Boolean GEOM_TopWireframeShape::isTopLevel()
+{
return Standard_True;
}
-void GEOM_TopWireframeShape::setTopLevel(Standard_Boolean /*f*/) {
-
+void GEOM_TopWireframeShape::setTopLevel( Standard_Boolean /*f*/ )
+{
}
-Standard_Boolean GEOM_TopWireframeShape::toActivate() {
- return Standard_False;
+Standard_Boolean GEOM_TopWireframeShape::toActivate()
+{
+ return Standard_True;
}
-Standard_Boolean GEOM_TopWireframeShape::switchTopLevel() {
- return Standard_True;
+Standard_Boolean GEOM_TopWireframeShape::switchTopLevel()
+{
+ return Standard_True;
}
-void GEOM_TopWireframeShape::setIO(const Handle(SALOME_InteractiveObject)& io){
+void GEOM_TopWireframeShape::setIO( const Handle(SALOME_InteractiveObject)& io )
+{
SetOwner( io );
}