X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Shape.cxx;h=339f9453e054787e8a4f54925a84b2563de992f3;hb=d6e19029f8b41f295db878e9aecf451c2edda4af;hp=5f99a1f96f542333ab60a15c3b8307e18a3979f3;hpb=474c2cd65280d793f1c81ca528bc92e1cff988e6;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Shape.cxx b/src/HYDROGUI/HYDROGUI_Shape.cxx index 5f99a1f9..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,6 +31,7 @@ #include #include #include +#include #include #include @@ -57,7 +56,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 +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) ) ) @@ -319,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() ) @@ -499,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() @@ -523,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(); @@ -564,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 ) @@ -621,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; @@ -666,3 +668,8 @@ void HYDROGUI_Shape::colorShapeBorder( const QColor& theColor ) } } } + +void HYDROGUI_Shape::setDisplayMode( int theDisplayMode ) +{ + myDisplayMode = theDisplayMode; +}