public Quaternion CreateFromHeadingPitchRoll()

in Tools/Cam360/MainPage.xaml.cs [878:899]


        public Quaternion CreateFromHeadingPitchRoll(double heading, double pitch, double roll)
        {
            Quaternion result;
            double headingPart = DegreetoRadians(heading) * 0.5;
            double sin1 = Math.Sin(headingPart);
            double cos1 = Math.Cos(headingPart);

            double pitchPart = DegreetoRadians(-pitch) * 0.5;
            double sin2 = Math.Sin(pitchPart);
            double cos2 = Math.Cos(pitchPart);

            double rollPart = DegreetoRadians(roll) * 0.5;
            double sin3 = Math.Sin(rollPart);
            double cos3 = Math.Cos(rollPart);

            result.W = (float)(cos1 * cos2 * cos3 - sin1 * sin2 * sin3);
            result.X = (float)(cos1 * cos2 * sin3 + sin1 * sin2 * cos3);
            result.Y = (float)(sin1 * cos2 * cos3 + cos1 * sin2 * sin3);
            result.Z = (float)(cos1 * sin2 * cos3 - sin1 * cos2 * sin3);

            return result;
        }