X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2FTestViewer.h;h=d415e9831c84ecb9861785d1b7d7fd9437986f52;hb=3bece499e83cc9ca95536228c7f6740030e9d5d8;hp=244871d447b69312d2ab06be7612033cb951d8da;hpb=b86ee42a0010ef6bde30373a8741dd865d557dd3;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/TestViewer.h b/src/HYDRO_tests/TestViewer.h index 244871d4..d415e983 100644 --- a/src/HYDRO_tests/TestViewer.h +++ b/src/HYDRO_tests/TestViewer.h @@ -19,6 +19,7 @@ #pragma once #include +#include class OCCViewer_ViewManager; class OCCViewer_Viewer; @@ -30,6 +31,13 @@ class QImage; class AIS_InteractiveObject; class AIS_ColorScale; +#define OCC_VERSION_LARGE (OCC_VERSION_MAJOR << 24 | OCC_VERSION_MINOR << 16 | OCC_VERSION_MAINTENANCE << 8) +#if OCC_VERSION_LARGE >= 0x07020000 +const bool SWAP_RGB = false; +#else +const bool SWAP_RGB = true; +#endif + class TestViewer { public: @@ -38,14 +46,14 @@ public: static OCCViewer_ViewFrame* viewWindow(); static Handle(AIS_InteractiveContext) context(); - static void eraseAll( bool isUpdate ); + static void eraseAll( bool isUpdate, bool eraseStructures = false ); static void show( const Handle(AIS_InteractiveObject)& theObject, int theMode, int theSelectionMode, bool isFitAll, const char* theKey ); static void show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, const QColor& theColor, int theUIANb = 10, int theVIANb = 10); static void show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, const char* theKey, int theUIANb = 10, int theVIANb = 10); - static bool AssertImages( QString& theMessage, const QImage* = 0, const char* theCase = 0, bool swapRGB = true ); + static bool AssertImages( QString& theMessage, const QImage* = 0, const char* theCase = 0, bool swapRGB = SWAP_RGB ); static QColor GetColor(int i); static Handle(AIS_ColorScale) colorScale(); @@ -62,6 +70,7 @@ public: static void setKey( const QString& ); static void fitAll(); + static QImage diff( const QImage& im1, const QImage& im2 ); private: static OCCViewer_ViewManager* myViewManager; @@ -91,6 +100,17 @@ private: } \ } \ +#define CPPUNIT_ASSERT_IMAGES3( theImage, theCase, theSwapRGB ) \ + { \ + QString aMessage; \ + if( !TestViewer::AssertImages( aMessage, theImage, theCase, theSwapRGB ) ) \ + { \ + TestViewer::showColorScale( false ); \ + std::string aMessageStl = aMessage.toStdString(); \ + CPPUNIT_FAIL( aMessageStl.c_str() ); \ + } \ + } + #define CPPUNIT_ASSERT_SCRIPTS_EQUAL( theBaseName, \ isExpectedUtf8, \ isActualUtf8, \