X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2FTestViewer.cxx;h=3fd331eb3acf1248a279171595fe1a8c6bd4aa2c;hb=670039d7a5d25b1da51956b668f212756d31a86e;hp=fd031b6d4e69a84472e978e1bfa219dd391d6953;hpb=01c12054cd573c907306af4292e14b59f5a227d8;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/TestViewer.cxx b/src/HYDRO_tests/TestViewer.cxx index fd031b6d..3fd331eb 100644 --- a/src/HYDRO_tests/TestViewer.cxx +++ b/src/HYDRO_tests/TestViewer.cxx @@ -42,6 +42,8 @@ #include #include #include +#include +#include #ifdef WIN32 #pragma warning ( default: 4251 ) @@ -166,15 +168,15 @@ void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, if( theShape.IsNull() ) return; - int i = 0; - if( theShape.ShapeType()==TopAbs_SHELL ) + if( theShape.ShapeType()==TopAbs_COMPOUND ) { - TopoDS_Iterator anIt( theShape ); - for( ; anIt.More(); anIt.Next(), i++ ) - show( anIt.Value(), theMode, false, GetColor(i) ); + TopExp_Explorer anExplorer( theShape, TopAbs_FACE ); + for( ; anExplorer.More(); anExplorer.Next() ) + ShowShape (anExplorer.Current(), theMode); } else - show( theShape, theMode, false, GetColor(0) ); + ShowShape(theShape, theMode); + if( isFitAll ) { @@ -183,6 +185,22 @@ void TestViewer::show( const TopoDS_Shape& theShape, int theMode, bool isFitAll, } } +void TestViewer::ShowShape(const TopoDS_Shape& theShape, int theMode) +{ + int i = 0; + if( theShape.ShapeType()==TopAbs_SHELL ) + { + TopoDS_Iterator anIt( theShape ); + for( ; anIt.More(); anIt.Next(), i++ ) + show( anIt.Value(), theMode, false, GetColor(i) ); + } + else if (theShape.ShapeType()==TopAbs_FACE || + theShape.ShapeType()==TopAbs_WIRE || + theShape.ShapeType()==TopAbs_EDGE || + theShape.ShapeType()==TopAbs_VERTEX ) + show( theShape, theMode, false, GetColor(0) ); +} + bool AreImagesEqual( const QImage& theImage1, const QImage& theImage2, double theTolerance ) { if( theImage1.isNull() || theImage2.isNull() )