home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / Beez.swf / scripts / Box2D / Common / Math / b2Vec2.as < prev    next >
Encoding:
Text File  |  2008-09-03  |  3.0 KB  |  150 lines

  1. package Box2D.Common.Math
  2. {
  3.    public class b2Vec2
  4.    {
  5.        
  6.       
  7.       public var y:Number;
  8.       
  9.       public var x:Number;
  10.       
  11.       public function b2Vec2(x_:Number = 0, y_:Number = 0)
  12.       {
  13.          super();
  14.          x = x_;
  15.          y = y_;
  16.       }
  17.       
  18.       public static function Make(x_:Number, y_:Number) : b2Vec2
  19.       {
  20.          return new b2Vec2(x_,y_);
  21.       }
  22.       
  23.       public function Add(v:b2Vec2) : void
  24.       {
  25.          x += v.x;
  26.          y += v.y;
  27.       }
  28.       
  29.       public function Set(x_:Number = 0, y_:Number = 0) : void
  30.       {
  31.          x = x_;
  32.          y = y_;
  33.       }
  34.       
  35.       public function Multiply(a:Number) : void
  36.       {
  37.          x *= a;
  38.          y *= a;
  39.       }
  40.       
  41.       public function Length() : Number
  42.       {
  43.          return Math.sqrt(x * x + y * y);
  44.       }
  45.       
  46.       public function LengthSquared() : Number
  47.       {
  48.          return x * x + y * y;
  49.       }
  50.       
  51.       public function MulM(A:b2Mat22) : void
  52.       {
  53.          var tX:Number = x;
  54.          x = A.col1.x * tX + A.col2.x * y;
  55.          y = A.col1.y * tX + A.col2.y * y;
  56.       }
  57.       
  58.       public function SetZero() : void
  59.       {
  60.          x = 0;
  61.          y = 0;
  62.       }
  63.       
  64.       public function MinV(b:b2Vec2) : void
  65.       {
  66.          x = x < b.x ? x : b.x;
  67.          y = y < b.y ? y : b.y;
  68.       }
  69.       
  70.       public function Normalize() : Number
  71.       {
  72.          var length:Number = Math.sqrt(x * x + y * y);
  73.          if(length < Number.MIN_VALUE)
  74.          {
  75.             return 0;
  76.          }
  77.          var invLength:Number = 1 / length;
  78.          x *= invLength;
  79.          y *= invLength;
  80.          return length;
  81.       }
  82.       
  83.       public function CrossVF(s:Number) : void
  84.       {
  85.          var tX:Number = x;
  86.          x = s * y;
  87.          y = -s * tX;
  88.       }
  89.       
  90.       public function MaxV(b:b2Vec2) : void
  91.       {
  92.          x = x > b.x ? x : b.x;
  93.          y = y > b.y ? y : b.y;
  94.       }
  95.       
  96.       public function SetV(v:b2Vec2) : void
  97.       {
  98.          x = v.x;
  99.          y = v.y;
  100.       }
  101.       
  102.       public function Negative() : b2Vec2
  103.       {
  104.          return new b2Vec2(-x,-y);
  105.       }
  106.       
  107.       public function CrossFV(s:Number) : void
  108.       {
  109.          var tX:Number = x;
  110.          x = -s * y;
  111.          y = s * tX;
  112.       }
  113.       
  114.       public function Abs() : void
  115.       {
  116.          if(x < 0)
  117.          {
  118.             x = -x;
  119.          }
  120.          if(y < 0)
  121.          {
  122.             y = -y;
  123.          }
  124.       }
  125.       
  126.       public function Subtract(v:b2Vec2) : void
  127.       {
  128.          x -= v.x;
  129.          y -= v.y;
  130.       }
  131.       
  132.       public function Copy() : b2Vec2
  133.       {
  134.          return new b2Vec2(x,y);
  135.       }
  136.       
  137.       public function MulTM(A:b2Mat22) : void
  138.       {
  139.          var tX:Number = b2Math.b2Dot(this,A.col1);
  140.          y = b2Math.b2Dot(this,A.col2);
  141.          x = tX;
  142.       }
  143.       
  144.       public function IsValid() : Boolean
  145.       {
  146.          return b2Math.b2IsValid(x) && b2Math.b2IsValid(y);
  147.       }
  148.    }
  149. }
  150.