X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Shape.cxx;h=60962d74b4c78ad4418c94c0adfa31cfce3f8b1c;hb=a53349567d67f4df0ef737798a25c24d9dc8f08e;hp=4d20f3fdee5b16ca403cd8e696885f70313527ff;hpb=31b482e05a42dd73ce5004e897e59ad2c353fc78;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Shape.cxx b/src/HYDROGUI/HYDROGUI_Shape.cxx index 4d20f3fd..60962d74 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 @@ -33,6 +29,7 @@ #include #include #include +#include #include #include @@ -225,26 +222,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) ) ) @@ -465,7 +444,7 @@ QColor HYDROGUI_Shape::getFillingColor() const void HYDROGUI_Shape::setBorderColor( const QColor& theColor, const bool theToDisplay, const bool theIsUpdateViewer ) -{ +{ myBorderColor = theColor; updateShape( theToDisplay, theIsUpdateViewer ); } @@ -497,10 +476,16 @@ void HYDROGUI_Shape::setZLayer( const int theZLayer ) Handle_AIS_InteractiveObject HYDROGUI_Shape::createShape() const { - if( myTopoShape.IsNull() ) + 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 +508,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 +549,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 ) @@ -603,7 +588,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 @@ -621,7 +608,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 +653,8 @@ void HYDROGUI_Shape::colorShapeBorder( const QColor& theColor ) } } } + +void HYDROGUI_Shape::setDisplayMode( int theDisplayMode ) +{ + myDisplayMode = theDisplayMode; +}