X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Shape.cxx;h=f7132b32b5f0092ce14c41e1340d477b9b95c76e;hb=ea24c0c5ef94a08fff17e9d2cde931250bc0677e;hp=339f9453e054787e8a4f54925a84b2563de992f3;hpb=c4b8216b4c32b59eb832047dbee6c325ddf4585c;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Shape.cxx b/src/HYDROGUI/HYDROGUI_Shape.cxx index 339f9453..f7132b32 100644 --- a/src/HYDROGUI/HYDROGUI_Shape.cxx +++ b/src/HYDROGUI/HYDROGUI_Shape.cxx @@ -31,7 +31,6 @@ #include #include #include -#include #include #include @@ -224,8 +223,8 @@ void HYDROGUI_Shape::update( bool isUpdateViewer, } else { - // Set the filling color for zone - setFillingColor( aZone->GetColor(HYDROData_ImmersibleZone::DefaultFillingColor()) ); + // Set the filling color for zone + setFillingColor( aZone->GetColor( Qt::darkBlue ) ); } } else if ( myObject->IsKind( STANDARD_TYPE(HYDROData_Profile) ) ) @@ -300,22 +299,6 @@ 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() ) @@ -462,7 +445,7 @@ QColor HYDROGUI_Shape::getFillingColor() const void HYDROGUI_Shape::setBorderColor( const QColor& theColor, const bool theToDisplay, const bool theIsUpdateViewer ) -{ +{ myBorderColor = theColor; updateShape( theToDisplay, theIsUpdateViewer ); } @@ -494,11 +477,22 @@ void HYDROGUI_Shape::setZLayer( const int theZLayer ) Handle_AIS_InteractiveObject HYDROGUI_Shape::createShape() const { - if( myTopoShape.IsNull() ) + if( myTopoShape.IsNull() ) { return Handle_AIS_InteractiveObject(); - + } + TopAbs_ShapeEnum aShapeType = myTopoShape.ShapeType(); - if ( aShapeType==TopAbs_EDGE || aShapeType==TopAbs_WIRE ) { + bool IsWireEdgeCompound = aShapeType==TopAbs_COMPOUND; + if (IsWireEdgeCompound) { + TopoDS_Iterator itr(myTopoShape); + while (itr.More() && IsWireEdgeCompound) { + if (itr.Value().ShapeType() != TopAbs_WIRE && itr.Value().ShapeType() != TopAbs_EDGE) + IsWireEdgeCompound = false; + itr.Next(); + } + } + + if ( aShapeType==TopAbs_EDGE || aShapeType==TopAbs_WIRE || IsWireEdgeCompound) { return new HYDROGUI_Polyline( myTopoShape ); } else { return new AIS_Shape( myTopoShape ); @@ -605,7 +599,9 @@ void HYDROGUI_Shape::displayShape( const bool theIsUpdateViewer ) if ( myZLayer >= 0 ) myContext->SetZLayer( myShape, myZLayer ); - myContext->UpdateCurrentViewer(); + if ( theIsUpdateViewer ) { + myContext->UpdateCurrentViewer(); + } } QColor HYDROGUI_Shape::getActiveColor() const