[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orekit Users] Re. how to deletgate Orbit class??



I am looking write a wrapper/delegator/decorator for Orbit which applies
certain types of biases. For example, the result may be that the underlying
orbital geometry is shifted according to a bias model. This is supposed to
represent ephemeris errors of certain types.

Anyway, this would be easier if Orbit were an interface, but it is not. I
could subclass the existing Orbit classes, but there are a lot of them. All I
really care about changing is the PVCoordinates, but the Orbit API is fairly
complicated.

I am thinking that what I can do is subclass Orbit with BiasedOrbit, added a
member reference to the child Orbit object of whatever type. The main thing is
to return a different BoundedPropagator, which fortunately is an interface. I
think all I have to do is decorate the BoundedPropagator getInitialState,
getAttitudeProvider if I want to bias attitude data, and the two propagate
methods.Also need to decorate getGeneratedEphemeris, which may be trickier.

However, some issues which are troubling me:

1) Orbit does not have a default constructor. I really don't want the
superclass to do anything, so this is annoying.

2) The two init... methods are protected, so I cannot delegate them.

Any suggestions?  Is there already some way to do this?  Would it be easier
for me to add biases in my applications instead of trying to create a
BiasedOrbit?

Thanks!

Jim