Salome HOME
refs #430: incorrect coordinates in dump polyline
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_PrsImage.h
index f51ab35e69638eb20e499ea6ac23af952c1f4545..1fafe35416c0a4d346e0a3d0509d68cda199d00a 100644 (file)
@@ -37,10 +37,11 @@ public:
   enum TransformationPointType { None = 0, PointA, PointB, PointC };
   struct TransformationPoint
   {
-    QPoint                   Point;
-    QString                  Caption;
-    QGraphicsEllipseItem*    PointItem;
-    QGraphicsSimpleTextItem* CaptionItem;
+    TransformationPoint() : Point( 0, 0 ), Caption( "" ), GroupItem( 0 ) {}
+
+    QPoint              Point;
+    QString             Caption;
+    QGraphicsItemGroup* GroupItem;
   };
   typedef QMap        < int, TransformationPoint > TransformationPointMap;
   typedef QMapIterator< int, TransformationPoint > TransformationPointMapIterator;
@@ -50,7 +51,8 @@ public:
   virtual ~HYDROGUI_PrsImage();
 
 public:
-  void                            setImage( const QImage& theImage );
+  void                            setImage( const QImage& theImage,
+                                            const bool theCompute = false );
   QImage                          getImage() const;
 
   void                            setCaption( const QString& theCaption );
@@ -90,7 +92,16 @@ public:
   virtual void                    setSelected( bool theState );
 
 protected:
-  void                            computeTransformationPoints();
+  void                            computeTransformationPoints( const bool theObligatoryInit = false );
+
+  QGraphicsItemGroup*             createPointItem( const QString& theCaption,
+                                                   const QColor& theColor );
+
+  /**
+   * Create presentations for transformation points A, B and C or update the presentation
+   * parameters if it is already created
+   */
+  void                            initTrsfPoints( const int thePointType );
   /**
    * Show/hide a transformation point if necessary.
    */