X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2FTestViewer.cxx;h=cc8c7c61d287202e0c7d6c86578c936275f58ff1;hb=3bece499e83cc9ca95536228c7f6740030e9d5d8;hp=51b61ce9de03ddc6591f8db2492500fcd3f8fa74;hpb=05e1c3eb48802e1defc3dc6935de7fa997f36652;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/TestViewer.cxx b/src/HYDRO_tests/TestViewer.cxx index 51b61ce9..cc8c7c61 100644 --- a/src/HYDRO_tests/TestViewer.cxx +++ b/src/HYDRO_tests/TestViewer.cxx @@ -61,6 +61,7 @@ OCCViewer_ViewFrame* TestViewer::myViewWindow = 0; QString TestViewer::myKey = ""; extern QString REF_DATA_PATH; +extern QString TMP_DIR; OCCViewer_ViewManager* TestViewer::viewManager() { @@ -70,13 +71,13 @@ OCCViewer_ViewManager* TestViewer::viewManager() myViewManager = new OCCViewer_ViewManager( 0, 0 ); OCCViewer_Viewer* aViewer = new OCCViewer_Viewer( true ); - aViewer->setTrihedronSize( 100, true ); + aViewer->setTrihedronSize( 0, true ); aViewer->setInteractionStyle( 0 ); aViewer->setZoomingStyle( 1 ); myViewManager->setViewModel( aViewer ); myViewWindow = dynamic_cast( myViewManager->createViewWindow() ); - + aViewer->setTrihedronShown( false ); return myViewManager; } @@ -101,12 +102,12 @@ QColor TestViewer::GetColor(int i) static QVector aCV; if( aCV.isEmpty() ) { - aCV << QColor(0,0,255) + aCV << QColor(0,0,255) << QColor(0,255,0) << QColor(255,0,0) - << QColor(255,255,20) - << QColor(20,255,255) - << QColor(100,100,20) + << QColor(255,255,20) + << QColor(20,255,255) + << QColor(100,100,20) << QColor(10,100,150); } if (i < aCV.size()) @@ -114,8 +115,8 @@ QColor TestViewer::GetColor(int i) else { QColor TestColor = aCV[i % aCV.size()]; - QColor NewColor((TestColor.red() + i * 41) % 256, - (TestColor.green() + i * 13) % 256, + QColor NewColor((TestColor.red() + i * 41) % 256, + (TestColor.green() + i * 13) % 256, (TestColor.blue() + i * 23) % 256); return NewColor; } @@ -123,10 +124,9 @@ QColor TestViewer::GetColor(int i) void TestViewer::eraseAll( bool isUpdate, bool eraseStructures ) { - context()->CloseLocalContext( -1, Standard_False ); context()->EraseAll( isUpdate ); if( eraseStructures ) - { + { Graphic3d_MapOfStructure GmapS; viewer()->getViewer3d()->StructureManager()->DisplayedStructures(GmapS); for (Graphic3d_MapOfStructure::Iterator it(GmapS); it.More(); it.Next()) @@ -148,15 +148,15 @@ void TestViewer::show( const Handle(AIS_InteractiveObject)& theObject, myKey = aNewKey; eraseAll( false, true ); } - + if( theSelectionMode > 0 ) { - context()->OpenLocalContext(); - context()->Display( theObject, theMode, theSelectionMode ); + context()->Deactivate(); //OpenLocalContext(); + context()->Display( theObject, theMode, theSelectionMode, true ); context()->Activate( theObject, theSelectionMode, Standard_True ); } else - context()->Display( theObject, theMode, theSelectionMode ); + context()->Display( theObject, theMode, theSelectionMode, true ); if( isFitAll ) fitAll(); @@ -172,6 +172,7 @@ void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, int theUIANb, int theVIANb) { Handle(AIS_Shape) aShape = new AIS_Shape( theShape ); + std::cout <Attributes()->PointAspect()->SetTypeOfMarker( Aspect_TOM_X ); if (theShape.ShapeType()==TopAbs_FACE) @@ -316,7 +317,16 @@ bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, cons QString anExpectedRefFilePath = REF_DATA_PATH; anExpectedRefFilePath += "/" + myKey + ".png"; - QImage anExpectedRefImage; + std::ifstream file(anExpectedRefFilePath.toStdString().c_str()); + if (!file) + { + std::cerr << "Missing reference image " << anExpectedRefFilePath.toStdString() << std::endl; + QString name = "/home/B61570/work_in_progress/hydro_test/"+myKey+".png"; + anActualImage.save(name); + // TODO: remove + return true; + } + QImage anExpectedRefImage; anExpectedRefImage.load( anExpectedRefFilePath ); //std::cout << "Expected image loading: " << anExpectedRefFilePath.toStdString() << std::endl; @@ -326,27 +336,20 @@ bool TestViewer::AssertImages( QString& theMessage, const QImage* theImage, cons return true; } - QString temp = QDir::tempPath(); -#ifndef WIN32 - temp += "/hydro"; - if( !QDir().exists( temp ) ) - QDir().mkpath( temp ); -#endif - - QString aPath = temp + "/" + myKey + ".png"; + QString aPath = TMP_DIR + "/" + myKey + ".png"; anActualImage.save( aPath ); //std::cout << "Actual image: " << aPath.toStdString() << std::endl; - + //std::cout << anActualImage.width() << "x" << anActualImage.height() << std::endl; theMessage = "The viewer contents does not correspond to the reference image: " + myKey; - + QImage aDiff = diff( anExpectedRefImage, anActualImage ); - QString aDiffFilePath = temp + "/" + myKey + "_diff.png"; + QString aDiffFilePath = TMP_DIR + "/" + myKey + "_diff.png"; aDiff.save( aDiffFilePath ); //std::cout << "Diff image: " << aDiffFilePath.toStdString() << std::endl; - QString anExpected = temp + "/" + myKey + "_1.png"; + QString anExpected = TMP_DIR + "/" + myKey + "_1.png"; //std::cout << "Expected image: " << anExpected.toStdString() << std::endl; anExpectedRefImage.save( anExpected ); @@ -388,12 +391,12 @@ void TestViewer::showColorScale( bool isShow ) if( isShow ) { if( !context()->IsDisplayed( aColorScale ) ) - context()->Display( aColorScale ); + context()->Display( aColorScale, true ); } else { if( context()->IsDisplayed( aColorScale ) ) - context()->Erase( aColorScale ); + context()->Erase( aColorScale, true ); } } @@ -405,8 +408,8 @@ bool TestViewer::ColorScaleIsDisplayed() void TestViewer::select( int theViewX, int theViewY ) { Handle(V3d_View) aView = myViewWindow->getViewPort()->getView(); - context()->MoveTo( theViewX, theViewY, aView ); - context()->Select(); + context()->MoveTo( theViewX, theViewY, aView, true); + context()->Select(true); // context()->CloseAllContexts(); } @@ -429,12 +432,8 @@ bool TestViewer::areScriptsEqual( const QString& theBaseName, { QString anExpectedRefFilePath = REF_DATA_PATH; anExpectedRefFilePath += "/" + theBaseName; - -#ifdef WIN32 - QString anActualFilePath = QDir::tempPath() + "/" + theBaseName; -#else - QString anActualFilePath = QDir::tempPath() + "/hydro/" + theBaseName; -#endif + + QString anActualFilePath = TMP_DIR + "/" + theBaseName; QFile anExpected( anExpectedRefFilePath ); QFile anActual( anActualFilePath ); @@ -464,7 +463,7 @@ bool TestViewer::areScriptsEqual( const QString& theBaseName, theMsg = QString( "line %1\nActual: %2\nExpected: %3" ).arg( i ).arg( anActualLine ).arg( anExpectedLine ); i++; } - + while( !anActual.atEnd() && isEqual ) { QString anActualLine = GetLine( anActual, isActualUtf8 );