X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Shape.cxx;h=339f9453e054787e8a4f54925a84b2563de992f3;hb=d6e19029f8b41f295db878e9aecf451c2edda4af;hp=ca073c3528469ad0502f43c9f70aab44f08932a2;hpb=2cf9e838e652ae811d9b3931914771ad1836c6b8;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Shape.cxx b/src/HYDROGUI/HYDROGUI_Shape.cxx index ca073c35..339f9453 100644 --- a/src/HYDROGUI/HYDROGUI_Shape.cxx +++ b/src/HYDROGUI/HYDROGUI_Shape.cxx @@ -18,6 +18,8 @@ #include #include +#include + #include #include #include @@ -29,6 +31,7 @@ #include #include #include +#include #include #include @@ -221,26 +224,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) ) ) @@ -315,6 +300,22 @@ void HYDROGUI_Shape::update( bool isUpdateViewer, setShape( aCompound, false, false ); } + else if ( myObject->IsKind( STANDARD_TYPE(HYDROData_LandCover) ) ) + { + Handle(HYDROData_LandCover) aLandCoverObj = + Handle(HYDROData_LandCover)::DownCast( myObject ); + + TopoDS_Shape aLandCoverShape = aLandCoverObj->GetShape(); + if ( !aLandCoverShape.IsNull() ) { + setShape( aLandCoverShape, false, false ); + } + + QColor aFillingColor = aLandCoverObj->GetFillingColor(); + QColor aBorderColor = aLandCoverObj->GetBorderColor(); + + setFillingColor( aFillingColor, false, false ); + setBorderColor( aBorderColor, false, false ); + } } if ( myShape.IsNull() || !isVisible() ) @@ -495,8 +496,13 @@ Handle_AIS_InteractiveObject HYDROGUI_Shape::createShape() const { if( myTopoShape.IsNull() ) return Handle_AIS_InteractiveObject(); - else + + TopAbs_ShapeEnum aShapeType = myTopoShape.ShapeType(); + if ( aShapeType==TopAbs_EDGE || aShapeType==TopAbs_WIRE ) { + return new HYDROGUI_Polyline( myTopoShape ); + } else { return new AIS_Shape( myTopoShape ); + } } void HYDROGUI_Shape::buildShape()