RemoteTech.FlightComputer.SetMode C# (CSharp) Méthode

SetMode() public méthode

public SetMode ( AttitudeMode mode, AttitudeButtonState input ) : void
mode AttitudeMode
input AttitudeButtonState
Résultat void
        public void SetMode(AttitudeMode mode, AttitudeButtonState input)
        {
            this.attitideActive = input.Active;
            if (!input.Active)
            {
                return;
            }
            switch (mode)
            {
                case AttitudeMode.MANEUVERNODE:
                    if (input.MN != Quaternion.identity)
                    {
                        Target = input.MN;
                        Reference = AttitudeReference.INERTIAL;
                    }
                    else
                    {
                        Target = Quaternion.LookRotation(vessel.ReferenceTransform.up, -vessel.ReferenceTransform.forward);
                        Reference = AttitudeReference.INERTIAL;
                    }
                    break;
                case AttitudeMode.KILLROT:
                    Target = Quaternion.LookRotation(vessel.ReferenceTransform.up, -vessel.ReferenceTransform.forward);
                    Reference = AttitudeReference.INERTIAL;
                    break;
                case AttitudeMode.PROGRADE:
                    Target = Direction(Vector3d.forward, AttitudeReference.ORBIT);
                    Reference = AttitudeReference.ORBIT;
                    break;
                case AttitudeMode.RETROGRADE:
                    Target = Direction(Vector3d.back, AttitudeReference.ORBIT);
                    Reference = AttitudeReference.ORBIT;
                    break;
                case AttitudeMode.SRF_PROGRADE:
                    Target = Direction(Vector3d.forward, AttitudeReference.SURFACE_VELOCITY);
                    Reference = AttitudeReference.SURFACE_VELOCITY;
                    break;
                case AttitudeMode.SRF_RETROGRADE:
                    Target = Direction(Vector3d.back, AttitudeReference.SURFACE_VELOCITY);
                    Reference = AttitudeReference.SURFACE_VELOCITY;
                    break;
                case AttitudeMode.NORMAL_PLUS:
                    Target = Direction(Vector3d.left, AttitudeReference.ORBIT);
                    Reference = AttitudeReference.ORBIT;
                    break;
                case AttitudeMode.NORMAL_MINUS:
                    Target = Direction(Vector3d.right, AttitudeReference.ORBIT);
                    Reference = AttitudeReference.ORBIT;
                    break;
                case AttitudeMode.RADIAL_PLUS:
                    Target = Direction(Vector3d.up, AttitudeReference.ORBIT);
                    Reference = AttitudeReference.ORBIT;
                    break;
                case AttitudeMode.RADIAL_MINUS:
                    Target = Direction(Vector3d.down, AttitudeReference.ORBIT);
                    Reference = AttitudeReference.ORBIT;
                    break;
                case AttitudeMode.SURFACE:
                    if (input.USEROL)
                        Target = Quaternion.AngleAxis(input.HDG, Vector3.up) * Quaternion.AngleAxis(-input.PIT, Vector3.right) * Quaternion.AngleAxis(-input.ROL, Vector3.forward);
                    else
                        Target = Direction(Quaternion.AngleAxis(input.HDG, Vector3.up) * Quaternion.AngleAxis(-input.PIT, Vector3.right) * Vector3d.forward, AttitudeReference.SURFACE_NORTH);
                    Reference = AttitudeReference.SURFACE_NORTH;
                    break;
            }
        }