X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Shape.cxx;h=339f9453e054787e8a4f54925a84b2563de992f3;hb=d6e19029f8b41f295db878e9aecf451c2edda4af;hp=182c586b9217abe4dd5be94cc193e0c7ba1a812f;hpb=60683af93df1c43c2441644f6c3ae4d7c9f82013;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Shape.cxx b/src/HYDROGUI/HYDROGUI_Shape.cxx index 182c586b..339f9453 100644 --- a/src/HYDROGUI/HYDROGUI_Shape.cxx +++ b/src/HYDROGUI/HYDROGUI_Shape.cxx @@ -1,8 +1,4 @@ -// 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 -// +// Copyright (C) 2014-2015 EDF-R&D // 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 @@ -22,6 +18,8 @@ #include #include +#include + #include #include #include @@ -33,7 +31,7 @@ #include #include #include -#include +#include #include #include @@ -302,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() ) @@ -482,13 +496,13 @@ Handle_AIS_InteractiveObject HYDROGUI_Shape::createShape() const { if( myTopoShape.IsNull() ) return Handle_AIS_InteractiveObject(); - else - if ( myObject->IsKind( STANDARD_TYPE(HYDROData_PolylineXY) ) || - myObject->IsKind( STANDARD_TYPE(HYDROData_Polyline3D)) || - myObject->IsKind( STANDARD_TYPE(HYDROData_Profile) )) - return new HYDROGUI_PrsShape(myTopoShape); - else - return new AIS_Shape( myTopoShape ); + + 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() @@ -511,7 +525,7 @@ void HYDROGUI_Shape::buildShape() myShape->SetDisplayMode( (AIS_DisplayMode)myDisplayMode ); // Init default params for shape - const Handle(AIS_Drawer)& anAttributes = myShape->Attributes(); + const Handle(Prs3d_Drawer)& anAttributes = myShape->Attributes(); if ( !anAttributes.IsNull() ) { Handle(Prs3d_IsoAspect) anIsoAspect = anAttributes->UIsoAspect(); @@ -552,7 +566,7 @@ void HYDROGUI_Shape::updateShape( const bool theToDisplay, if ( myShape.IsNull() ) return; - const Handle(AIS_Drawer)& anAttributes = myShape->Attributes(); + const Handle(Prs3d_Drawer)& anAttributes = myShape->Attributes(); if ( !anAttributes.IsNull() ) { if ( myDisplayMode == AIS_Shaded ) @@ -609,7 +623,7 @@ void HYDROGUI_Shape::colorShapeBorder( const QColor& theColor ) if ( myShape.IsNull() ) return; - const Handle(AIS_Drawer)& anAttributes = myShape->Attributes(); + const Handle(Prs3d_Drawer)& anAttributes = myShape->Attributes(); if ( anAttributes.IsNull() ) return;