addd desktop file for packaging
[blok] / physicsscene.h
1 #ifndef PHYSICSSCENE_H
2 #define PHYSICSSCENE_H
3
4 #include <QWidget>
5 #include <QGraphicsScene>
6 #include <QTimer>
7 #include <QTime>
8 #include <QList>
9
10 #include "Box2D/Source/Box2D.h"
11
12 #include "boxitem.h"
13
14 #include <QKeyEvent>
15 class PhysicsScene : public QGraphicsScene
16 {
17     Q_OBJECT
18 public:
19     explicit PhysicsScene(QObject *parent = 0);
20     ~PhysicsScene();
21     void createWorld();
22     void addPhysicsItem(BoxItem * item);
23     void removePhysicsItem(BoxItem * item);
24     void start();
25     void stop();
26     b2World * world(){return mWorld;}
27
28 signals:
29
30 public slots:
31     virtual void mainLoop();
32     void moveXYZ(QString x, QString y, QString z);
33
34 protected:
35     void keyPressEvent(QKeyEvent *event);
36     void computeSimulation(int32 iterations = 10);
37
38 private:
39     b2World *mWorld;
40     b2Vec2 mGravity;
41     QTimer* mTimer;
42     QTime mTime;
43     double mFps;
44     QList <BoxItem*> mBoxList;
45
46     BoxItem * ground;
47
48
49 };
50
51 #endif // PHYSICSSCENE_H