Пример #1
0
        static void Main(string[] args)
        {
            //new ArchiveResourceToCSV(@"E:\New_Data_Drive\WindwakerModding\new_object_extract\res\extracted_archives\Object");
            //new ArcExtractorDebugging(@"E:\New_Data_Drive\WindwakerModding\root\res\Object\ff.arc");
            //Quaternion negQuat = Quaternion.FromAxisAngle(new Vector3(1, 0, 0), WMath.DegreesToRadians(-0)) * Quaternion.FromAxisAngle(new Vector3(0, 1, 0), WMath.DegreesToRadians(-179)) * Quaternion.FromAxisAngle(new Vector3(0, 1, 0), -3.1415f) * Quaternion.FromAxisAngle(new Vector3(0, 0, 1), WMath.DegreesToRadians(-179));
            //Quaternion negQuat = Quaternion.FromAxisAngle(new Vector3(0, 1, 0), WMath.DegreesToRadians(-165));
            //Console.WriteLine("Yaw: {0}", WMath.RadiansToDegrees(YawFromQuat(negQuat)));

            for(int i = 180; i >= -180; i-=5)
            {
                //Quaternion quat = Quaternion.FromAxisAngle(new Vector3(0, 1, 0), WMath.DegreesToRadians(i));
                Quaternion xQuat = FromEulerAngles(new Vector3(i, 0, 0));
                Quaternion yQuat = FromEulerAngles(new Vector3(0, i, 0));
                Quaternion zQuat = FromEulerAngles(new Vector3(0, 0, i));
                //Console.WriteLine("In: {0} Out: {1:0},{2:0},{3:0}", i, WMath.RadiansToDegrees(PitchFromQuat(zQuat)), WMath.RadiansToDegrees(YawFromQuat(yQuat)), WMath.RadiansToDegrees(RollFromQuat(xQuat)));
                Console.WriteLine("In: {0} Out: {1:0},{2:0},{3:0}", i, WMath.RadiansToDegrees(PitchFromQuat(yQuat)), WMath.RadiansToDegrees(YawFromQuat(yQuat)), WMath.RadiansToDegrees(RollFromQuat(yQuat)));
            }

            //negQuat = Quaternion.FromAxisAngle(new Vector3(0, 1, 0), WMath.DegreesToRadians(28));
            //Console.WriteLine("Yaw: {0}", WMath.RadiansToDegrees(YawFromQuat(negQuat)));

            //Vector3 eulAngles = EulerAnglesFromQuat(negQuat);
            //Console.WriteLine("Euler Angles from Quat: {0},{1},{2}", WMath.RadiansToDegrees(eulAngles.X), WMath.RadiansToDegrees(eulAngles.Y), WMath.RadiansToDegrees(eulAngles.Z));
            //Vector3 negEuler = new Vector3(WMath.RadiansToDegrees(PitchFromQuat(negQuat)), WMath.RadiansToDegrees(YawFromQuat(negQuat)), WMath.RadiansToDegrees(RollFromQuat(negQuat)));
            //Vector3 posEuler = new Vector3(WMath.RadiansToDegrees(PitchFromQuat(posQuat)), WMath.RadiansToDegrees(YawFromQuat(posQuat)), WMath.RadiansToDegrees(RollFromQuat(posQuat)));
            //Console.WriteLine("neg: {0} pos: {1}", negEuler, posEuler);
        }