1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#ifndef MAPOBJ_H
#define MAPOBJ_H
#include <QGraphicsScene>
#include <QGraphicsItem>
#include <iostream>
#include "misc.h"
using namespace std;
#define Z_BBOX 0
#define Z_XLINK 10
#define Z_LINK 20
#define Z_FRAME 50
#define Z_SELBOX 60
#define Z_FLOATIMG 65
#define Z_ICON 80
#define Z_TEXT 100
/*! \brief Base class for all objects visible on a map
*/
class MapObj:public xmlObj {
public:
MapObj ();
MapObj (QGraphicsScene*);
MapObj (MapObj*);
virtual ~MapObj ();
virtual void init ();
virtual void copy (MapObj*);
virtual QGraphicsScene* getScene();
virtual qreal x();
virtual qreal y();
virtual qreal width();
virtual qreal height();
virtual QPointF getAbsPos();
virtual QString getPos(); // Return position as string (x,y)
virtual void move (double x,double y); // move to absolute Position
virtual void move (QPointF p);
virtual void moveBy (double x,double y); // move to relative Position
virtual bool inBox(const QPointF&); // Check if Point is within clickbox
virtual QRectF getBBox(); // returns bounding box
virtual QRectF addBBox(QRectF,QRectF); // returns bbox which includes both boxes
virtual QSizeF getSize(); // returns size of bounding box
virtual bool isVisibleObj();
virtual void setVisibility(bool);
virtual void positionBBox()=0;
virtual void calcBBoxSize()=0;
virtual void animate(); // called by timer for animated objects
protected:
QGraphicsScene* scene;
QRectF bbox; // bounding box of MO itself
QRectF clickBox; // area where mouseclicks are found
QPointF absPos; // Position on canvas
bool visible;
};
#endif
|