Class PythonEventHandler<T extends EventDetector>
- java.lang.Object
-
- org.orekit.propagation.events.handlers.PythonEventHandler<T>
-
- All Implemented Interfaces:
EventHandler<T>
public class PythonEventHandler<T extends EventDetector> extends Object implements EventHandler<T>
This interface represents space-dynamics aware events detectors.It mirrors the
EventHandler
interface from Apache Commons Math but provides a space-dynamics interface to the methods.Events detectors are a useful solution to meet the requirements of propagators concerning discrete conditions. The state of each event detector is queried by the integrator at each step. When the sign of the underlying g switching function changes, the step is rejected and reduced, in order to make sure the sign changes occur only at steps boundaries.
When step ends exactly at a switching function sign change, the corresponding event is triggered, by calling the
#eventOccurred(SpacecraftState, boolean)
method. The method can do whatever it needs with the event (logging it, performing some processing, ignore it ...). The return value of the method will be used by the propagator to stop or resume propagation, possibly changing the state vector.- Author:
- Luc Maisonobe, Véronique Pommier-Maurussane
-
-
Constructor Summary
Constructors Constructor Description PythonEventHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Action
eventOccurred(SpacecraftState s, T detector, boolean increasing)
eventOccurred method mirrors the same interface method as inEventDetector
and its subclasses, but with an additional parameter that allows the calling method to pass in an object from the detector which would have potential additional data to allow the implementing class to determine the correct return state.void
finalize()
Part of JCC Python interface to objectlong
getPythonObject()
void
init(SpacecraftState initialState, AbsoluteDate target, T detector)
Initialize event handler at the start of a propagation.void
pythonDecRef()
Part of JCC Python interface to objectlong
pythonExtension()
Part of JCC Python interface to objectvoid
pythonExtension(long pythonObject)
Part of JCC Python interface to objectSpacecraftState
resetState(T detector, SpacecraftState oldState)
Reset the state prior to continue propagation.
-
-
-
Method Detail
-
pythonExtension
public void pythonExtension(long pythonObject)
Part of JCC Python interface to object
-
pythonExtension
public long pythonExtension()
Part of JCC Python interface to object
-
finalize
public void finalize() throws Throwable
Part of JCC Python interface to object
-
pythonDecRef
public void pythonDecRef()
Part of JCC Python interface to object
-
getPythonObject
public long getPythonObject()
-
init
public void init(SpacecraftState initialState, AbsoluteDate target, T detector)
Initialize event handler at the start of a propagation.This method is called once at the start of the propagation. It may be used by the event handler to initialize some internal data if needed.
The default implementation does nothing
- Specified by:
init
in interfaceEventHandler<T extends EventDetector>
- Parameters:
initialState
- initial statetarget
- target date for the propagationdetector
- event detector related to the event handler
-
eventOccurred
public Action eventOccurred(SpacecraftState s, T detector, boolean increasing)
eventOccurred method mirrors the same interface method as inEventDetector
and its subclasses, but with an additional parameter that allows the calling method to pass in an object from the detector which would have potential additional data to allow the implementing class to determine the correct return state.- Specified by:
eventOccurred
in interfaceEventHandler<T extends EventDetector>
- Parameters:
s
- SpaceCraft state to be used in the evaluationdetector
- object with appropriate type that can be used in determining correct return stateincreasing
- with the event occured in an "increasing" or "decreasing" slope direction- Returns:
- the Action that the calling detector should pass back to the evaluation system
- Throws:
OrekitException
- if some specific error occurs
-
resetState
public SpacecraftState resetState(T detector, SpacecraftState oldState)
Reset the state prior to continue propagation.This method is called after the step handler has returned and before the next step is started, but only when
eventOccurred(org.orekit.propagation.SpacecraftState, T, boolean)
has itself returned theAction.RESET_STATE
indicator. It allows the user to reset the state for the next step, without perturbing the step handler of the finishing step. If theeventOccurred(org.orekit.propagation.SpacecraftState, T, boolean)
never returns theAction.RESET_STATE
indicator, this function will never be called, and it is safe to simply return null.- Specified by:
resetState
in interfaceEventHandler<T extends EventDetector>
- Parameters:
detector
- object with appropriate type that can be used in determining correct return stateoldState
- old state- Returns:
- new state
- Throws:
OrekitException
- if the state cannot be reseted
-
-