Change behavior of PositionAngle-based Orbit


I’m raising a topic linked to this. PositionAngle-based inheritors of Orbit have several ways to define the fast variable, e.g. anomaly for KeplerianOrbit. However, internally, they systematically store it in a particular type. While that might have been an acceptable behavior historically, I don’t find it suitable. If an Orbit is defined with a type different than the storage one, the conversion becomes the bottleneck of the constructor. Obviously, it gets worse with Field and/or when the transformation entails solving a form of Kepler’s equation. I would really prefer if the user could choose the internal PositionAngle.

Now, I understand this is not straightforward to tackle, and we all want Orekit 12 out ASAP. But could we at least consider making some steps towards solving this in 12.1, maybe by already introducing a getPositionAngleType that would return the internal variable type?


As part of this MR, I’ve started anticipating other Orbit-related issues including the aforementioned one. Please have a look and give me some feedback on the new Interface.