In Hipparchus ODE module, events detection is performed using switching function g
and when the sign of this function changes, the event is triggered and eventOccurred
is called. This has been done this way since years. This is however cumbersome as events detections and events handling cannot be separated.
In Orekit, there are two different interfaces for this and people can implement their own event handling and associate it with existing event detectors without needing to rewrite the detector. This change was made years ago and greatly improved the library. It was really needed because Orekit provides a lot of events detectors. It was not needed up to now in Hipparchus because Hipparchus does not provide any detector by itself.
However, as part of implementing issue 220, I would like to have a specialized event detector provided by Hipparchus (it would detect the end of the current step), and let users add their own handler for it.
So I would like to reproduce in Hipparchus what has been done for a long time in Orekit: separate events detection and events handling.
What do you think about this change?