Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Mar 13th, 2012  |  syntax: ActionScript 3  |  size: 1.67 KB  |  views: 39  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // File "Shape2D.as"
  2.  
  3. package  
  4. {
  5.         import Box2D.Common.Math.b2Vec2;
  6.         import flash.display.Sprite;
  7.         import flash.display.Stage;
  8.  
  9.         /**
  10.          * Shape.as
  11.          * Created On:  12/03/2012 17:47
  12.          */
  13.        
  14.         public class Shape2D
  15.         {
  16.                 public var verts:Vector.<b2Vec2>;
  17.                 public var position:b2Vec2;
  18.                 public var angle:Number;
  19.                
  20.                 public function Shape2D(vertices:Vector.<b2Vec2>, position:b2Vec2, angle:Number)
  21.                 {
  22.                         // INITIALZING FIELDS:
  23.                         this.verts              = vertices;
  24.                         this.position   = position;
  25.                         this.angle              = angle;
  26.                 }
  27.                 public function getOBB():Vector.<b2Vec2>
  28.                 {
  29.                         // RETURNS THE ACTUAL VERTS RELATIVE TO THE SHAPES POSITION AND ROTATION:
  30.                         var obb:Vector.<b2Vec2> = new Vector.<b2Vec2>();
  31.                         var radians:Number = angle * (Math.PI / 180);
  32.                         for (var v:int = 0; v < verts.length; v++)
  33.                         {
  34.                                 // COPYING CURRENT VERT TO TEMPORARY VARIABLE:
  35.                                 var vert:b2Vec2 = verts[v].Copy();
  36.                                
  37.                                 // ROTATING VERTICES
  38.                                 var xPos:Number = vert.x * Math.cos(radians) - vert.y * Math.sin(radians) + position.x;
  39.                                 var yPos:Number = vert.x * Math.sin(radians) + vert.y * Math.cos(radians) + position.y;
  40.                                 obb.push(new b2Vec2(xPos, yPos));
  41.                         }
  42.                         return obb;
  43.                 }
  44.                 public function draw(canvas:Sprite, fill:Boolean = false):void
  45.                 {
  46.                         var obb:Vector.<b2Vec2> = getOBB();
  47.                         // DRAWING VERTICES:
  48.                         if (fill)
  49.                         {
  50.                                 canvas.graphics.beginFill(0xFF0000);
  51.                         }
  52.                         canvas.graphics.lineStyle(2, 0xFF0000);
  53.                         canvas.graphics.moveTo(obb[0].x, obb[0].y);
  54.                         for (var i:int = 1; i < obb.length; i++)
  55.                         {
  56.                                 canvas.graphics.lineTo(obb[i].x, obb[i].y);
  57.                         }
  58.                         canvas.graphics.lineTo(obb[0].x, obb[0].y);
  59.                         if (fill)
  60.                         {
  61.                                 canvas.graphics.endFill();
  62.                         }
  63.                 }
  64.         }
  65. }