mapitem.cpp
author insilmaril
Thu, 07 May 2009 08:48:53 +0000
changeset 766 7a71a914afdb
parent 762 ffb95cd03156
child 775 6e4b586aa88a
permissions -rw-r--r--
Started to reanimate flags
insilmaril@760
     1
#include "mapitem.h"
insilmaril@760
     2
insilmaril@760
     3
#include "linkablemapobj.h"
insilmaril@760
     4
#include "ornamentedobj.h"
insilmaril@760
     5
insilmaril@760
     6
#include <iostream>
insilmaril@760
     7
using namespace std;
insilmaril@760
     8
insilmaril@760
     9
MapItem::MapItem()
insilmaril@760
    10
{
insilmaril@760
    11
	lmo=NULL;
insilmaril@760
    12
	posMode=Unused;
insilmaril@760
    13
}
insilmaril@760
    14
insilmaril@760
    15
void MapItem::setRelPos (const QPointF &p)
insilmaril@760
    16
{
insilmaril@760
    17
	posMode=Relative;
insilmaril@760
    18
	pos=p;
insilmaril@760
    19
	if (lmo)
insilmaril@760
    20
	{
insilmaril@760
    21
		((OrnamentedObj*)lmo)->setUseRelPos (true);
insilmaril@760
    22
		((OrnamentedObj*)lmo)->move2RelPos(p);
insilmaril@760
    23
	}
insilmaril@760
    24
}
insilmaril@760
    25
insilmaril@760
    26
void MapItem::setAbsPos (const QPointF &p)
insilmaril@760
    27
{
insilmaril@760
    28
	posMode=Absolute;
insilmaril@760
    29
	pos=p;
insilmaril@760
    30
	if (lmo) lmo->move (p);
insilmaril@760
    31
}
insilmaril@760
    32
insilmaril@760
    33
LinkableMapObj* MapItem::getLMO()
insilmaril@760
    34
{
insilmaril@760
    35
	return lmo;
insilmaril@760
    36
}
insilmaril@760
    37
insilmaril@760
    38
void MapItem::setLMO(LinkableMapObj *l)
insilmaril@760
    39
{
insilmaril@760
    40
	lmo=l;
insilmaril@760
    41
}
insilmaril@760
    42
insilmaril@760
    43
void MapItem::initLMO()
insilmaril@760
    44
{
insilmaril@760
    45
	if (!lmo) return;
insilmaril@760
    46
	switch (posMode)
insilmaril@760
    47
	{
insilmaril@760
    48
		case Relative:	
insilmaril@760
    49
			lmo->setRelPos (pos);
insilmaril@760
    50
			break;
insilmaril@760
    51
		case Absolute:	
insilmaril@760
    52
			lmo->move (pos);
insilmaril@760
    53
			break;
insilmaril@760
    54
		default:
insilmaril@760
    55
			break;
insilmaril@760
    56
	}
insilmaril@760
    57
}
insilmaril@760
    58
insilmaril@762
    59
QString MapItem::getAttr()
insilmaril@762
    60
{
insilmaril@762
    61
	switch (posMode)
insilmaril@762
    62
	{
insilmaril@762
    63
		case Relative:	
insilmaril@762
    64
			if (lmo) pos=lmo->getRelPos();
insilmaril@762
    65
			return
insilmaril@762
    66
				attribut("relPosX",QString().setNum(pos.x())) +
insilmaril@762
    67
				attribut("relPosY",QString().setNum(pos.y())); 
insilmaril@762
    68
			break;
insilmaril@762
    69
		case Absolute:	
insilmaril@762
    70
			if (lmo) pos=lmo->getAbsPos();
insilmaril@762
    71
			return
insilmaril@762
    72
				attribut("absPosX",QString().setNum(pos.x())) +
insilmaril@762
    73
				attribut("absPosY",QString().setNum(pos.y())); 
insilmaril@762
    74
			break;
insilmaril@762
    75
		default:
insilmaril@762
    76
			return QString();
insilmaril@762
    77
			break;
insilmaril@762
    78
	}
insilmaril@762
    79
}
insilmaril@762
    80