home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / Beez.swf / scripts / Box2D / Dynamics / b2DebugDraw.as < prev    next >
Encoding:
Text File  |  2008-09-03  |  4.6 KB  |  127 lines

  1. package Box2D.Dynamics
  2. {
  3.    import Box2D.Collision.*;
  4.    import Box2D.Collision.Shapes.*;
  5.    import Box2D.Common.*;
  6.    import Box2D.Common.Math.*;
  7.    import Box2D.Dynamics.Contacts.*;
  8.    import flash.display.Sprite;
  9.    
  10.    public class b2DebugDraw
  11.    {
  12.       
  13.       public static var e_coreShapeBit:uint = 4;
  14.       
  15.       public static var e_shapeBit:uint = 1;
  16.       
  17.       public static var e_centerOfMassBit:uint = 64;
  18.       
  19.       public static var e_aabbBit:uint = 8;
  20.       
  21.       public static var e_obbBit:uint = 16;
  22.       
  23.       public static var e_pairBit:uint = 32;
  24.       
  25.       public static var e_jointBit:uint = 2;
  26.        
  27.       
  28.       public var m_xformScale:Number = 1;
  29.       
  30.       public var m_fillAlpha:Number = 1;
  31.       
  32.       public var m_alpha:Number = 1;
  33.       
  34.       public var m_drawFlags:uint;
  35.       
  36.       public var m_lineThickness:Number = 1;
  37.       
  38.       public var m_drawScale:Number = 1;
  39.       
  40.       public var m_sprite:Sprite;
  41.       
  42.       public function b2DebugDraw()
  43.       {
  44.          super();
  45.          m_drawFlags = 0;
  46.       }
  47.       
  48.       public function ClearFlags(flags:uint) : void
  49.       {
  50.          m_drawFlags &= ~flags;
  51.       }
  52.       
  53.       public function SetFlags(flags:uint) : void
  54.       {
  55.          m_drawFlags = flags;
  56.       }
  57.       
  58.       public function AppendFlags(flags:uint) : void
  59.       {
  60.          m_drawFlags |= flags;
  61.       }
  62.       
  63.       public function DrawSegment(p1:b2Vec2, p2:b2Vec2, color:b2Color) : void
  64.       {
  65.          m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
  66.          m_sprite.graphics.moveTo(p1.x * m_drawScale,p1.y * m_drawScale);
  67.          m_sprite.graphics.lineTo(p2.x * m_drawScale,p2.y * m_drawScale);
  68.       }
  69.       
  70.       public function DrawSolidPolygon(vertices:Array, vertexCount:int, color:b2Color) : void
  71.       {
  72.          m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
  73.          m_sprite.graphics.moveTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
  74.          m_sprite.graphics.beginFill(color.color,m_fillAlpha);
  75.          for(var i:int = 1; i < vertexCount; i++)
  76.          {
  77.             m_sprite.graphics.lineTo(vertices[i].x * m_drawScale,vertices[i].y * m_drawScale);
  78.          }
  79.          m_sprite.graphics.lineTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
  80.          m_sprite.graphics.endFill();
  81.       }
  82.       
  83.       public function DrawCircle(center:b2Vec2, radius:Number, color:b2Color) : void
  84.       {
  85.          m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
  86.          m_sprite.graphics.drawCircle(center.x * m_drawScale,center.y * m_drawScale,radius * m_drawScale);
  87.       }
  88.       
  89.       public function DrawPolygon(vertices:Array, vertexCount:int, color:b2Color) : void
  90.       {
  91.          m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
  92.          m_sprite.graphics.moveTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
  93.          for(var i:int = 1; i < vertexCount; i++)
  94.          {
  95.             m_sprite.graphics.lineTo(vertices[i].x * m_drawScale,vertices[i].y * m_drawScale);
  96.          }
  97.          m_sprite.graphics.lineTo(vertices[0].x * m_drawScale,vertices[0].y * m_drawScale);
  98.       }
  99.       
  100.       public function DrawSolidCircle(center:b2Vec2, radius:Number, axis:b2Vec2, color:b2Color) : void
  101.       {
  102.          m_sprite.graphics.lineStyle(m_lineThickness,color.color,m_alpha);
  103.          m_sprite.graphics.moveTo(0,0);
  104.          m_sprite.graphics.beginFill(color.color,m_fillAlpha);
  105.          m_sprite.graphics.drawCircle(center.x * m_drawScale,center.y * m_drawScale,radius * m_drawScale);
  106.          m_sprite.graphics.endFill();
  107.          m_sprite.graphics.moveTo(center.x * m_drawScale,center.y * m_drawScale);
  108.          m_sprite.graphics.lineTo((center.x + axis.x * radius) * m_drawScale,(center.y + axis.y * radius) * m_drawScale);
  109.       }
  110.       
  111.       public function GetFlags() : uint
  112.       {
  113.          return m_drawFlags;
  114.       }
  115.       
  116.       public function DrawXForm(xf:b2XForm) : void
  117.       {
  118.          m_sprite.graphics.lineStyle(m_lineThickness,16711680,m_alpha);
  119.          m_sprite.graphics.moveTo(xf.position.x * m_drawScale,xf.position.y * m_drawScale);
  120.          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);
  121.          m_sprite.graphics.lineStyle(m_lineThickness,65280,m_alpha);
  122.          m_sprite.graphics.moveTo(xf.position.x * m_drawScale,xf.position.y * m_drawScale);
  123.          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);
  124.       }
  125.    }
  126. }
  127.