Пример #1
0
 private Quaternion(string parsableText)
 {
     if (parsableText == null)
     {
         throw new ArgumentException("Text cannot be null.");
     }
     try
     {
         if (parsableText[0] == '[')                   //[pitch,yaw,roll], Rotation in euler angles in degrees
         {
             string[]   vals = parsableText.TrimStart('[').TrimEnd(']').Split(',');
             Quaternion q    = Quaternion.FromEulerAnglesInDegrees(float.Parse(vals[0]), float.Parse(vals[1]), float.Parse(vals[2]));
             w = q.w;
             x = q.x;
             y = q.y;
             z = q.z;
         }
         else
         {
             string[] vals = parsableText.TrimStart('(').TrimEnd(')').Split(',');
             x = float.Parse(vals[0]);
             y = float.Parse(vals[1]);
             z = float.Parse(vals[2]);
             w = float.Parse(vals[3]);
         }
     }
     catch (Exception)
     {
         throw new FormatException(string.Format("Could not parse Quaternion from '{0}'.", parsableText));
     }
 }