-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015 EDF-R&D
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
#include <HYDROData_Document.h>
#include <gp_Pnt.hxx>
+#include <QMessageBox>
+#include <QApplication>
+#include <QDesktopWidget>
HYDROGUI_ShapeImage::HYDROGUI_ShapeImage( const Handle(AIS_InteractiveContext)& theContext,
- const Handle_HYDROData_Image& theImage,
+ const Handle(HYDROData_Image)& theImage,
const int theZLayer )
: HYDROGUI_Shape( theContext, theImage, theZLayer )
{
HYDROGUI_Shape::update( theIsUpdateViewer, isDeactivateSelection );
}
-Handle(AIS_InteractiveObject) HYDROGUI_ShapeImage::createShape() const
+QList<Handle(AIS_InteractiveObject)> HYDROGUI_ShapeImage::createShape() const
{
- Handle(HYDROData_Image) anImageObj = Handle(HYDROData_Image)::DownCast( getObject() );
- if ( anImageObj.IsNull() )
- return Handle_AIS_InteractiveObject();
+ QList<Handle(AIS_InteractiveObject)> shapes;
+
+ Handle(HYDROGUI_ImagePrs) aPrs;
+
+ Handle(HYDROData_Image) anImageObj = Handle(HYDROData_Image)::DownCast( getObject() );
+ if ( !anImageObj.IsNull() )
+ {
+ QString aMsg;
+ aPrs = new HYDROGUI_ImagePrs( imagePixMap( anImageObj, aMsg ), imageContour( anImageObj ) );
+ if( !aMsg.isEmpty() )
+ QMessageBox::warning( qApp->desktop(), "Warning", aMsg );
+ shapes.append( aPrs );
+ }
- Handle(HYDROGUI_ImagePrs) aPrs = new HYDROGUI_ImagePrs( imagePixMap( anImageObj ), imageContour( anImageObj ) );
- return aPrs;
+ return shapes;
}
-Handle(Image_PixMap) HYDROGUI_ShapeImage::imagePixMap( const Handle(HYDROData_Image)& theImageObj ) const
+Handle(Image_PixMap) HYDROGUI_ShapeImage::imagePixMap( const Handle(HYDROData_Image)& theImageObj, QString& theMessage ) const
{
Handle(Image_PixMap) aPix;
if ( !theImageObj.IsNull() )
if ( aDelta > 0 )
aTrsfWidth += ( 4 - aDelta );
+ const int maxWidth = 7000;
+ if( aTrsfWidth>maxWidth )
+ {
+ aTrsfWidth = maxWidth;
+ theMessage = QString( "The size of image is scaled to %0" ).arg( aTrsfWidth );
+ }
anImage = anImage.scaledToWidth( aTrsfWidth );
+ int pix = anImage.width() * anImage.height();
aPix = HYDROGUI_Tool::Pixmap( anImage );
}
return aPix;
}
-QPolygonF HYDROGUI_ShapeImage::imageContour( const Handle_HYDROData_Image& theImageObj ) const
+QPolygonF HYDROGUI_ShapeImage::imageContour( const Handle(HYDROData_Image)& theImageObj ) const
{
QPolygonF aContour;
if ( !theImageObj.IsNull() )