Class EventEnablingPredicateFilter
- All Implemented Interfaces:
DetectorModifier,EventDetector
General events are defined implicitly
by a g function crossing
zero. This implies that during an orbit propagation, events are
triggered at all zero crossings.
Sometimes, users would like to enable or disable events by themselves, for example to trigger them only for certain orbits, or to check elevation maximums only when elevation itself is positive (i.e. they want to discard elevation maximums below ground). In these cases, looking precisely for all events location and triggering events that will later be ignored is a waste of computing time.
Users can wrap a regular event detector in
an instance of this class and provide this wrapping instance to
a Propagator
in order to avoid wasting time looking for uninteresting events.
The wrapper will intercept the calls to the g function and to the eventOccurred method in order to ignore uninteresting events. The
wrapped regular event detector will the see only
the interesting events, i.e. either only events that occur when a
user-provided event enabling predicate function is true, ignoring all events
that occur when the event enabling predicate function is false. The number of
calls to the g function will also be
reduced.
- Since:
- 7.1
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionEventEnablingPredicateFilter(EventDetectionSettings detectionSettings, EventDetector rawDetector, EnablingPredicate enabler) Constructor with full parameters.EventEnablingPredicateFilter(EventDetector rawDetector, EnablingPredicate enabler) Wrap anevent detector. -
Method Summary
Modifier and TypeMethodDescriptiondoubleg(SpacecraftState s) Compute the value of the switching function.Getter for the settings.Get the wrapped raw detector.Get the event function.Get the handler.Getter for the enabling predicate.voidinit(SpacecraftState s0, AbsoluteDate t) Initialize event detector at the start of a propagation.booleanCheck if the current propagation is forward or backward.voidreset(SpacecraftState state, AbsoluteDate target) Reset the event detector during propagation when the state is modified by an event or an additional data provider.withDetectionSettings(EventDetectionSettings settings) Builds a new instance from the input detection settings.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.events.DetectorModifier
finishMethods inherited from interface org.orekit.propagation.events.EventDetector
getMaxCheckInterval, getMaxIterationCount, getThreshold
-
Constructor Details
-
EventEnablingPredicateFilter
Wrap anevent detector.- Parameters:
rawDetector- event detector to wrap (its detection settings are taken as well)enabler- event enabling predicate function to use
-
EventEnablingPredicateFilter
public EventEnablingPredicateFilter(EventDetectionSettings detectionSettings, EventDetector rawDetector, EnablingPredicate enabler) Constructor with full parameters.- Parameters:
detectionSettings- event detection settingsrawDetector- event detector to wrapenabler- event enabling function to use- Since:
- 13.0
-
-
Method Details
-
withDetectionSettings
Builds a new instance from the input detection settings.- Parameters:
settings- event detection settings to be used- Returns:
- a new detector
-
getDetector
Get the wrapped raw detector.- Specified by:
getDetectorin interfaceDetectorModifier- Returns:
- the wrapped raw detector
- Since:
- 11.1
-
getHandler
Get the handler.- Specified by:
getHandlerin interfaceDetectorModifier- Specified by:
getHandlerin interfaceEventDetector- Returns:
- event handler to call at event occurrences
-
getDetectionSettings
Getter for the settings.- Specified by:
getDetectionSettingsin interfaceDetectorModifier- Specified by:
getDetectionSettingsin interfaceEventDetector- Returns:
- detection settings
-
getPredicate
Getter for the enabling predicate.- Returns:
- predicate
- Since:
- 13.1
-
getEventFunction
Get the event function. It defines g both for double and Field.- Specified by:
getEventFunctionin interfaceDetectorModifier- Specified by:
getEventFunctionin interfaceEventDetector- Returns:
- event function
-
init
Initialize event detector 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 initializes the handler.
- Specified by:
initin interfaceDetectorModifier- Specified by:
initin interfaceEventDetector- Parameters:
s0- initial statet- target time for the integration
-
reset
Reset the event detector during propagation when the state is modified by an event or an additional data provider.The default implementation does nothing.
- Specified by:
resetin interfaceDetectorModifier- Specified by:
resetin interfaceEventDetector- Parameters:
state- current statetarget- target time for the integration
-
g
Compute the value of the switching function. This function must be continuous (at least in its roots neighborhood), as the integrator will need to find its roots to locate the events.- Specified by:
gin interfaceDetectorModifier- Specified by:
gin interfaceEventDetector- Parameters:
s- the current state information: date, kinematics, attitude- Returns:
- value of the switching function
-
isForward
public boolean isForward()Check if the current propagation is forward or backward.- Returns:
- true if the current propagation is forward
-