Salome HOME
Import profiles protection (Bug #203).
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Shape.cxx
index 37eaf35001c6050e1f74bab38968ac0aaa59cef9..862c9e1857ed19f35f81fb363ef24e7df0434891 100644 (file)
@@ -28,6 +28,8 @@
 #include <AIS_Drawer.hxx>
 #include <AIS_TexturedShape.hxx>
 
+#include <V3d_Viewer.hxx>
+
 #include <BRepBuilderAPI_MakeEdge.hxx>
 #include <BRepBuilderAPI_MakeWire.hxx>
 #include <BRepBuilderAPI_MakeFace.hxx>
@@ -110,7 +112,8 @@ void HYDROGUI_Shape::erase( const bool theIsUpdateViewer )
   myContext->Erase( myShape, theIsUpdateViewer );
 }
 
-void HYDROGUI_Shape::update( const bool theIsUpdateViewer )
+void HYDROGUI_Shape::update( const bool theIsUpdateViewer,
+                             const bool theIsDisplayOnTop )
 {
   setIsToUpdate( false );
 
@@ -379,6 +382,17 @@ void HYDROGUI_Shape::update( const bool theIsUpdateViewer )
     return;
 
   myContext->Display( myShape, theIsUpdateViewer );
+  
+  if ( theIsDisplayOnTop ) {
+    // Display the shape on the top Z layer
+    Standard_Integer aNewLayerId = -1;
+    if ( myContext->CurrentViewer() && 
+         myContext->CurrentViewer()->AddZLayer( aNewLayerId ) &&
+         aNewLayerId > 0 ) {
+      myContext->SetZLayer( myShape, aNewLayerId );
+    }
+  }
+
   if (isDeactivateSelection)
     myContext->Deactivate(myShape);
 }
@@ -606,9 +620,9 @@ void HYDROGUI_Shape::buildShape()
       Handle(Prs3d_ShadingAspect) aShadingAspect = anAttributes->ShadingAspect();
       if ( !aShadingAspect.IsNull() )
       {
-        Graphic3d_MaterialAspect aMatAspect;
-        aMatAspect.SetAmbient( 1 );
-        aMatAspect.SetDiffuse( 0 );
+        Graphic3d_MaterialAspect aMatAspect( Graphic3d_NOM_PLASTIC );
+        //aMatAspect.SetAmbient( 1 );
+        //aMatAspect.SetDiffuse( 0 );
 
         aShadingAspect->Aspect()->SetFrontMaterial( aMatAspect );
         aShadingAspect->Aspect()->SetBackMaterial( aMatAspect );