From ef2f7e188ef49c317e13d0c537306a23b0a0c057 Mon Sep 17 00:00:00 2001 From: catdog2 Date: Sat, 20 Dec 2008 17:26:58 +0000 Subject: [PATCH] einiges zeugs usw ... blabla brummbrumm dada git-svn-id: http://svn.lsim.tuxzone.org/trunk@33 4bec179b-ab65-46ed-a5f8-55b8b5c735d0 --- lsim.kdevelop.pcs | Bin 171014 -> 171014 bytes lsim.kdevses | 14 +++--- src/graphicsellipseitem.cpp | 84 ++++++++++++++++-------------------- src/graphicsellipseitem.h | 9 +++- src/lsim.cpp | 78 ++++++++++++++++++++++++++++++++- src/lsim.h | 2 + src/simulscene.cpp | 34 +++++++++++++-- src/simulscene.h | 7 +++ 8 files changed, 167 insertions(+), 61 deletions(-) diff --git a/lsim.kdevelop.pcs b/lsim.kdevelop.pcs index a4d43f7315b340ac95ce07f1c17edd6364ed3822..8187b46904818952c90f643cad982227e9078336 100644 GIT binary patch delta 1210 zcmYk5e@v8h9LJx}_qiX>b35SV_;H5^f)Jg;@YFJ#z(FJD35VDikw~10iw)he;TomI zIpqoyvaDa)9yV%!8Ojf!Q@bN9r0{`!30@7L%3 ze4c0D@8OGv!xs(1*+g);GUGXJ@2?0$JMkFVA-FbAy~}a;W^vhcg+^&u5r2?ZsvsNF zrScHRCdKPIXkkO9t9odmX*O7alHGy>mecxrE}fGfTHH*m*s&^$9ksq`05cP^Cd~A9 z9vFxKxXiR3XWfZ-Aisc)mq8MHJ%3aHAFlnZ3EN*xVWTAtI=Q{w(1h=7IRrjta$V+S zVf*|_!fj%|m)}c&V@IerRanX(Ya zfg4X?3Hm->hee$p@wceTJ&dU1Cv6zIET9n&7=Vvjpp~t8@gKDV6%?@GlVVKh@`#ga z#1FFL!quaj(b(+~*Q)&bC4Q_sAWo_5w5&ddee{+A^eQN-;AzpUDv7FM!+vJ-2a@H=ox{;<6Ka{yx_}XjyjyjdV(E*{-6M>*{b)BgJ@J8)6%eG zpc311DcQclC4@?ol)w0(H=QHrfYq6~L>q`RP zxMnxo@ZBY&k=q68X3BAzu3%;N?J=~>N0QmG`FVoASsj+njG^=45gb}b!S};<6dx(I zjn-$9H0u2s9O$@j!{k2-(K!=?jt5s|q5@kM79-Q;bFZ?QKha8!T_i~gn4v|3b&V$a zzy;OPJ`1#JXj?6$(QZAgqiLW1;p8dU3Wwn~Ri zk3gNfAVB>*B+94zA|3I~-Y4%7un9yi5-#FNzP5>ytyQj)QC3^5ASkljkV+|K(H(qYK7T#W`}O{OKF{ab z=leZ;-f;N5p)Z-q^MR$)RsTuo-9ty&ZcUh&rikm?r63iV`a^nd_98@F3bpFt6r;*; zC~tcJiZ~a3A&j`qLEV;9^wjzs@oH?H0og)M`XbV3n1F6^$)JevO*CDwiViw5_)s3A z#fy$XnGc(xP+My`HSSt12D2+d`B*MYG*z*eUVHTAAU29MxgY3*JBj8qWODaduvPq> zKM_MumYKva6=vBejV%>g0eXL^RFv*dW+4e7Ry9jB)pRCcMBIOjLwRWNHprpllue!w z(<#&IR({tmd1FBxI%y^UC7FzLkm>Hw-Sz_dmU@(1n&}_SBvZzPEQ&hemcP~rFPepg z+^=t>l)+pw`rL|5D|g>=%thZD%J-UoETC?sc7DyE`%g3KG~+47peaU8u~Nz9Wbs=| zKPa_RhGQuszZ!>dG1u15lr36_OUo-$VMi+2Py3ZeG?KSW?A;}lcEz;N{`4Z%{k2RB zJ4TfaT8#Z3HI@9G{mO*qpSp+a<)>w~l5Td%l-9M663)n2CtA9WK#A4zB#QNCnj!18 zBhQ`>JeKFJeKa8o@SAJ0X( zy5EB5B|OJHPaux_!jR5iT8kb0NE|ZpG%uCm(I9ubXnBrIC<6-23@#G^PA z&(ipn&AhLU*?C(T9Q>Fb(cHWnGXG&6?jV8soSS&FgT>Q(RjIsvC6f5vs6dU+Q{Y0q zs@UK);c@P-!M4R%Q!TQ*b5^zFLF8DmE7*L&!pAnS6TNFtss^l8iA?%YwH${n5>8(O z8u+9anFDX*vc%6dqLBaEf=spWUF7RgrM}sVLV{Vs1KL%4BO5jI fy2wD&T?bf!T62PJ2?_pjJiP20V%1MunG62|h4-ad diff --git a/lsim.kdevses b/lsim.kdevses index 3745896..ce2eaeb 100644 --- a/lsim.kdevses +++ b/lsim.kdevses @@ -3,25 +3,25 @@ - + - + - + - + - + - + - + diff --git a/src/graphicsellipseitem.cpp b/src/graphicsellipseitem.cpp index d0b0024..910a5b1 100644 --- a/src/graphicsellipseitem.cpp +++ b/src/graphicsellipseitem.cpp @@ -30,6 +30,7 @@ #include "constants.h" #include #include +#include GraphicsEllipseItem::GraphicsEllipseItem() { //setFlag(ItemIsMovable); @@ -79,6 +80,22 @@ void GraphicsEllipseItem::handleSceneChange(const QList & /*region*/) { emit ScenePosChanged(myScenePos); emit ScenePosXChanged(myScenePos.x()); emit ScenePosYChanged(myScenePos.y()); + + SimulScene* myScene = dynamic_cast(scene()); + if (myScene != 0) { + QString ScenePosPxStringX(QLocale().toString(myScenePos.x(),'g',3)); + ScenePosPxStringX.append(" px"); + QString ScenePosPxStringY(QLocale().toString(myScenePos.y(),'g',3)); + ScenePosPxStringY.append(" px"); + QString ScenePosMStringX(QLocale().toString(myScenePos.x()*myScene->getMeterPerPx(),'g',3)); + ScenePosMStringX.append(" m"); + QString ScenePosMStringY(QLocale().toString(myScenePos.y()*myScene->getMeterPerPx(),'g',3)); + ScenePosMStringY.append(" m"); + emit ScenePosXChangedPixel(ScenePosPxStringX); + emit ScenePosYChangedPixel(ScenePosPxStringY); + emit ScenePosXChangedMeter(ScenePosMStringX); + emit ScenePosYChangedMeter(ScenePosMStringY); + } } } @@ -122,17 +139,16 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) { double powerX = myScene->getPowerAt(currProbePath->at(i-1), charge, speedListX->at(i-1),speedListY->at(i-1), 'x'); double powerY = myScene->getPowerAt(currProbePath->at(i-1), charge, speedListX->at(i-1),speedListY->at(i-1), 'y'); - - //automatische Zeitschrittanpassung 0.008 - if (isAdaptiveStepControlEnabled()&&combinedSpeed != 0) timePerStep = getAdaptiveStepLength()/(combinedSpeed/meterPerPx); - //if (timePerStep < (1/10.0 * myScene->getTimePerStep())) timePerStep = 1/10.0 * myScene->getTimePerStep(); - //if (timePerStep > (19.0/10.0 * myScene->getTimePerStep())) timePerStep = 19.0/10.0 * myScene->getTimePerStep(); double combinedPower = sqrt(powerX*powerX+powerY*powerY); - if (isAdaptiveStepControlEnabled() && combinedPower !=0) { - timePerStep = fabs((-combinedSpeed + sqrt(combinedSpeed*combinedSpeed + 2*(combinedPower/myMasse)*getAdaptiveStepLength()*meterPerPx)) / (combinedPower/myMasse)); + + //automatische Zeitschrittanpassung + //if (isAdaptiveStepControlEnabled()&&combinedSpeed != 0) timePerStep = getAdaptiveStepLength()/(combinedSpeed/meterPerPx); + //if (isAdaptiveStepControlEnabled() && combinedPower !=0) { + // timePerStep = fabs((-combinedSpeed + sqrt(combinedSpeed*combinedSpeed + 2*(combinedPower/myMasse)*getAdaptiveStepLength()*meterPerPx)) / (combinedPower/myMasse)); + //} + if (isAdaptiveStepControlEnabled() && (combinedPower !=0||combinedSpeed != 0)) { + timePerStep = getAdaptiveStepLength()*meterPerPx/sqrt(2*(combinedPower/myMasse)*getAdaptiveStepLength()*meterPerPx+combinedSpeed*combinedSpeed); } - - //qDebug()<= 4) { - - - // double dvx = (-9*speedListX->at(i-4)+37*speedListX->at(i-3)-59*speedListX->at(i-2)+55*speedListX->at(i-1))/24.0; - // double dvy = (-9*speedListY->at(i-4)+37*speedListY->at(i-3)-59*speedListY->at(i-2)+55*speedListY->at(i-1))/24.0; - //double dvx = (xp) / timePerStep ; - //double dvy = (yp) / timePerStep ; - - // deltaDistX = timePerStep/24.0 *(speedListX->at(i-3)- 5*speedListX->at(i-2)+19*speedListX->at(i-1)+9*dvx); - // deltaDistY = timePerStep/24.0 *(speedListY->at(i-3)- 5*speedListY->at(i-2)+19*speedListY->at(i-1)+9*dvy); - //qDebug()<< deltaDistX<< " "<< deltaDistY; - - //} - - - - - - - -// double k1x = deltaDistX; -// double k1y = deltaDistY; -// QPointF k2point = QPointF(currProbePath->at(i-1).x() * meterPerPx + k1x/2.0,currProbePath->at(i-1).y()* meterPerPx + k1y/2.0); -// double k2x = myScene->getPowerAt( k2point , charge, k1x/timePerStep,k1y/timePerStep, 'x') /myMasse * timePerStep/2.0 * timePerStep; -// double k2y = myScene->getPowerAt( k2point , charge, k1x/timePerStep,k1y/timePerStep, 'y') /myMasse * timePerStep/2.0 * timePerStep; -// QPointF k3point = QPointF(currProbePath->at(i-1).x()* meterPerPx + k2x/2.0,currProbePath->at(i-1).y()* meterPerPx + k2y/2.0); -// double k3x = myScene->getPowerAt( k3point , charge, k2x/timePerStep,k2y/timePerStep, 'x') /myMasse * timePerStep/2.0 * timePerStep; -// double k3y = myScene->getPowerAt( k3point , charge, k2x/timePerStep,k2y/timePerStep, 'y') /myMasse * timePerStep/2.0 * timePerStep; -// QPointF k4point = QPointF(currProbePath->at(i-1).x() + k3x,currProbePath->at(i-1).y() + k3y); -// double k4x = myScene->getPowerAt( k4point , charge, k3x/timePerStep,k3y/timePerStep, 'x') /myMasse * timePerStep * timePerStep; -// double k4y = myScene->getPowerAt( k4point , charge, k3x/timePerStep,k3y/timePerStep, 'y') /myMasse * timePerStep * timePerStep; -// -// deltaDistX = (k1x +2*k2x+2*k3x+k4x)/6.0; -// deltaDistY = (k1y +2*k2y+2*k3y+k4y)/6.0; - - QPointF newPoint(currProbePath->at(i-1).x() + deltaDistX/meterPerPx ,currProbePath->at(i-1).y() + deltaDistY/meterPerPx); //Scrollbar int Probleme vermeiden @@ -205,7 +183,7 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) { if (i%path_entry_step == 0 || i==currProbePath->count()) flightPath.lineTo(currProbePath->at(i)); } - qDebug()<< "Probe Path: " <<*currProbePath; + //qDebug()<< "Probe Path: " <<*currProbePath; //qDebug()<< "speed x: "<<*speedListX; //qDebug()<< "speed y: "<<*speedListY; //qDebug()<at(12); @@ -335,3 +313,13 @@ void GraphicsEllipseItem::setAdaptiveStepLength ( double theValue ) { adaptiveStepLength = theValue; emit adaptiveStepLengthChanged(theValue); } + + +QList< double >* GraphicsEllipseItem::getSpeedListX() const { + return speedListX; +} + + +QList< double >* GraphicsEllipseItem::getSpeedListY() const { + return speedListY; +} diff --git a/src/graphicsellipseitem.h b/src/graphicsellipseitem.h index 11670f4..8f389f7 100644 --- a/src/graphicsellipseitem.h +++ b/src/graphicsellipseitem.h @@ -54,6 +54,8 @@ class GraphicsEllipseItem : public QObject , public QGraphicsEllipseItem { double getRealSimulTime() const; bool isAdaptiveStepControlEnabled() const; double getAdaptiveStepLength() const; + QList< double >* getSpeedListX() const; + QList< double >* getSpeedListY() const; protected: @@ -111,7 +113,7 @@ class GraphicsEllipseItem : public QObject , public QGraphicsEllipseItem { void resetProbe(); void setAdaptiveStepControl ( bool theValue ); void setAdaptiveStepLength ( double theValue ); - + signals: void startSpeedXChanged(double speed); @@ -123,6 +125,11 @@ class GraphicsEllipseItem : public QObject , public QGraphicsEllipseItem { void ScenePosYChanged(double newY); void adaptiveStepControlChanged(bool truefalse); void adaptiveStepLengthChanged(double length); + + void ScenePosXChangedPixel(QString newX); + void ScenePosYChangedPixel(QString newY); + void ScenePosXChangedMeter(QString newX); + void ScenePosYChangedMeter(QString newY); diff --git a/src/lsim.cpp b/src/lsim.cpp index dd9f8fc..547e89a 100644 --- a/src/lsim.cpp +++ b/src/lsim.cpp @@ -301,6 +301,7 @@ void lsim::initWindowMode(WindowMode newMode) { removeDockWidget(probeItemDock); removeDockWidget(sceneDock); removeDockWidget(simulOptDock); + removeDockWidget(simulDataDock); gview->setDragMode(QGraphicsView::NoDrag); gview->setInteractive(true); @@ -310,9 +311,9 @@ void lsim::initWindowMode(WindowMode newMode) { addToolBar(sceneModeBar); addToolBar(upDownBar); - addDockWidget(Qt::LeftDockWidgetArea,fieldItemEditDock); addDockWidget(Qt::LeftDockWidgetArea,probeItemDock); addDockWidget(Qt::LeftDockWidgetArea,sceneDock); + addDockWidget(Qt::LeftDockWidgetArea,fieldItemEditDock); tabifyDockWidget(probeItemDock,sceneDock); tabifyDockWidget(sceneDock,fieldItemEditDock); sceneDock->show(); @@ -332,7 +333,10 @@ void lsim::initWindowMode(WindowMode newMode) { gview->setInteractive (false); addDockWidget(Qt::LeftDockWidgetArea,simulOptDock); + addDockWidget(Qt::LeftDockWidgetArea,simulDataDock); simulOptDock->setVisible(true); + simulDataDock->setVisible(true); + tabifyDockWidget(simulDataDock,simulOptDock); acts.itemEditModeAct->trigger(); simulscene->clearSelection(); @@ -501,6 +505,78 @@ void lsim::createDocks() { //************************************************************************ + //************************************************************************** + //simuldatadock + + //labels position + QLabel *xPxPosLabel = new QLabel("0,00 px"); + xPxPosLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + connect(simulscene->getProbeChargeItem(), SIGNAL(ScenePosXChangedPixel(QString)),xPxPosLabel, SLOT(setText(QString))); + + QLabel *yPxPosLabel = new QLabel("0,00 px"); + yPxPosLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + connect(simulscene->getProbeChargeItem(), SIGNAL(ScenePosYChangedPixel(QString)),yPxPosLabel, SLOT(setText(QString))); + + QLabel *xMPosLabel = new QLabel("0,00 m"); + xMPosLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + connect(simulscene->getProbeChargeItem(), SIGNAL(ScenePosXChangedMeter(QString)),xMPosLabel, SLOT(setText(QString))); + + QLabel *yMPosLabel = new QLabel("0,00 m"); + yMPosLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + connect(simulscene->getProbeChargeItem(), SIGNAL(ScenePosYChangedMeter(QString)),yMPosLabel, SLOT(setText(QString))); + //grid layout + QGridLayout *ProbePosGridLayout = new QGridLayout; + ProbePosGridLayout->addWidget(new QLabel("x:"),0,0,Qt::AlignCenter); + ProbePosGridLayout->addWidget(xPxPosLabel,0,1,Qt::AlignCenter); + ProbePosGridLayout->addWidget(xMPosLabel,0,2,Qt::AlignCenter); + ProbePosGridLayout->addWidget(new QLabel("y:"),1,0,Qt::AlignCenter); + ProbePosGridLayout->addWidget(yPxPosLabel,1,1,Qt::AlignCenter); + ProbePosGridLayout->addWidget(yMPosLabel,1,2,Qt::AlignCenter); + + QGroupBox *ProbePosGroupBox = new QGroupBox(tr("Position")); + ProbePosGroupBox->setLayout(ProbePosGridLayout); + + //labels speed + QLabel *xSpeedLabel = new QLabel("0,00 m/s"); + xSpeedLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + connect(simulscene, SIGNAL(probeSpeedXChanged(QString)),xSpeedLabel, SLOT(setText(QString))); + + QLabel *ySpeedLabel = new QLabel("0,00 m/s"); + ySpeedLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + connect(simulscene, SIGNAL(probespeedYChanged(QString)),ySpeedLabel, SLOT(setText(QString))); + + QLabel *gesSpeedLabel = new QLabel("0,00 m/s"); + gesSpeedLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + connect(simulscene, SIGNAL(probeSpeedChanged(QString)),gesSpeedLabel, SLOT(setText(QString))); + //grid layout + QGridLayout *ProbeSpeedGridLayout = new QGridLayout; + ProbeSpeedGridLayout->addWidget(new QLabel("x:"),0,0,Qt::AlignCenter); + ProbeSpeedGridLayout->addWidget(xSpeedLabel,0,1,Qt::AlignCenter); + ProbeSpeedGridLayout->addWidget(new QLabel("y:"),1,0,Qt::AlignCenter); + ProbeSpeedGridLayout->addWidget(ySpeedLabel,1,1,Qt::AlignCenter); + ProbeSpeedGridLayout->addWidget(new QLabel(tr("Betrag gesamt:")),2,0,Qt::AlignCenter); + ProbeSpeedGridLayout->addWidget(gesSpeedLabel,2,1,Qt::AlignCenter); + + QGroupBox *ProbeSpeedGroupBox = new QGroupBox(tr("Geschwindigkeit")); + ProbeSpeedGroupBox->setLayout(ProbeSpeedGridLayout); + + + + QVBoxLayout *simulDataVBoxLayout = new QVBoxLayout(); + simulDataVBoxLayout->addWidget(ProbePosGroupBox); + simulDataVBoxLayout->addWidget(ProbeSpeedGroupBox); + simulDataVBoxLayout->addStretch(); + + QWidget *simulDataWidget = new QWidget; + simulDataWidget->setLayout(simulDataVBoxLayout); + + simulDataDock = new QDockWidget(tr("Daten"), this); + simulDataDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); + simulDataDock->setWidget(simulDataWidget); + + //************************************************************************ + + fieldItemEditDock = new QDockWidget(tr("Feldeinstellungen"), this); fieldItemEditDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); diff --git a/src/lsim.h b/src/lsim.h index d9966b1..8c3e981 100644 --- a/src/lsim.h +++ b/src/lsim.h @@ -135,6 +135,8 @@ class lsim: public QMainWindow { QDockWidget *probeItemDock; QDockWidget *sceneDock; QDockWidget *simulOptDock; + QDockWidget *simulDataDock; + SimulScene *simulscene; diff --git a/src/simulscene.cpp b/src/simulscene.cpp index 57702c0..d41bfd1 100644 --- a/src/simulscene.cpp +++ b/src/simulscene.cpp @@ -38,6 +38,8 @@ #include #include #include +#include +#include SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { @@ -98,6 +100,8 @@ SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) { ani->setTimeLine(timer); connect( timer, SIGNAL(finished()), this, SIGNAL(timeLineInRunningState()) ); + connect( timer, SIGNAL(valueChanged(qreal)), this, SLOT(handleTimeLineValueChange(qreal)) ); + setupVars(); @@ -107,6 +111,27 @@ void SimulScene::drawBackground ( QPainter * painter, const QRectF & rect ) { QGraphicsScene::drawBackground(painter,rect); } +void SimulScene::handleTimeLineValueChange(qreal value ) { + int step = 0; + QList > poslist = ani->posList(); + for(int i = 1;i poslist[i-1].first && value < poslist[i].first) { + step = floor((i-1) * ellipse1->getSpeedListY()->count()/poslist.count()); + break; + } + } + //qDebug()<"<getSpeedListY()->at(step); + double gesSpeed = sqrt(pow(ellipse1->getSpeedListX()->at(step),2) +pow(ellipse1->getSpeedListY()->at(step),2)); + QString newSpeedStringX(QLocale().toString(ellipse1->getSpeedListX()->at(step) ,'g',3)); + newSpeedStringX.append(" m/s"); + QString newSpeedStringY(QLocale().toString(ellipse1->getSpeedListY()->at(step),'g',3)); + newSpeedStringY.append(" m/s"); + QString newSpeedGes(QLocale().toString(gesSpeed,'g',3)); + newSpeedGes.append(" m/s"); + emit probeSpeedXChanged(newSpeedStringX); + emit probespeedYChanged(newSpeedStringY); + emit probeSpeedChanged(newSpeedGes); +} void SimulScene::setupVars() { //variablen initialisieren @@ -813,10 +838,13 @@ void SimulScene::startCalculation() { int currSteps = ellipse1->getCurrProbePath()->count(); int entry_step = ceil(currSteps/2500.0); //jeder entry_step(te) step wird eingetragen double totalTime = ellipse1->getElapsedTimeList()->at(currSteps-1); + aniStepList.clear(); for (int i=0; isetPosAt(ellipse1->getElapsedTimeList()->at(i)/totalTime, ellipse1->getCurrProbePath()->at(i) ); + //Zeianteil + double newStep = ellipse1->getElapsedTimeList()->at(i)/totalTime; + ani->setPosAt(newStep, ellipse1->getCurrProbePath()->at(i) ); + //aniStepList.insert(ani->, i); } } @@ -827,8 +855,6 @@ void SimulScene::startCalculation() { //brauchbare Animationsdauer bestimmen setTimeLineDuration(ellipse1->getFlightPath().length()/getPxPerSec() * 1000.0); - - } diff --git a/src/simulscene.h b/src/simulscene.h index 6050988..feea4f7 100644 --- a/src/simulscene.h +++ b/src/simulscene.h @@ -22,6 +22,7 @@ #include #include +#include class QTimeLine; class HomoEFieldItem; @@ -109,6 +110,7 @@ class SimulScene : public QGraphicsScene { void moveFieldItemOnBottom(QGraphicsItem* fieldItem); void moveSelectedFieldItemOnBottom(); void resetScene(); + void handleTimeLineValueChange(qreal value); private slots: void displayResizeRects(bool move = false); @@ -125,6 +127,10 @@ class SimulScene : public QGraphicsScene { void timeLineDurationChanged(int duration); void timeLineInRunningState(bool yesno = false); void realSimulTimeChanged(QString theString); + + void probeSpeedXChanged(QString text); + void probespeedYChanged(QString text); + void probeSpeedChanged(QString text); private: QTimeLine *timer; @@ -159,6 +165,7 @@ class SimulScene : public QGraphicsScene { QGraphicsPathItem *pathItem1; QListWidget* fieldListWidget; + QMap aniStepList; //rechtecke zur groesenaenderung struct resizeRects {