All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
AnimationScene.cpp
Go to the documentation of this file.
1 // TerraLib
2 #include "AnimationScene.h"
3 #include "TrajectoryItem.h"
4 #include "Animation.h"
5 #include "AnimationItem.h"
6 #include "../canvas/MapDisplay.h"
7 
8 // Qt
9 #include <QThread>
10 #include <QGraphicsView>
11 
13  : QGraphicsScene(parent),
14  m_display(display),
15  m_trajectoryPixmap(0),
16  m_numberOfTrajectories(0),
17  m_numberOfPixmaps(0)
18 {
20 }
21 
23 {
24  delete m_trajectoryPixmap;
25 }
26 
28 {
29  delete m_trajectoryPixmap;
30  m_trajectoryPixmap = new QPixmap(m_display->width(), m_display->height());
31  m_trajectoryPixmap->fill(Qt::transparent);
32 
33  setSceneRect(0, 0, m_display->width(), m_display->height());
34  if(views().isEmpty() == false)
35  {
36  QGraphicsView* view = *(views().begin());
37  view->resize(m_display->width()*2, m_display->height()*2);
38  }
39 }
40 
42 {
43  QGraphicsScene::addItem(item);
44  if(item->pixmap().isNull())
45  m_numberOfPixmaps++;
46  else
47  m_numberOfTrajectories++;
48 }
49 
51 {
52  QGraphicsScene::removeItem(item);
53  if(item->pixmap().isNull())
54  m_numberOfPixmaps--;
55  else
56  m_numberOfTrajectories--;
57 }
58 
60 {
61  QGraphicsScene::clear();
62  m_numberOfPixmaps = 0;
63  m_numberOfTrajectories = 0;
64 }
65 
67 {
68  QList<QGraphicsItem*> list = items();
69  QList<QGraphicsItem*>::iterator it;
70  for(it = list.begin(); it != list.end(); ++it)
71  {
72  AnimationItem* ai = (AnimationItem*)(*it);
73  ai->setMatrix();
74  }
75 }
76 
78 {
79  QList<QGraphicsItem*> list = items();
80  QList<QGraphicsItem*>::iterator it;
81  for(it = list.begin(); it != list.end(); ++it)
82  {
83  AnimationItem* ai = (AnimationItem*)(*it);
84  ai->setDuration(duration);
85  }
86 }
87 
89 {
90  QList<QGraphicsItem*> list = items();
91  QList<QGraphicsItem*>::iterator it;
92  for(it = list.begin(); it != list.end(); ++it)
93  {
94  AnimationItem* ai = (AnimationItem*)(*it);
95  if(ai->m_title == title)
96  ai->m_automaticPan = !ai->m_automaticPan; // TOGGLE
97  else
98  ai->m_automaticPan = false;
99  }
100 }
101 
103 {
104  QList<QGraphicsItem*> list = items();
105  QList<QGraphicsItem*>::iterator it;
106  for(it = list.begin(); it != list.end(); ++it)
107  {
108  AnimationItem* ai = (AnimationItem*)(*it);
109  ai->m_curTimeDuration = curTime;
110  ai->draw();
111  }
112 }
void setDuration(const int &duration)
It sets the trajectory duration.
void addItem(AnimationItem *item)
Add item.
virtual ~AnimationScene()
Destructor It destructs a Trajectory Scene.
void removeItem(AnimationItem *item)
Remove item.
bool m_automaticPan
True if automatic pan over this item.
A widget to control the display of a set of layers.
Definition: MapDisplay.h:65
void setMatrix()
It sets the internal matrix.
void createNewPixmap()
Create a new clear pixmap.
void draw(const int &curTime)
It draws the animation item.
unsigned int m_curTimeDuration
Current time (ms). Its value is between 0 and the total duration.
QString m_title
The icon item title.
void setAutomaticPan(const QString &title)
It configures automatic pan over a trajectory.
This class is a dialog for the Pixmap Item.
Definition: AnimationItem.h:57
void setMatrix()
It sets the transformation matrix.
void setDuration(const unsigned int &duration)
Sets the Animation Item duration.
AnimationScene(te::qt::widgets::MapDisplay *display, QObject *parent=0)
Constructor It constructs a Trajectory Scene.
virtual void draw()=0
If draw item.