Salome HOME
Correction for hydro_test
[modules/hydro.git] / src / HYDRO_tests / test_Overview.cxx
index 6da12ce1be13b4a391e0abea94d7fec13f3af5d1..9bf5e7f4dea782c5708da5c6d200dfa17e6994d9 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <HYDROGUI_Overview.h>
 #include <OCCViewer_ViewFrame.h>
+#include <OCCViewer_ViewModel.h>
 #include <OCCViewer_ViewPort3d.h>
 #include <V3d_View.hxx>
 
@@ -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,53 +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;
+  //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 )
@@ -159,23 +168,30 @@ void test_Overview::test_actions_in_main()
   create();
   showShape();
   TestViewer::viewWindow()->onTopView();
-
-  // 1. selection in main view
-  QTest::mouseMove( TestViewer::viewWindow() );
-  CPPUNIT_ASSERT_OVERVIEW( "overview_selection" );
+  qApp->processEvents();
 
   OCCViewer_ViewWindow* aMain = TestViewer::viewWindow()->getView( OCCViewer_ViewFrame::MAIN_VIEW );
   OCCViewer_ViewPort3d* vp = aMain->getViewPort();
 
+  // 1. selection in main view
+  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
@@ -203,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" );
@@ -219,12 +242,16 @@ void test_Overview::test_actions_in_overview()
   create();
   showShape();
   TestViewer::viewWindow()->onTopView();
-  QTest::mouseMove( TestViewer::viewWindow() );
 
   OCCViewer_ViewWindow* aMain = TestViewer::viewWindow()->getView( OCCViewer_ViewFrame::MAIN_VIEW );
   OCCViewer_ViewPort3d* vp = aMain->getViewPort();
 
-  QWheelEvent we( QPoint( 243, 416 ), 120*20, Qt::NoButton, Qt::NoModifier );
+  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" );