Ejemplo n.º 1
0
    public virtual void UpdateOrbit(double time)
    {
        if (Orbiting != null)
        {
            var mu = Orbiting.mass * GravitationalConstant;

            if (orbitalElements == null)
            {
                orbitalElements = mechanicalElements.ToOrbitalElements(mu);
            }

            orbitalElements.UpdateTrueAnomoly(mu, time);

            mechanicalElements = orbitalElements.ToMechanicalElements(mu);
        }

        OrbitedBy?.ForEach(b =>
        {
            b.Orbiting = this;
            b.UpdateOrbit(time);
        });

        UpdateRepresentation();
    }
Ejemplo n.º 2
0
 public static Vector3 WorldPosition(MechanicalElements me, GravitationalBody orbiting)
 {
     return((orbiting.mechanicalElements.position + me.position).Scaled.Vector);
 }