4 #include <QGraphicsPolygonItem>
7 #include "Box2D/Source/Box2D.h"
9 #define MAEMO_WIDTH 800
10 #define MAEMO_HEIGHT 480
12 class BoxItem : public QGraphicsPolygonItem
15 BoxItem(QRectF rect, bool isStatic = false);
16 BoxItem(QPolygonF poly, bool isStatic = false);
18 void setPolygonDef(b2PolygonDef p){m_polygonDef = p;}
19 void setBodyDef(b2BodyDef b){m_bodyDef = b;}
20 void initDensity(const float32 &d ){m_polygonDef.density = d;}
21 void initFriction(const float32 &f){m_polygonDef.friction = f;}
22 void initRestitution(const float32 &r){m_polygonDef.restitution = r;}
23 void initSensor(bool b){m_polygonDef.isSensor = b;}
24 void setMass(const float32 &m){m_bodyDef.massData.mass = m;}
25 void initLinearDamping(const float32 &l){m_bodyDef.linearDamping = l;}
26 void initAngularDamping(const float32 &a){m_bodyDef.angularDamping = a;}
27 void initCategoryBits(const uint16 &c){m_polygonDef.filter.categoryBits = c;}
28 void initMaskBits(const uint16 &c){m_polygonDef.filter.maskBits = c;}
29 void initStatic(bool isStatic=true){mIsStatic=isStatic;}
32 b2PolygonDef *polygonDef(){return &m_polygonDef;}
33 b2BodyDef * bodyDef(){return &m_bodyDef;}
34 inline const float32 &density(){return m_polygonDef.density;}
35 inline const float32 &friction(){return m_polygonDef.friction;}
36 inline const float32 &restition(){return m_polygonDef.restitution;}
37 inline const float32 &mass(){return m_bodyDef.massData.mass; }
38 inline bool isSensor(){return m_polygonDef.isSensor;}
39 inline const float32 &linearDamping(){return m_bodyDef.linearDamping;}
40 inline const float32 &angularDamping(){return m_bodyDef.angularDamping;}
41 inline const uint16 &categoryBits(){return m_polygonDef.filter.categoryBits;}
42 inline const uint16 &maskBits(){return m_polygonDef.filter.maskBits;}
48 void setup(b2World *world);
51 void removeFromWorld()
53 mNeedRemoveFromWorld = true;
56 bool needRemoveFromWorld()
58 return mNeedRemoveFromWorld;
63 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
66 b2PolygonDef m_polygonDef;
70 bool mNeedRemoveFromWorld;