Go to
the documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QGRAPHICSTRANSFORM_H
00043 #define QGRAPHICSTRANSFORM_H
00044
00045 #include <QtCore/QObject>
00046 #include <QtGui/QVector3D>
00047 #include <QtGui/QTransform>
00048 #include <QtGui/QMatrix4x4>
00049
00050 #ifndef QT_NO_GRAPHICSVIEW
00051 QT_BEGIN_HEADER
00052
00053 QT_BEGIN_NAMESPACE
00054
00055 QT_MODULE(Gui)
00056
00057 class QGraphicsItem;
00058 class QGraphicsTransformPrivate;
00059
00060 class Q_GUI_EXPORT QGraphicsTransform : public QObject
00061 {
00062 Q_OBJECT
00063 public:
00064 QGraphicsTransform(QObject *parent = 0);
00065 ~QGraphicsTransform();
00066
00067 virtual void applyTo(QMatrix4x4 *matrix) const = 0;
00068
00069 protected Q_SLOTS:
00070 void update();
00071
00072 protected:
00073 QGraphicsTransform(QGraphicsTransformPrivate &p, QObject *parent);
00074
00075 private:
00076 friend class QGraphicsItem;
00077 friend class QGraphicsItemPrivate;
00078 Q_DECLARE_PRIVATE(QGraphicsTransform)
00079 };
00080
00081 class QGraphicsScalePrivate;
00082
00083 class Q_GUI_EXPORT QGraphicsScale : public QGraphicsTransform
00084 {
00085 Q_OBJECT
00086
00087 Q_PROPERTY(QVector3D origin READ origin WRITE setOrigin NOTIFY originChanged)
00088 Q_PROPERTY(qreal xScale READ xScale WRITE setXScale NOTIFY xScaleChanged)
00089 Q_PROPERTY(qreal yScale READ yScale WRITE setYScale NOTIFY yScaleChanged)
00090 Q_PROPERTY(qreal zScale READ zScale WRITE setZScale NOTIFY zScaleChanged)
00091 public:
00092 QGraphicsScale(QObject *parent = 0);
00093 ~QGraphicsScale();
00094
00095 QVector3D origin() const;
00096 void setOrigin(const QVector3D &point);
00097
00098 qreal xScale() const;
00099 void setXScale(qreal);
00100
00101 qreal yScale() const;
00102 void setYScale(qreal);
00103
00104 qreal zScale() const;
00105 void setZScale(qreal);
00106
00107 void applyTo(QMatrix4x4 *matrix) const;
00108
00109 Q_SIGNALS:
00110 void originChanged();
00111 void xScaleChanged();
00112 void yScaleChanged();
00113 void zScaleChanged();
00114 void scaleChanged();
00115
00116 private:
00117 Q_DECLARE_PRIVATE(QGraphicsScale)
00118 };
00119
00120 class QGraphicsRotationPrivate;
00121
00122 class Q_GUI_EXPORT QGraphicsRotation : public QGraphicsTransform
00123 {
00124 Q_OBJECT
00125
00126 Q_PROPERTY(QVector3D origin READ origin WRITE setOrigin NOTIFY originChanged)
00127 Q_PROPERTY(qreal angle READ angle WRITE setAngle NOTIFY angleChanged)
00128 Q_PROPERTY(QVector3D axis READ axis WRITE setAxis NOTIFY axisChanged)
00129 public:
00130 QGraphicsRotation(QObject *parent = 0);
00131 ~QGraphicsRotation();
00132
00133 QVector3D origin() const;
00134 void setOrigin(const QVector3D &point);
00135
00136 qreal angle() const;
00137 void setAngle(qreal);
00138
00139 QVector3D axis() const;
00140 void setAxis(const QVector3D &axis);
00141 void setAxis(Qt::Axis axis);
00142
00143 void applyTo(QMatrix4x4 *matrix) const;
00144
00145 Q_SIGNALS:
00146 void originChanged();
00147 void angleChanged();
00148 void axisChanged();
00149
00150 private:
00151 Q_DECLARE_PRIVATE(QGraphicsRotation)
00152 };
00153
00154 QT_END_NAMESPACE
00155
00156 QT_END_HEADER
00157 #endif //QT_NO_GRAPHICSVIEW
00158
00159 #endif // QFXTRANSFORM_H