home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / pup_idol.swf / scripts / Box2D / Common / Math / b2Mat22.as next >
Encoding:
Text File  |  2008-08-07  |  3.2 KB  |  124 lines

  1. package Box2D.Common.Math
  2. {
  3.    public class b2Mat22
  4.    {
  5.        
  6.       
  7.       public var col1:b2Vec2;
  8.       
  9.       public var col2:b2Vec2;
  10.       
  11.       public function b2Mat22(param1:Number = 0, param2:b2Vec2 = null, param3:b2Vec2 = null)
  12.       {
  13.          var _loc4_:Number = NaN;
  14.          var _loc5_:Number = NaN;
  15.          col1 = new b2Vec2();
  16.          col2 = new b2Vec2();
  17.          super();
  18.          if(param2 != null && param3 != null)
  19.          {
  20.             col1.SetV(param2);
  21.             col2.SetV(param3);
  22.          }
  23.          else
  24.          {
  25.             _loc4_ = Math.cos(param1);
  26.             _loc5_ = Math.sin(param1);
  27.             col1.x = _loc4_;
  28.             col2.x = -_loc5_;
  29.             col1.y = _loc5_;
  30.             col2.y = _loc4_;
  31.          }
  32.       }
  33.       
  34.       public function SetIdentity() : void
  35.       {
  36.          col1.x = 1;
  37.          col2.x = 0;
  38.          col1.y = 0;
  39.          col2.y = 1;
  40.       }
  41.       
  42.       public function SetVV(param1:b2Vec2, param2:b2Vec2) : void
  43.       {
  44.          col1.SetV(param1);
  45.          col2.SetV(param2);
  46.       }
  47.       
  48.       public function Set(param1:Number) : void
  49.       {
  50.          var _loc2_:Number = NaN;
  51.          _loc2_ = Math.cos(param1);
  52.          var _loc3_:Number = Math.sin(param1);
  53.          col1.x = _loc2_;
  54.          col2.x = -_loc3_;
  55.          col1.y = _loc3_;
  56.          col2.y = _loc2_;
  57.       }
  58.       
  59.       public function SetZero() : void
  60.       {
  61.          col1.x = 0;
  62.          col2.x = 0;
  63.          col1.y = 0;
  64.          col2.y = 0;
  65.       }
  66.       
  67.       public function SetM(param1:b2Mat22) : void
  68.       {
  69.          col1.SetV(param1.col1);
  70.          col2.SetV(param1.col2);
  71.       }
  72.       
  73.       public function AddM(param1:b2Mat22) : void
  74.       {
  75.          col1.x += param1.col1.x;
  76.          col1.y += param1.col1.y;
  77.          col2.x += param1.col2.x;
  78.          col2.y += param1.col2.y;
  79.       }
  80.       
  81.       public function Abs() : void
  82.       {
  83.          col1.Abs();
  84.          col2.Abs();
  85.       }
  86.       
  87.       public function Copy() : b2Mat22
  88.       {
  89.          return new b2Mat22(0,col1,col2);
  90.       }
  91.       
  92.       public function Invert(param1:b2Mat22) : b2Mat22
  93.       {
  94.          var _loc2_:Number = NaN;
  95.          var _loc4_:Number = NaN;
  96.          var _loc6_:Number = NaN;
  97.          _loc2_ = col1.x;
  98.          var _loc3_:Number = col2.x;
  99.          _loc4_ = col1.y;
  100.          var _loc5_:Number = col2.y;
  101.          _loc6_ = _loc2_ * _loc5_ - _loc3_ * _loc4_;
  102.          _loc6_ = 1 / _loc6_;
  103.          param1.col1.x = _loc6_ * _loc5_;
  104.          param1.col2.x = -_loc6_ * _loc3_;
  105.          param1.col1.y = -_loc6_ * _loc4_;
  106.          param1.col2.y = _loc6_ * _loc2_;
  107.          return param1;
  108.       }
  109.       
  110.       public function Solve(param1:b2Vec2, param2:Number, param3:Number) : b2Vec2
  111.       {
  112.          var _loc4_:Number = col1.x;
  113.          var _loc5_:Number = col2.x;
  114.          var _loc6_:Number = col1.y;
  115.          var _loc7_:Number = col2.y;
  116.          var _loc8_:Number = _loc4_ * _loc7_ - _loc5_ * _loc6_;
  117.          _loc8_ = 1 / _loc8_;
  118.          param1.x = _loc8_ * (_loc7_ * param2 - _loc5_ * param3);
  119.          param1.y = _loc8_ * (_loc4_ * param3 - _loc6_ * param2);
  120.          return param1;
  121.       }
  122.    }
  123. }
  124.