SVN commit 1191710 by majewsky: Generalize CircleShape to EllipseShape. M +1 -1 game.cpp M +13 -28 shape.cpp M +5 -9 shape.h --- trunk/KDE/kdegames/kolf/game.cpp #1191709:1191710 @@ -1073,7 +1073,7 @@ { const int diameter = 16; setSize(QSizeF(diameter, diameter)); - addShape(new Kolf::CircleShape(diameter / 2)); + addShape(new Kolf::EllipseShape(QRectF(-diameter / 2, -diameter / 2, diameter, diameter))); setZValue(998.1); } --- trunk/KDE/kdegames/kolf/shape.cpp #1191709:1191710 @@ -66,51 +66,36 @@ } //END Kolf::Shape -//BEGIN Kolf::CircleShape +//BEGIN Kolf::EllipseShape -Kolf::CircleShape::CircleShape(qreal radius, const QPointF& center) - : m_center(center) - , m_radius(radius) +Kolf::EllipseShape::EllipseShape(const QRectF& rect) + : m_rect(rect) { update(); } -QPointF Kolf::CircleShape::center() const +QRectF Kolf::EllipseShape::rect() const { - return m_center; + return m_rect; } -void Kolf::CircleShape::setCenter(const QPointF& center) +void Kolf::EllipseShape::setRect(const QRectF& rect) { - if (m_center != center) + if (m_rect != rect) { - m_center = center; + m_rect = rect; update(); } } -qreal Kolf::CircleShape::radius() const +void Kolf::EllipseShape::createOutlines(QPainterPath& activationOutline, QPainterPath& interactionOutline) { - return m_radius; + interactionOutline.addEllipse(m_rect); + const qreal& p = Kolf::Shape::ActivationOutlinePadding; + activationOutline.addEllipse(m_rect.adjusted(-p, -p, p, p)); } -void Kolf::CircleShape::setRadius(qreal radius) -{ - if (m_radius != radius) - { - m_radius = radius; - update(); - } -} - -void Kolf::CircleShape::createOutlines(QPainterPath& activationOutline, QPainterPath& interactionOutline) -{ - const qreal activationRadius = m_radius + Kolf::Shape::ActivationOutlinePadding; - interactionOutline.addEllipse(m_center, m_radius, m_radius); - activationOutline.addEllipse(m_center, activationRadius, activationRadius); -} - -//END Kolf::CircleShape +//END Kolf::EllipseShape //BEGIN Kolf::RectShape Kolf::RectShape::RectShape(const QRectF& rect) --- trunk/KDE/kdegames/kolf/shape.h #1191709:1191710 @@ -59,21 +59,17 @@ QPainterPath m_activationOutline, m_interactionOutline; }; - class CircleShape : public Kolf::Shape + class EllipseShape : public Kolf::Shape { public: - CircleShape(qreal radius, const QPointF& center = QPointF()); + EllipseShape(const QRectF& rect); - QPointF center() const; - void setCenter(const QPointF& center); - - qreal radius() const; - void setRadius(qreal radius); + QRectF rect() const; + void setRect(const QRectF& rect); protected: virtual void createOutlines(QPainterPath& activationOutline, QPainterPath& interactionOutline); private: - QPointF m_center; - qreal m_radius; + QRectF m_rect; }; class RectShape : public Kolf::Shape