Class FieldEventEnablingPredicateFilter<T extends CalculusFieldElement<T>>

  • Type Parameters:
    T - type of the field elements
    All Implemented Interfaces:
    FieldEventDetector<T>

    public class FieldEventEnablingPredicateFilter<T extends CalculusFieldElement<T>>
    extends FieldAbstractDetector<FieldEventEnablingPredicateFilter<T>,​T>
    Wrapper used to detect events only when enabled by an external predicated function.

    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 FieldPropagator 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:
    12.0
    See Also:
    FieldEventSlopeFilter