23 Camera::Camera(
QPointF translation, qreal rotation, qreal scaling)
25 Q_ASSERT(scaling > 0);
26 mTranslate = translation;
29 updateViewTransform();
34 mTranslate = c2.mTranslate;
37 mNeedUpdateView =
true;
49 void Camera::assign(
const Camera& rhs)
51 mTranslate = rhs.mTranslate;
52 mRotate = rhs.mRotate;
54 updateViewTransform();
61 updateViewTransform();
70 mNeedUpdateView =
true;
74 void Camera::updateViewTransform()
85 s.
scale(mScale, mScale);
89 mNeedUpdateView =
false;
92 void Camera::translate(qreal dx, qreal dy)
97 mNeedUpdateView =
true;
101 void Camera::translate(
const QPointF pt)
103 translate(pt.
x(), pt.
y());
106 void Camera::rotate(qreal degree)
111 mRotate = mRotate - 360;
113 else if (mRotate < 0)
115 mRotate = mRotate + 360;
119 mNeedUpdateView =
true;
123 void Camera::scale(qreal scaleValue)
127 mNeedUpdateView =
true;
131 void Camera::scaleWithOffset(qreal scaleValue,
QPointF offset)
133 mTranslate = (mTranslate + offset) * mScale / scaleValue - offset;
137 bool Camera::operator==(
const Camera& rhs)
const
139 bool b = (mTranslate == rhs.mTranslate)
140 && qFuzzyCompare(mRotate, rhs.mRotate)
141 && qFuzzyCompare(mScale, rhs.mScale);