public Quaternion CalcularNuevaRotacion(float deltaTime) { if (_data.ActitudSolicitada != ActitudRotacion.Ninguna) { GestionarCambioDeRotacion(); } if ( (maniobra != null) && (maniobra.ManiobraCompletada) ) { _data.Actitud = maniobra.SiguienteActitud; maniobra = null; } switch (_data.Actitud) { case ActitudRotacion.CaidaLibre: break; case ActitudRotacion.Maniobrando: _data.Rotacion = maniobra.CalcularNuevaRotacion(deltaTime); break; case ActitudRotacion.EnfocadoATierra: _data.Rotacion = CalcularRotacionATierra(); break; case ActitudRotacion.Orbital: _data.Rotacion = CalcularRotacionOrbital(); break; default: throw new ArgumentException("Actitud no implementada en CalculadorRotacion2"); } return _data.Rotacion; }
private void RotacionATierra() { _data.Actitud = ActitudRotacion.Maniobrando; Quaternion rotacion = CalcularRotacionATierra(); maniobra = new ManiobraRotacion(ActitudRotacion.EnfocadoATierra, _data, rotacion); }
private void RotacionOrbital() { _data.Actitud = ActitudRotacion.Maniobrando; Quaternion rotacion = CalcularRotacionOrbital(); maniobra = new ManiobraRotacion(ActitudRotacion.Orbital, _data, rotacion); }