#pragma once
+#include <AIS_InteractiveContext.hxx>
+#include <Standard_Version.hxx>
+
class OCCViewer_ViewManager;
class OCCViewer_Viewer;
-class OCCViewer_ViewWindow;
+class OCCViewer_ViewFrame;
class TopoDS_Shape;
class QString;
class QColor;
-class Handle_AIS_InteractiveContext;
-class Handle_AIS_InteractiveObject;
-class Handle_Aspect_ColorScale;
+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:
static OCCViewer_ViewManager* viewManager();
static OCCViewer_Viewer* viewer();
- static OCCViewer_ViewWindow* viewWindow();
- static Handle_AIS_InteractiveContext context();
+ static OCCViewer_ViewFrame* viewWindow();
+ static Handle(AIS_InteractiveContext) context();
- static void eraseAll( bool isUpdate );
- static void show( const Handle_AIS_InteractiveObject& theObject,
+ 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 );
- static void show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, const char* theKey );
- static bool AssertImages( QString& theMessage );
+ 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 = SWAP_RGB );
static QColor GetColor(int i);
- static Handle_Aspect_ColorScale colorScale();
+ static Handle(AIS_ColorScale) colorScale();
static void showColorScale( bool );
+ static bool ColorScaleIsDisplayed();
static void select( int theViewX, int theViewY );
int theLinesToOmit,
QString& theMsg );
+ static void setKey( const QString& );
+ static void fitAll();
+ static QImage diff( const QImage& im1, const QImage& im2 );
+
private:
static OCCViewer_ViewManager* myViewManager;
- static OCCViewer_ViewWindow* myViewWindow;
+ static OCCViewer_ViewFrame* myViewWindow;
static QString myKey;
};
} \
} \
+#define CPPUNIT_ASSERT_IMAGES2( theImage, theCase ) \
+ { \
+ QString aMessage; \
+ if( !TestViewer::AssertImages( aMessage, theImage, theCase ) ) \
+ { \
+ TestViewer::showColorScale( false ); \
+ std::string aMessageStl = aMessage.toStdString(); \
+ CPPUNIT_FAIL( aMessageStl.c_str() ); \
+ } \
+ } \
+
+#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, \