Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef B2_DRAW_H
00020 #define B2_DRAW_H
00021
00022 #include <Box2D/Common/b2Math.h>
00023
00025 struct b2Color
00026 {
00027 b2Color() {}
00028 b2Color(float32 r, float32 g, float32 b, float32 a = 1.0f) : r(r), g(g), b(b), a(a) {}
00029 void Set(float32 ri, float32 gi, float32 bi, float32 ai = 1.0f) { r = ri; g = gi; b = bi; a = ai; }
00030 float32 r, g, b, a;
00031 };
00032
00035 class b2Draw
00036 {
00037 public:
00038 b2Draw();
00039
00040 virtual ~b2Draw() {}
00041
00042 enum
00043 {
00044 e_shapeBit = 0x0001,
00045 e_jointBit = 0x0002,
00046 e_aabbBit = 0x0004,
00047 e_pairBit = 0x0008,
00048 e_centerOfMassBit = 0x0010
00049 };
00050
00052 void SetFlags(uint32 flags);
00053
00055 uint32 GetFlags() const;
00056
00058 void AppendFlags(uint32 flags);
00059
00061 void ClearFlags(uint32 flags);
00062
00064 virtual void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0;
00065
00067 virtual void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0;
00068
00070 virtual void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color) = 0;
00071
00073 virtual void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color) = 0;
00074
00076 virtual void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color) = 0;
00077
00080 virtual void DrawTransform(const b2Transform& xf) = 0;
00081
00082 protected:
00083 uint32 m_drawFlags;
00084 };
00085
00086 #endif