LookAtRight() публичный статический Метод

Get quaternion with rotation as Y axis from source towards target and X close to right parameter
public static LookAtRight ( OpenTK.Vector3 source, OpenTK.Vector3 target, OpenTK.Vector3 x ) : Quaternion
source OpenTK.Vector3 Position vector to look from
target OpenTK.Vector3 Position vector to look at
x OpenTK.Vector3
Результат Quaternion
 private void GetAnkleRight(Bone b)
 {
     b.Pos = AnkleRight;
     if (markers[m.rightInnerAnkle].IsNaN())
     {
         Vector3 up = KneeRight - AnkleRight;
         b.Orientation = QuaternionHelper2.LookAtUp(AnkleRight, FootBaseRight, up);
     }
     else
     {
         Vector3 right = markers[m.rightOuterAnkle] - markers[m.rightInnerAnkle];
         b.Orientation = QuaternionHelper2.LookAtRight(AnkleRight, FootBaseRight, right);
     }
 }
 private void LowerLegLeft(Bone b)
 {
     b.Pos         = KneeLeft;
     b.Orientation = QuaternionHelper2.LookAtRight(KneeLeft, AnkleLeft, KneeForwardLeft);
 }
 private void UpperLegRight(Bone b)
 {
     b.Pos         = HipJointRight;
     b.Orientation = QuaternionHelper2.LookAtRight(HipJointRight, KneeRight, HipJointRight - HipJointLeft);
 }
 private void MidSpine(Bone b)
 {
     b.Pos         = Spine1;
     b.Orientation = QuaternionHelper2.LookAtRight(Spine1, SternumClavicle, HipJointLeft - HipJointRight);
 }
 private void GetUpperArmRight(Bone b)
 {
     b.Pos         = ShoulderRight;
     b.Orientation = QuaternionHelper2.LookAtRight(ShoulderRight, ElbowRight, markers[m.rightOuterElbow] - markers[m.rightInnerElbow]);
 }
 private void GetUpperArmLeft(Bone b)
 {
     b.Pos         = ShoulderLeft;
     b.Orientation = QuaternionHelper2.LookAtRight(ShoulderLeft, ElbowLeft, markers[m.leftInnerElbow] - markers[m.leftOuterElbow]);
 }