// Update the state of the orbiter when its position along the ellipse changes
 // Note: Make sure the ellipse is up to date before updating the orbit state
 private void Update(float orbiterAngle, Orbiter orbiter, OrbitalEllipse ellipse)
 {
     this.orbiter  = orbiter;
     this.ellipse  = ellipse;
     this.normal   = CalcNormal(orbiterAngle);
     this.tangent  = CalcTangent(normal);
     this.position = ellipse.GetPosition(orbiterAngle, orbiter.orbitAround.position);
     this.velocity = CalcVelocity(orbiter.orbitSpeed * orbiter.GravityConstant(), position, orbiter.orbitAround.position);
 }