Hi!
I’ve got some more time to work on the dedicated normalized coordinates and time classes, and I have some ideas and questions.
I ask first rather than implement first because suspect I’m missing a lot of context and the reasoning behind previously made design decisions, and because I’m wondering what the core Orekit developers had in mind w.r.t. this task.
So, I have three disparate ideas, expanded upon below:
- Create extensions of
AbsolutePVCoordinates
andAbsoluteDate
- Create a separate framework of classes for normalized units
- Remove units from JavaDocs
The original thread: Dedicated Normalized Coordinates/Time Classes
Extensions
The most obvious solution to me is to simply extend AbsolutePVCoordinates
and AbsoluteDate
and remove replace references to meters
and seconds
with normalized distance units
and normalized time units
/etc. in the JavaDocs.
This would allow the new classes to work in place of AbsolutePVCoordinates
and AbsoluteDate
where necessary; e.g., SpacecraftState
, Propagator
, etc., which is very convenient.
Unfortunately, It wouldn’t necessarily improve rates of confusion, because things like SpacecraftState
would still specify the original classes as return types, which reference real units, thus resulting in confusion.
I have this done locally, just to see what it’s like, and it’s no big deal. I’ve also got a NormalizationFactory
to convert between the two.
Separate framework
As I read the task, I think that this is the intent of the original task.
But that might imply new equivalents of everything from PVCoordinatesProvider
to AbsolutePVCoordinates
and SpacecraftState
, and that would be an incredible amount of duplication.
Unitless JavaDocs
I suspect that this is controversial, and I think I agree. But, there would be no confusion so long as the user knew what there units were when they created instances of the classes.
This would, however, require the fewest code changes.
None of the above?
That’s what I’m thinking, but I’d love to hear what your (the core developers) thoughts are!