-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// 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
// 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
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
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;
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 );
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.
+ */
+ void updateTrsfPoint( const int thePointType );
protected:
QCursor* getTransformationPointCursor() const { return myTransformationPointCursor; }