« Return to Thread: [Breaking Change] DO3D has new props localRotationX / Y /Z , pitch, yaw, roll are methods again

Re: [Breaking Change] DO3D has new props localRotationX/ Y /Z , pitch, yaw, roll are methods again

by Jon Bradley-2 :: Rate this Message:

Reply to Author | View in Thread


On Jul 23, 2008, at 12:36 PM, Jon Bradley wrote:

> If the issue is with matrix2euler

If you're really bold, you can try this method instead:

        public static function matrix2euler( m :Matrix3D,  
euler:Number3D=null, scale:Number3D=null ) : Number3D
        {
                euler = euler || new Number3D();

         var x:Number = 0;
         var y:Number = 0;
         var c:Number = 0;

         euler.y = -Math.asin( m.13);
         c = Math.cos(ay);

         if ( Math.abs(c) > 0.005 )
         {
             x =  m.33/c;
             y = -m.23/c;

             euler.x = Math.atan2(y,x);

             x = m.11/c;
             y = m.12/c;

             euler.z = atan2(y,x);
         }
         else
         {
             euler.x = 0;
             x = m.22;
             y = m.21;
             euler.z = atan2(y,x);
         }

         //  Clamp values
         euler.x = (euler.x > 360) ? 360:((euler.x < 0) ? 0:euler.x);
         euler.y = (euler.y > 360) ? 360:((euler.y < 0) ? 0:euler.y);
         euler.z = (euler.z > 360) ? 360:((euler.z < 0) ? 0:euler.z);

                if(Papervision3D.useDEGREES)
                {
                        euler.x *= toDEGREES;
                        euler.y *= toDEGREES;
                        euler.z *= toDEGREES;
                }
               
                return euler;
     }



_______________________________________________
Papervision3D mailing list
Papervision3D@...
http://osflash.org/mailman/listinfo/papervision3d_osflash.org

 « Return to Thread: [Breaking Change] DO3D has new props localRotationX / Y /Z , pitch, yaw, roll are methods again