insilmaril@754: #include "geometry.h" insilmaril@0: #include "mapobj.h" insilmaril@129: #include "misc.h" insilmaril@0: insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: // MapObj insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: MapObj::MapObj () insilmaril@0: { insilmaril@408: //qWarning ( "Const MapObj (): Please set scene somehow!!!"); insilmaril@408: scene=NULL; insilmaril@0: init (); insilmaril@0: } insilmaril@0: insilmaril@790: MapObj::MapObj (QGraphicsScene *s, TreeItem *ti) insilmaril@0: { insilmaril@0: // cout << "Const MapObj\n"; insilmaril@408: scene=s; insilmaril@790: treeItem=ti; insilmaril@0: init (); insilmaril@0: } insilmaril@0: insilmaril@0: insilmaril@0: MapObj::MapObj (MapObj* mo) insilmaril@0: { insilmaril@0: // cout << "CopyConst MapObj\n"; insilmaril@0: copy (mo); insilmaril@0: } insilmaril@0: insilmaril@0: MapObj::~MapObj () insilmaril@0: { insilmaril@0: // cout << "Destr MapObj\n"; insilmaril@0: } insilmaril@0: insilmaril@0: void MapObj::init () insilmaril@0: { insilmaril@408: absPos=QPointF(0,0); insilmaril@0: visible=true; insilmaril@794: pi=NULL; insilmaril@0: } insilmaril@0: insilmaril@0: void MapObj::copy(MapObj* other) insilmaril@0: { insilmaril@408: // scene=other->scene; // already set in constr. of child, use that one... insilmaril@0: absPos=other->absPos; insilmaril@0: bbox.setX (other->bbox.x() ); insilmaril@0: bbox.setY (other->bbox.y() ); insilmaril@408: bbox.setSize (QSizeF(other->bbox.width(), other->bbox.height() ) ); insilmaril@0: } insilmaril@0: insilmaril@790: void MapObj::setTreeItem (TreeItem *ti) insilmaril@790: { insilmaril@790: treeItem=ti; insilmaril@790: } insilmaril@790: insilmaril@790: TreeItem* MapObj::getTreeItem () const insilmaril@790: { insilmaril@790: return treeItem; insilmaril@790: } insilmaril@790: insilmaril@790: insilmaril@408: QGraphicsScene* MapObj::getScene() insilmaril@0: { insilmaril@408: return scene; insilmaril@0: } insilmaril@0: insilmaril@408: qreal MapObj::x() insilmaril@0: { insilmaril@0: return absPos.x(); insilmaril@0: } insilmaril@0: insilmaril@408: qreal MapObj::y() insilmaril@0: { insilmaril@0: return absPos.y(); insilmaril@0: } insilmaril@0: insilmaril@408: qreal MapObj::width() insilmaril@0: { insilmaril@0: return bbox.width(); insilmaril@0: } insilmaril@0: insilmaril@408: qreal MapObj::height() insilmaril@0: { insilmaril@0: return bbox.height(); insilmaril@0: } insilmaril@0: insilmaril@408: QPointF MapObj::getAbsPos() insilmaril@227: { insilmaril@227: return absPos; insilmaril@227: } insilmaril@227: insilmaril@129: QString MapObj::getPos() insilmaril@129: { insilmaril@792: return qpointFToString(absPos); insilmaril@129: } insilmaril@129: insilmaril@0: void MapObj::move (double x, double y) insilmaril@0: { insilmaril@408: absPos.setX( x); insilmaril@408: absPos.setY( y); insilmaril@408: bbox.moveTo(QPointF(x,y)); insilmaril@408: clickBox.moveTo(QPointF(x,y)); insilmaril@408: } insilmaril@408: insilmaril@408: void MapObj::move (QPointF p) insilmaril@408: { insilmaril@408: absPos=p; insilmaril@408: bbox.moveTo (p); insilmaril@408: clickBox.moveTo (p); insilmaril@0: } insilmaril@0: insilmaril@0: void MapObj::moveBy (double x, double y) insilmaril@0: { insilmaril@336: MapObj::move (x+absPos.x(),y+absPos.y() ); insilmaril@408: bbox.moveTo (bbox.x()+x,bbox.y()+y); insilmaril@408: clickBox.moveTo (clickBox.x()+x,clickBox.y()+y); insilmaril@0: } insilmaril@0: insilmaril@408: QRectF MapObj::getBBox() insilmaril@0: { insilmaril@0: return bbox; insilmaril@0: } insilmaril@0: insilmaril@792: ConvexPolygon MapObj::getBoundingPolygon() insilmaril@792: { insilmaril@792: QPolygonF p; insilmaril@792: p<