Class AbstractManeuverTriggers

java.lang.Object
org.orekit.forces.maneuvers.trigger.AbstractManeuverTriggers
All Implemented Interfaces:
ManeuverTriggers, ResettableManeuverTriggers, EventDetectorsProvider, ParameterDriversProvider
Direct Known Subclasses:
IntervalEventTrigger, StartStopEventsTrigger

public abstract class AbstractManeuverTriggers extends Object implements ResettableManeuverTriggers
Base class for triggers.
Since:
11.1
Author:
Luc Maisonobe
  • Constructor Details

    • AbstractManeuverTriggers

      protected AbstractManeuverTriggers()
      Simple constructor.
  • Method Details

    • init

      public void init(SpacecraftState initialState, AbsoluteDate target)
      Initialization method called at propagation start.

      The default implementation does nothing.

      Specified by:
      init in interface ManeuverTriggers
      Parameters:
      initialState - initial spacecraft state (at the start of propagation).
      target - date of propagation. Not equal to initialState.getDate().
    • init

      public <T extends CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
      Initialization method called at propagation start.

      The default implementation does nothing.

      Specified by:
      init in interface ManeuverTriggers
      Type Parameters:
      T - type of the elements
      Parameters:
      initialState - initial spacecraft state (at the start of propagation).
      target - date of propagation. Not equal to initialState.getDate().
    • isFiringOnInitialState

      protected abstract boolean isFiringOnInitialState(SpacecraftState initialState, boolean isForward)
      Method to check if the thruster is firing on initialization. can be called by sub classes
      Parameters:
      initialState - initial spacecraft state
      isForward - if true, propagation will be in the forward direction
      Returns:
      true if firing in propagation direction
    • isFiring

      public boolean isFiring(AbsoluteDate date, double[] parameters)
      Find out if the maneuver is firing or not.
      Specified by:
      isFiring in interface ManeuverTriggers
      Parameters:
      date - current date
      parameters - maneuver triggers parameters
      Returns:
      true if the maneuver is firing, false otherwise
    • isFiring

      public <S extends CalculusFieldElement<S>> boolean isFiring(FieldAbsoluteDate<S> date, S[] parameters)
      Find out if the maneuver is firing or not.
      Specified by:
      isFiring in interface ManeuverTriggers
      Type Parameters:
      S - type of the field elements
      Parameters:
      date - current date
      parameters - maneuver triggers parameters
      Returns:
      true if the maneuver is firing, false otherwise
    • getFirings

      public TimeSpanMap<Boolean> getFirings()
      Get the firings detected during last propagation.
      Returns:
      firings detected during last propagation
    • addResetter

      public void addResetter(ManeuverTriggersResetter resetter)
      Add a resetter.
      Specified by:
      addResetter in interface ResettableManeuverTriggers
      Parameters:
      resetter - resetter to add
    • addResetter

      public <T extends CalculusFieldElement<T>> void addResetter(Field<T> field, FieldManeuverTriggersResetter<T> resetter)
      Add a resetter.
      Specified by:
      addResetter in interface ResettableManeuverTriggers
      Type Parameters:
      T - type of the field elements
      Parameters:
      field - field to which the state belongs
      resetter - resetter to add
    • initializeResetters

      protected void initializeResetters(SpacecraftState initialState, AbsoluteDate target)
      Initialize resetters.
      Parameters:
      initialState - initial state
      target - target date for the propagation
    • notifyResetters

      protected void notifyResetters(SpacecraftState state, boolean start)
      Notify resetters.
      Parameters:
      state - spacecraft state at trigger date (before applying the maneuver)
      start - if true, the trigger is the start of the maneuver
    • applyResetters

      protected SpacecraftState applyResetters(SpacecraftState state)
      Apply resetters.
      Parameters:
      state - spacecraft state at trigger date
      Returns:
      reset state
    • initializeResetters

      protected <T extends CalculusFieldElement<T>> void initializeResetters(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
      Initialize resetters.
      Type Parameters:
      T - type of the field elements
      Parameters:
      initialState - initial state
      target - target date for the propagation
    • notifyResetters

      protected <T extends CalculusFieldElement<T>> void notifyResetters(FieldSpacecraftState<T> state, boolean start)
      Notify resetters.
      Type Parameters:
      T - type of the field elements
      Parameters:
      state - spacecraft state at trigger date (before applying the maneuver)
      start - if true, the trigger is the start of the maneuver
    • applyResetters

      protected <T extends CalculusFieldElement<T>> FieldSpacecraftState<T> applyResetters(FieldSpacecraftState<T> state)
      Apply resetters.
      Type Parameters:
      T - type of the field elements
      Parameters:
      state - spacecraft state at trigger date
      Returns:
      reset state
    • convertDetector

      protected <T extends CalculusFieldElement<T>> FieldEventDetector<T> convertDetector(Field<T> field, EventDetector detector)
      Attempts to create a working Fielded detector from a standard one.
      Type Parameters:
      T - field type
      Parameters:
      field - field
      detector - non-Field detector
      Returns:
      Field detector
      Since:
      14.0