Salome HOME
quick optimization patch (bytearray for images)
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ShapeImage.cxx
index 3d5199656b4476fdd4db7a80643ff37f836e7209..d57f726dac12cf044c2699d731436a6d89e14984 100644 (file)
@@ -27,7 +27,7 @@
 #include <gp_Pnt.hxx>
 
 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 )
 {
@@ -46,14 +46,20 @@ void HYDROGUI_ShapeImage::update( bool theIsUpdateViewer, bool isDeactivateSelec
   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 = new HYDROGUI_ImagePrs( imagePixMap( anImageObj ), imageContour( anImageObj ) );
-    return aPrs;
+  Handle(HYDROGUI_ImagePrs) aPrs;
+
+  Handle(HYDROData_Image) anImageObj = Handle(HYDROData_Image)::DownCast( getObject() );
+  if ( !anImageObj.IsNull() )
+  {
+    aPrs = new HYDROGUI_ImagePrs( imagePixMap( anImageObj ), imageContour( anImageObj ) );
+    shapes.append( aPrs );
+  }
+
+  return shapes;
 }
 
 Handle(Image_PixMap) HYDROGUI_ShapeImage::imagePixMap( const Handle(HYDROData_Image)& theImageObj ) const
@@ -81,7 +87,7 @@ Handle(Image_PixMap) HYDROGUI_ShapeImage::imagePixMap( const Handle(HYDROData_Im
     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() )