home *** CD-ROM | disk | FTP | other *** search
- package Box2D.Dynamics
- {
- import Box2D.Collision.*;
- import Box2D.Collision.Shapes.*;
- import Box2D.Common.*;
- import Box2D.Common.Math.*;
- import Box2D.Dynamics.Contacts.*;
- import flash.display.Sprite;
-
- public class b2DebugDraw
- {
-
- public static var e_coreShapeBit:uint = 4;
-
- public static var e_shapeBit:uint = 1;
-
- public static var e_centerOfMassBit:uint = 64;
-
- public static var e_aabbBit:uint = 8;
-
- public static var e_obbBit:uint = 16;
-
- public static var e_pairBit:uint = 32;
-
- public static var e_jointBit:uint = 2;
-
-
- public var m_xformScale:Number = 1;
-
- public var m_fillAlpha:Number = 1;
-
- public var m_alpha:Number = 1;
-
- public var m_drawFlags:uint;
-
- public var m_lineThickness:Number = 1;
-
- public var m_drawScale:Number = 1;
-
- public var m_sprite:Sprite;
-
- public function b2DebugDraw()
- {
- super();
- m_drawFlags = 0;
- }
-
- public function ClearFlags(flags:uint) : void
- {
- m_drawFlags &= ~flags;
- }
-
- public function SetFlags(flags:uint) : void
- {
- m_drawFlags = flags;
- }
-
- public function AppendFlags(flags:uint) : void
- {
- m_drawFlags |= flags;
- }
-
- public function DrawSegment(p1:b2Vec2, p2:b2Vec2, color:b2Color) : void
- {
- m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
- m_sprite.graphics.moveTo(p1.x * m_drawScale,p1.y * m_drawScale);
- m_sprite.graphics.lineTo(p2.x * m_drawScale,p2.y * m_drawScale);
- }
-
- public function DrawSolidPolygon(vertices:Array, vertexCount:int, color:b2Color) : void
- {
- m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
- m_sprite.graphics.moveTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
- m_sprite.graphics.beginFill(color.color,m_fillAlpha);
- for(var i:int = 1; i < vertexCount; i++)
- {
- m_sprite.graphics.lineTo(vertices[i].x * m_drawScale,vertices[i].y * m_drawScale);
- }
- m_sprite.graphics.lineTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
- m_sprite.graphics.endFill();
- }
-
- public function DrawCircle(center:b2Vec2, radius:Number, color:b2Color) : void
- {
- m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
- m_sprite.graphics.drawCircle(center.x * m_drawScale,center.y * m_drawScale,radius * m_drawScale);
- }
-
- public function DrawPolygon(vertices:Array, vertexCount:int, color:b2Color) : void
- {
- m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
- m_sprite.graphics.moveTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
- for(var i:int = 1; i < vertexCount; i++)
- {
- m_sprite.graphics.lineTo(vertices[i].x * m_drawScale,vertices[i].y * m_drawScale);
- }
- m_sprite.graphics.lineTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
- }
-
- public function DrawSolidCircle(center:b2Vec2, radius:Number, axis:b2Vec2, color:b2Color) : void
- {
- m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
- m_sprite.graphics.moveTo(0,0);
- m_sprite.graphics.beginFill(color.color,m_fillAlpha);
- m_sprite.graphics.drawCircle(center.x * m_drawScale,center.y * m_drawScale,radius * m_drawScale);
- m_sprite.graphics.endFill();
- m_sprite.graphics.moveTo(center.x * m_drawScale,center.y * m_drawScale);
- m_sprite.graphics.lineTo((center.x + axis.x * radius) * m_drawScale,(center.y + axis.y * radius) * m_drawScale);
- }
-
- public function GetFlags() : uint
- {
- return m_drawFlags;
- }
-
- public function DrawXForm(xf:b2XForm) : void
- {
- m_sprite.graphics.lineStyle(m_lineThickness,16711680,m_alpha);
- m_sprite.graphics.moveTo(xf.position.x * m_drawScale,xf.position.y * m_drawScale);
- m_sprite.graphics.lineTo((xf.position.x + m_xformScale * xf.R.col1.x) * m_drawScale,(xf.position.y + m_xformScale * xf.R.col1.y) * m_drawScale);
- m_sprite.graphics.lineStyle(m_lineThickness,65280,m_alpha);
- m_sprite.graphics.moveTo(xf.position.x * m_drawScale,xf.position.y * m_drawScale);
- m_sprite.graphics.lineTo((xf.position.x + m_xformScale * xf.R.col2.x) * m_drawScale,(xf.position.y + m_xformScale * xf.R.col2.y) * m_drawScale);
- }
- }
- }
-