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 #ifndef POINT_H
00027 #define POINT_H
00028 #include <QWidget>
00029
00030 #include "geometry.h"
00031
00032 namespace qmapcontrol
00033 {
00035
00057 class Point : public Geometry
00058 {
00059 Q_OBJECT
00060
00061 public:
00062 friend class Layer;
00063 friend class LineString;
00064
00066 enum Alignment
00067 {
00068 TopLeft,
00069 TopRight,
00070 BottomLeft,
00071 BottomRight,
00072 Middle
00073 };
00074
00075 Point();
00076 explicit Point(const Point&);
00078
00085 Point(qreal x, qreal y, QString name = QString(), enum Alignment alignment=Middle);
00086
00088
00099 Point(qreal x, qreal y, QWidget* widget, QString name = QString(), enum Alignment alignment = Middle);
00100
00102
00111 Point(qreal x, qreal y, QPixmap* pixmap, QString name = QString(), enum Alignment alignment = Middle);
00112 virtual ~Point();
00113
00115
00120 virtual QRectF boundingBox();
00121
00123
00126 qreal longitude() const;
00127
00129
00132 qreal latitude() const;
00133
00135
00140 QPointF coordinate() const;
00141
00142 virtual QList<Point*> points();
00143
00147 QWidget* widget();
00148
00150
00153 QPixmap* pixmap();
00154
00156
00162 void setBaselevel(int zoomlevel);
00163
00165
00170 void setMinsize(QSize minsize);
00171
00173
00178 void setMaxsize(QSize maxsize);
00179
00180 Point::Alignment alignment() const;
00181
00182 protected:
00183 qreal X;
00184 qreal Y;
00185 QSize size;
00186
00187 QWidget* mywidget;
00188 QPixmap* mypixmap;
00189 Alignment myalignment;
00190 int homelevel;
00191 QSize displaysize;
00192 QSize minsize;
00193 QSize maxsize;
00194
00195
00196 void drawWidget(const MapAdapter* mapadapter, const QPoint offset);
00197
00198 virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset);
00199 QPoint alignedPoint(const QPoint point) const;
00200
00202
00208 virtual bool Touches(Point* geom, const MapAdapter* mapadapter);
00209
00210 public slots:
00211 void setCoordinate(QPointF point);
00212 virtual void setVisible(bool visible);
00213 };
00214 }
00215 #endif