X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2FTestViewer.cxx;h=ba0b7b5d059b76a37bb623a5179be8096df2aa77;hb=ac056ee3c8e228f5b79eca9bad0fec624c595b1b;hp=ab5e774470ff41b0eb11b6e87a4dc4601ee90b22;hpb=e00dc572892a78ac384d7e952409d26df6fe3b54;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/TestViewer.cxx b/src/HYDRO_tests/TestViewer.cxx index ab5e7744..ba0b7b5d 100644 --- a/src/HYDRO_tests/TestViewer.cxx +++ b/src/HYDRO_tests/TestViewer.cxx @@ -30,13 +30,12 @@ #ifdef WIN32 #pragma warning ( disable: 4251 ) #endif -#include +#include #ifdef WIN32 #pragma warning ( disable: 4251 ) #endif -#include #include -#include +#include #include #include #include @@ -57,7 +56,7 @@ #include OCCViewer_ViewManager* TestViewer::myViewManager = 0; -OCCViewer_ViewWindow* TestViewer::myViewWindow = 0; +OCCViewer_ViewFrame* TestViewer::myViewWindow = 0; QString TestViewer::myKey = ""; OCCViewer_ViewManager* TestViewer::viewManager() @@ -73,7 +72,7 @@ OCCViewer_ViewManager* TestViewer::viewManager() aViewer->setZoomingStyle( 1 ); myViewManager->setViewModel( aViewer ); - myViewWindow = dynamic_cast( myViewManager->createViewWindow() ); + myViewWindow = dynamic_cast( myViewManager->createViewWindow() ); return myViewManager; } @@ -83,7 +82,7 @@ OCCViewer_Viewer* TestViewer::viewer() return dynamic_cast( viewManager()->getViewModel() ); } -OCCViewer_ViewWindow* TestViewer::viewWindow() +OCCViewer_ViewFrame* TestViewer::viewWindow() { viewManager(); //to create the view if it was not created earlier return myViewWindow; @@ -135,18 +134,23 @@ void TestViewer::show( const Handle(AIS_InteractiveObject)& theObject, eraseAll( false ); } - context()->Display( theObject, theMode, theSelectionMode ); if( theSelectionMode > 0 ) { context()->OpenLocalContext(); + context()->Display( theObject, theMode, theSelectionMode ); context()->Activate( theObject, theSelectionMode, Standard_True ); } + else + context()->Display( theObject, theMode, theSelectionMode ); if( isFitAll ) - { - viewWindow()->onTopView(); - viewWindow()->onFitAll(); - } + fitAll(); +} + +void TestViewer::fitAll() +{ + viewWindow()->onTopView(); + viewWindow()->onFitAll(); } void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, const QColor& theColor, @@ -168,10 +172,7 @@ void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, context()->Display( aShape, theMode, 0, Standard_False ); if( isFitAll ) - { - viewWindow()->onTopView(); - viewWindow()->onFitAll(); - } + fitAll(); } void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, const char* theKey, int theUIANb, int theVIANb) @@ -218,10 +219,7 @@ void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, show( aLE.Value(), theMode, false, GetColor(i) ); if( isFitAll ) - { - viewWindow()->onTopView(); - viewWindow()->onFitAll(); - } + fitAll(); } /*void TestViewer::ShowShape(const TopoDS_Shape& theShape, int theMode, int& i) @@ -273,7 +271,15 @@ bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, cons if( theImage ) anActualImage = *theImage; else - anActualImage = viewWindow()->dumpView(); + anActualImage = viewWindow()->getView(OCCViewer_ViewFrame::MAIN_VIEW)->dumpView(); + + const bool SWAP_RGB_ORDER = true; + if( SWAP_RGB_ORDER ) + { + // A temporary patch for bug in SALOME/OCC dump; the result image contains swapped RGB colors + anActualImage = anActualImage.rgbSwapped(); + } + if( theCase ) myKey = theCase; @@ -308,22 +314,16 @@ bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, cons return false; } -Handle_Aspect_ColorScale TestViewer::colorScale() +Handle(AIS_ColorScale) TestViewer::colorScale() { - Handle(V3d_View) aView = myViewWindow->getViewPort()->getView(); - if( aView.IsNull() ) - return Handle(Aspect_ColorScale)(); - else - return aView->ColorScale(); + static Handle(AIS_ColorScale) aColorScale = new AIS_ColorScale(); + + return aColorScale; } void TestViewer::showColorScale( bool isShow ) { - Handle(V3d_View) aView = myViewWindow->getViewPort()->getView(); - if( aView.IsNull() ) - return; - - Handle(Aspect_ColorScale) aColorScale = colorScale(); + Handle(AIS_ColorScale) aColorScale = colorScale(); if( aColorScale.IsNull() ) return; @@ -344,24 +344,23 @@ void TestViewer::showColorScale( bool isShow ) aColorScale->SetTitle( "test" ); aColorScale->SetRange( 0, 1 ); + aColorScale->SetToUpdate(); + if( isShow ) { - if( !aView->ColorScaleIsDisplayed() ) - aView->ColorScaleDisplay(); + if( !context()->IsDisplayed( aColorScale ) ) + context()->Display( aColorScale ); } else { - if( aView->ColorScaleIsDisplayed() ) - aView->ColorScaleErase(); + if( context()->IsDisplayed( aColorScale ) ) + context()->Erase( aColorScale ); } } bool TestViewer::ColorScaleIsDisplayed() { - Handle(V3d_View) aView = myViewWindow->getViewPort()->getView(); - if( aView.IsNull() ) - return false; - return aView->ColorScaleIsDisplayed(); + return context()->IsDisplayed( colorScale() ); } void TestViewer::select( int theViewX, int theViewY ) @@ -422,3 +421,8 @@ bool TestViewer::areScriptsEqual( const QString& theBaseName, return isEqual; } + +void TestViewer::setKey( const QString& theKey ) +{ + myKey = theKey; +}