-// Copyright (C) 2007-2013 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
-// 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;
public:
- HYDROGUI_PrsImage( const Handle(HYDROData_Object)& theObject );
+ HYDROGUI_PrsImage( const Handle(HYDROData_Entity)& theObject );
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 );
+ QString getCaption() const;
+
void setIsTransformationPointPreview( const bool theState );
bool getIsTransformationPointPreview() const;
+ void setIsByTwoPoints( const bool theIsByTwoPoints );
+ bool getIsByTwoPoints() const;
+
void setTransformationPointType( const int thePointType );
void setTransformationPointMap( const TransformationPointMap& theMap );
const bool theIsY,
const int theValue );
+ /**
+ * Set shape of the transformation point cursor.
+ * @param theCursorShape a cursor shape to be set
+ */
+ void setTransformationPointCursorShape(Qt::CursorShape theCursorShape);
+
public:
// from QGraphicsItem
virtual QRectF boundingRect() const;
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; }
QImage myImage;
QGraphicsPixmapItem* myPixmapItem;
+ QGraphicsSimpleTextItem* myCaptionItem;
HYDROGUI_PrsImageFrame* myPrsImageFrame;
bool myIsTransformationPointPreview;
+ bool myIsByTwoPoints;
int myTransformationPointType;
TransformationPointMap myTransformationPointMap;