5 #include "../canvas/MapDisplay.h" 
    6 #include "../canvas/Canvas.h" 
    9 #include <QtCore/QPropertyAnimation> 
   10 #include <QtGui/QPainter> 
   11 #include <QtCore/QVector> 
   12 #include <QtCore/QFile> 
   17     m_forwardColor(Qt::blue),
 
   18     m_backwardColor(Qt::magenta),
 
   23     setPixmap(QPixmap(file));
 
   27     pix.fill(Qt::transparent);
 
   28     QPainter painter(&pix);
 
   33     painter.drawEllipse(QRect(1, 1, 18, 18));
 
   54   if(m_animationRoute.empty())
 
   61     if(r.contains(m_pos) == 
false)
 
   68       m_display->setExtent(e);
 
   73   unsigned int curTime = m_animation->currentTime();
 
   74   if(m_curTimeDuration == curTime)
 
   78   if(m_animation->direction() == QAbstractAnimation::Forward)
 
   80     if(curTime < m_curTimeDuration) 
 
   85     if(curTime > m_curTimeDuration) 
 
   93       m_curTimeDuration = curTime;
 
  100     drawForward(curTime);
 
  107   if(m_animationRoute.empty())
 
  114   QPainter painter(scenePixmap);
 
  115   QPen pen(Qt::NoBrush, 2);
 
  117   if(m_animation->direction() == QAbstractAnimation::Forward)
 
  118     trailColor = m_forwardColor;
 
  120     trailColor = m_backwardColor;
 
  122   pen.setColor(trailColor);
 
  124   painter.setBrush(Qt::NoBrush);
 
  126   int indold = m_animation->getAnimationDataIndex((
double)m_curTimeDuration / (
double)m_duration);
 
  127   int ind = m_animation->getAnimationDataIndex((
double)curTime / (
double)m_duration);
 
  128   m_curTimeDuration = curTime;
 
  130   QVector<QPointF> vec;
 
  134     vec.push_back(m_posOld);
 
  135     vec.push_back(m_pos);
 
  137     QPolygon pol = m_matrix.map(polf).toPolygon();
 
  138     painter.drawPolyline(pol);
 
  140   else if(m_animation->direction() == QAbstractAnimation::Forward)
 
  143       vec.push_back(m_animationRoute[indold++]);
 
  144     if(vec.isEmpty() == 
false && vec.last() != m_pos)
 
  145       vec.push_back(m_pos);
 
  147     QPolygon pol = m_matrix.map(polf).toPolygon();
 
  148     painter.drawPolyline(pol);
 
  153       vec.push_back(m_animationRoute[indold--]);
 
  154     if(vec.isEmpty() == 
false && vec.last() != m_pos)
 
  155       vec.push_back(m_pos);
 
  157     QPolygon pol = m_matrix.map(polf).toPolygon();
 
  158     painter.drawPolyline(pol);
 
  166   if(m_animationRoute.empty())
 
  173   QPainter painter(scenePixmap);
 
  174   painter.setCompositionMode(QPainter::CompositionMode_DestinationOut);
 
  175   QPen pen(Qt::NoBrush, 2);
 
  176   QColor trailColor(Qt::white);
 
  177   pen.setColor(trailColor);
 
  179   painter.setBrush(Qt::NoBrush);
 
  181   int indold = m_animation->getAnimationDataIndex((
double)m_curTimeDuration / (
double)m_duration);
 
  182   int ind = m_animation->getAnimationDataIndex((
double)curTime / (
double)m_duration);
 
  183   m_curTimeDuration = curTime;
 
  185   QVector<QPointF> vec;
 
  188     vec.push_back(m_posOld);
 
  189     vec.push_back(m_pos);
 
  191     QPolygon pol = m_matrix.map(polf).toPolygon();
 
  192     painter.drawPolyline(pol);
 
  194   else if(m_animation->direction() == QAbstractAnimation::Backward)
 
  196     vec.push_back(m_posOld);
 
  198       vec.push_back(m_animationRoute[indold++]);
 
  199     vec.push_back(m_pos);
 
  201     QPolygon pol = m_matrix.map(polf).toPolygon();
 
  202     painter.drawPolyline(pol);
 
  206     vec.push_back(m_posOld);
 
  208       vec.push_back(m_animationRoute[indold--]);
 
  209     vec.push_back(m_pos);
 
  211     QPolygon pol = m_matrix.map(polf).toPolygon();
 
  212     painter.drawPolyline(pol);
 
  219   if(m_animationRoute.empty())
 
  226   QPainter painter(scenePixmap);
 
  227   QPen pen(Qt::NoBrush, 2);
 
  229   if(m_animation->direction() == QAbstractAnimation::Forward)
 
  230     trailColor = m_forwardColor;
 
  232     trailColor = m_backwardColor;
 
  234   pen.setColor(trailColor);
 
  236   painter.setBrush(Qt::NoBrush);
 
  238   int count = m_animationRoute.size();
 
  239   int ind = m_animation->getAnimationDataIndex((
double)m_curTimeDuration / (
double)m_duration);
 
  241   QVector<QPointF> vec;
 
  242   if(m_animation->direction() == QAbstractAnimation::Forward)
 
  248         vec.push_back(m_animationRoute[i++]);
 
  249       if(vec.isEmpty() == 
false && vec.last() != m_pos)
 
  250         vec.push_back(m_pos);
 
  252       QPolygon pol = m_matrix.map(polf).toPolygon();
 
  253       painter.drawPolyline(pol);
 
  260       vec.push_back(m_animationRoute[i--]);
 
  261     if(m_curTimeDuration != m_duration)
 
  263       if(vec.isEmpty() == 
false && vec.last() != m_pos)
 
  264         vec.push_back(m_pos);
 
  267     QPolygon pol = m_matrix.map(polf).toPolygon();
 
  268     painter.drawPolyline(pol);
 
const double & getUpperRightX() const 
It returns a constant refernce to the x coordinate of the upper right corner. 
 
double m_urx
Upper right corner x-coordinate. 
 
const double & getLowerLeftY() const 
It returns a constant refernce to the y coordinate of the lower left corner. 
 
const double & getUpperRightY() const 
It returns a constant refernce to the x coordinate of the upper right corner. 
 
double m_llx
Lower left corner x-coordinate. 
 
An Envelope defines a 2D rectangular region. 
 
double m_lly
Lower left corner y-coordinate. 
 
double m_ury
Upper right corner y-coordinate. 
 
const double & getLowerLeftX() const 
It returns a constant reference to the x coordinate of the lower left corner.