private void UpdateInterno(TGC.Core.Camara.TgcCamera Camara, TgcD3dInput Input, float ElapsedTime)
    {
        //ElapsedTime = 0.01f;
        CoordenadaEsferica anguloNave = new CoordenadaEsferica(xwing.GetCoordenadaEsferica().acimutal, xwing.GetCoordenadaEsferica().polar + DESVIO_ANGULO_POLAR);

        CalcularDeltaAcimutal(ElapsedTime, anguloNave);
        CalcularDeltaPolar(ElapsedTime, anguloNave);

        RueditaMouse(Input);
        cameraPosition = CommonHelper.SumarVectores(xwing.GetPosition(), GetDistancePoint());
        lookAtCamera   = xwing.GetPosition();
        Camara.SetCamera(cameraPosition, lookAtCamera);
    }
    private void CalcularDeltaPolar(float ElapsedTime, CoordenadaEsferica anguloNave)
    {
        float deltaPolar = anguloNave.polar - this.coordenadaEsferica.polar;

        if (Math.Abs(deltaPolar) > velocidadAngular * ElapsedTime)
        {
            if (deltaPolar < 0 && deltaPolar > -FastMath.PI / 2 || deltaPolar > FastMath.PI)
            {
                this.coordenadaEsferica = new CoordenadaEsferica(
                    this.coordenadaEsferica.acimutal, this.coordenadaEsferica.polar - velocidadAngular * ElapsedTime);
            }
            else
            {
                this.coordenadaEsferica = new CoordenadaEsferica(
                    this.coordenadaEsferica.acimutal, this.coordenadaEsferica.polar + velocidadAngular * ElapsedTime);
            }
        }
    }
    private void CalcularDeltaAcimutal(float ElapsedTime, CoordenadaEsferica anguloNave)
    {
        float deltaAcimutal = anguloNave.acimutal - this.coordenadaEsferica.acimutal;

        if (Math.Abs(deltaAcimutal) > velocidadAngular * ElapsedTime)
        {
            if (deltaAcimutal < 0 && deltaAcimutal > -FastMath.PI || deltaAcimutal > FastMath.PI)
            {
                this.coordenadaEsferica = new CoordenadaEsferica(
                    this.coordenadaEsferica.acimutal - velocidadAngular * ElapsedTime, this.coordenadaEsferica.polar);
            }
            else
            {
                this.coordenadaEsferica = new CoordenadaEsferica(
                    this.coordenadaEsferica.acimutal + velocidadAngular * ElapsedTime, this.coordenadaEsferica.polar);
            }
        }
    }
 /// <summary>
 ///     Es el encargado de modificar la camara siguiendo a la nave
 /// </summary>
 public FollowingCamera(Xwing xwing)//@debe ser creada dsps del xwing
 {
     this.xwing = xwing;
     this.coordenadaEsferica = xwing.GetCoordenadaEsferica();
 }