Salome HOME
refs #514: add 'Cursor for specific operations' section into preferences of HYDRO...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Shape.cxx
index 5bdb054838f87955fef36660ba46516636e7ca95..08900fbe1f320597af4ecc652aa135732ea981e2 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include <HYDROGUI_Tool.h>
 #include <HYDROData_Channel.h>
 #include <HYDROData_Document.h>
-#include <HYDROData_DummyObject3d.h>
+#include <HYDROData_DummyObject3D.h>
 #include <HYDROData_ImmersibleZone.h>
 #include <HYDROData_Obstacle.h>
 #include <HYDROData_PolylineXY.h>
-#include <HYDROData_Polyline3d.h>
+#include <HYDROData_Polyline3D.h>
 #include <HYDROData_Profile.h>
 #include <HYDROData_ShapesGroup.h>
 #include <HYDROData_Stream.h>
@@ -57,7 +57,7 @@ HYDROGUI_Shape::HYDROGUI_Shape( const Handle(AIS_InteractiveContext)& theContext
   myHighlightColor( Qt::white ),
   myIsToUpdate( false ),
   myIsVisible( true ),
-  myDisplayMode( AIS_WireFrame )
+  myDisplayMode( AIS_Shaded )
 {
 }
 
@@ -225,26 +225,8 @@ void HYDROGUI_Shape::update( bool isUpdateViewer,
       }
       else
       {
-        // Generate the filling color for zone
-        QStringList aGeomObjectsNames;
-
-        HYDROData_SequenceOfObjects aRefObjects = aZone->GetGeometryObjects();
-        HYDROData_SequenceOfObjects::Iterator anIter( aRefObjects );
-        for ( ; anIter.More(); anIter.Next() )
-        {
-          Handle(HYDROData_Object) aRefbject = 
-            Handle(HYDROData_Object)::DownCast( anIter.Value() );
-          if ( aRefbject.IsNull() )
-            continue;
-
-          QString aRefObjectName = aRefbject->GetName();
-          if ( aRefObjectName.isEmpty() )
-            continue;
-
-          aGeomObjectsNames.append( aRefObjectName );
-        }
-
-        setFillingColor( HYDROGUI_Tool::GenerateFillingColor( aDocument, aGeomObjectsNames ) );
+               // Set the filling color for zone
+               setFillingColor( aZone->GetColor(HYDROData_ImmersibleZone::DefaultFillingColor()) );
       }
     }
     else if ( myObject->IsKind( STANDARD_TYPE(HYDROData_Profile) ) )
@@ -509,6 +491,8 @@ void HYDROGUI_Shape::buildShape()
   erase();
 
   myShape = createShape();
+  if( myShape.IsNull() )
+    return;
 
   Handle_AIS_Shape anAISShape = Handle_AIS_Shape::DownCast( myShape );
   if( !anAISShape.IsNull() )
@@ -664,3 +648,8 @@ void HYDROGUI_Shape::colorShapeBorder( const QColor& theColor )
     }
   }
 }
+
+void HYDROGUI_Shape::setDisplayMode( int theDisplayMode )
+{
+  myDisplayMode = theDisplayMode;
+}