X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2Ftest_Overview.cxx;h=9bf5e7f4dea782c5708da5c6d200dfa17e6994d9;hb=3bece499e83cc9ca95536228c7f6740030e9d5d8;hp=3850853de1bc2589651be036e7b2e34e0c313afe;hpb=988bd1963f29e4e923cf3fd6c06cf9033f7670ae;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/test_Overview.cxx b/src/HYDRO_tests/test_Overview.cxx index 3850853d..9bf5e7f4 100644 --- a/src/HYDRO_tests/test_Overview.cxx +++ b/src/HYDRO_tests/test_Overview.cxx @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -37,7 +38,7 @@ HYDROGUI_Overview* test_Overview::myOverview = 0; { \ QString aMessage; \ QImage aDump = dumpViews(); \ - if( !TestViewer::AssertImages( aMessage, &aDump, theCase ) ) \ + if( !TestViewer::AssertImages( aMessage, &aDump, theCase, false ) ) \ { \ TestViewer::showColorScale( false ); \ std::string aMessageStl = aMessage.toStdString(); \ @@ -57,7 +58,8 @@ QImage test_Overview::dumpViews() QImage aMain = TestViewer::viewWindow()->getView(OCCViewer_ViewFrame::MAIN_VIEW)->dumpView(); QImage anOverview = myOverview->dump(); - aMain = aMain.rgbSwapped(); //PATCH for image came from OCCT dump + if (SWAP_RGB) + aMain = aMain.rgbSwapped(); //PATCH for image came from OCCT dump //anOverview = anOverview.rgbSwapped(); //overview dump already normalizes the image, the line is not necessary!!! int w1 = aMain.width(); @@ -73,51 +75,60 @@ QImage test_Overview::dumpViews() QPainter painter( &pix ); painter.setPen( PSOLID ); - painter.drawRect( WIDTH, WIDTH, w2, h2 ); - painter.drawRect( w2+WIDTH, WIDTH, w1, h1 ); + //static int q = 0; + //q++; + //anOverview.save( QString( "/tmp/hydro/overview_" ) + QString::number( q ) + ".png" ); + //aMain.save( QString( "/tmp/hydro/main_" ) + QString::number( q ) + ".png" ); painter.drawImage( WIDTH, WIDTH, anOverview ); painter.drawImage( w2+WIDTH, WIDTH, aMain ); - return pix.toImage(); + painter.drawRect( WIDTH, WIDTH, w2, h2 ); + painter.drawRect( w2+WIDTH, WIDTH, w1, h1 ); + + QImage res = pix.toImage(); + //res.save( QString( "/tmp/hydro/result_" ) + QString::number( q ) + ".png" ); + + return res; } +extern int MAIN_W, MAIN_H; + void test_Overview::create() { - static bool isPassed = false; - if( isPassed ) - return; + TestViewer::eraseAll( true, true ); + + // Initialization of the empty viewer - // default mouse position - QTest::mouseMove( TestViewer::viewWindow(), QPoint( 0, 0 ) ); + static bool isCreated = false; + if( !isCreated ) + { + myOverview = new HYDROGUI_Overview( "Test overview" ); + myOverview->show(); - // Initialization of the empty viewer - myOverview = new HYDROGUI_Overview( "Test overview" ); - myOverview->show(); + // default mouse position + QTest::mouseMove( TestViewer::viewWindow(), QPoint( 0, 0 ) ); + + isCreated = true; + } myOverview->setMainView( TestViewer::viewWindow() ); - TestViewer::viewWindow()->setGeometry( 400, 100, 800, 800 ); + //TestViewer::viewWindow()->setGeometry( 400, 100, MAIN_W, MAIN_H ); + TestViewer::viewWindow()->onTopView(); myOverview->setGeometry( 100, 100, 200, 200 ); - - isPassed = true; } void test_Overview::showShape() { - static bool isPassed = false; - if( isPassed ) - return; - // Show loaded shape in the viewer BRep_Builder B; TopoDS_Shape shape; std::string fname = (REF_DATA_PATH + "/test_zone.brep").toStdString(); + //std::cout << "Loading shape: " << fname << std::endl; BRepTools::Read( shape, fname.c_str(), B ); TestViewer::show( shape, AIS_Shaded, true, 0x03399FF ); qApp->processEvents(); myOverview->setTopView(); //TODO: automatic fit all on show???*/ - - isPassed = true; } void fitAllWithRestore( OCCViewer_ViewPort3d* vp ) @@ -138,6 +149,7 @@ void fitAllWithRestore( OCCViewer_ViewPort3d* vp ) void test_Overview::test_default() { create(); + //QTest::qWait( 50000 ); CPPUNIT_ASSERT_OVERVIEW( "overview_empty" ); } @@ -155,23 +167,31 @@ void test_Overview::test_actions_in_main() { create(); showShape(); + TestViewer::viewWindow()->onTopView(); + qApp->processEvents(); OCCViewer_ViewWindow* aMain = TestViewer::viewWindow()->getView( OCCViewer_ViewFrame::MAIN_VIEW ); OCCViewer_ViewPort3d* vp = aMain->getViewPort(); // 1. selection in main view - QTest::mouseMove( TestViewer::viewWindow() ); + QTest::mouseMove( vp, QPoint(150,150) ); + TestViewer::context()->MoveTo(150, 150, vp->getView(), Standard_True ); + TestViewer::context()->Select( Standard_True ); + qApp->processEvents(); + //QTest::qWait( 50000 ); + //aMain->dumpView().save("/tmp/hydro/dump.png"); + //aMain->dumpView().rgbSwapped().save("/tmp/hydro/dump2.png"); CPPUNIT_ASSERT_OVERVIEW( "overview_selection" ); // 2. mouse wheel zoom - QWheelEvent we( QPoint( 243, 416 ), 120*20, Qt::NoButton, Qt::NoModifier ); + QWheelEvent we( QPoint( 243, 316 ), 120*20, Qt::NoButton, Qt::NoModifier ); qApp->sendEvent( vp, &we ); qApp->processEvents(); CPPUNIT_ASSERT_OVERVIEW( "overview_zoomed_1" ); // 3. zoom via mouse const int d = 100; - vp->zoom( 243, 416, 243+d, 416+d ); + vp->zoom( 243, 316, 243+d, 316+d ); CPPUNIT_ASSERT_OVERVIEW( "overview_zoomed_2" ); // 4. panning via mouse @@ -199,7 +219,14 @@ void test_Overview::test_set_mainview_2_times() create(); showShape(); TestViewer::viewWindow()->onTopView(); - QTest::mouseMove( TestViewer::viewWindow() ); + + OCCViewer_ViewWindow* aMain = TestViewer::viewWindow()->getView( OCCViewer_ViewFrame::MAIN_VIEW ); + OCCViewer_ViewPort3d* vp = aMain->getViewPort(); + + QTest::mouseMove( vp, QPoint(150,150) ); + TestViewer::context()->MoveTo(150, 150, vp->getView(), Standard_True ); + TestViewer::context()->Select( Standard_True ); + qApp->processEvents(); //QTest::qWait( 20000 ); CPPUNIT_ASSERT_OVERVIEW( "overview_selection" ); @@ -207,10 +234,33 @@ void test_Overview::test_set_mainview_2_times() myOverview->setMainView( TestViewer::viewWindow() ); qApp->processEvents(); - CPPUNIT_ASSERT_OVERVIEW( "overview_selection" ); + CPPUNIT_ASSERT_OVERVIEW( "overview_selection_a" ); } void test_Overview::test_actions_in_overview() { - //TODO + create(); + showShape(); + TestViewer::viewWindow()->onTopView(); + + OCCViewer_ViewWindow* aMain = TestViewer::viewWindow()->getView( OCCViewer_ViewFrame::MAIN_VIEW ); + OCCViewer_ViewPort3d* vp = aMain->getViewPort(); + + QTest::mouseMove( vp, QPoint(150,150) ); + TestViewer::context()->MoveTo(150, 150, vp->getView(), Standard_True ); + TestViewer::context()->Select( Standard_True ); + qApp->processEvents(); + + QWheelEvent we( QPoint( 243, 316 ), 120*20, Qt::NoButton, Qt::NoModifier ); + qApp->sendEvent( vp, &we ); + qApp->processEvents(); + CPPUNIT_ASSERT_OVERVIEW( "overview_zoomed_1" ); + + QTest::mouseMove( myOverview->getViewPort(false), QPoint( 150, 50 ) ); + QTest::mouseClick( myOverview->getViewPort(false), Qt::LeftButton, Qt::KeyboardModifiers(), QPoint( 150, 50 ) ); + qApp->processEvents(); + + CPPUNIT_ASSERT_OVERVIEW( "overview_drag" ); + + //QTest::qWait( 50000 ); }