fr.cnes.sirius.patrius.forces.maneuvers
Class ManeuversSequence

java.lang.Object
  extended by fr.cnes.sirius.patrius.forces.maneuvers.ManeuversSequence

public class ManeuversSequence
extends Object

This class handles a sequence of different maneuvers.
The maneuvers can be continue maneuvers (with constant or variable thrust), or impulse maneuvers.

Maneuvers defined with dates cannot overlap. Maneuvers defined by generic events can overlap.

Since:
1.2
Version:
$Id: ManeuversSequence.java 17586 2017-05-10 13:29:16Z bignon $
Author:
Tiziana Sabatini
See Also:
ConstantThrustManeuver, ImpulseManeuver, VariableThrustManeuver
Concurrency :
not thread-safe
Concurrency comment :
The instances are mutable.

Constructor Summary
ManeuversSequence(double dTcontinue, double dTimpulse)
          Constructor of the maneuvers sequence.
 
Method Summary
 boolean add(ConstantThrustManeuver maneuver)
          Adds a continuous maneuver (with constant thrust) to the list.
Two scenarios are possible : the maneuver to add is triggered by a detector other than DateDetector, always add the maneuver; it means some overlapping may occur. the maneuver to add is triggered by a DateDetector, always check first if the time interval of the maneuver respects the two following conditions: no superposition with any maneuver in the list; the time between the end of the previous maneuver and the start of the maneuver to add, as well as the time between the end of the maneuver to add and the start of the next maneuver, must be bigger than the threshold value.
 boolean add(ImpulseManeuver maneuver)
          Adds an impulse maneuver to the list.
Two scenarios are possible: the maneuver to add is triggered by a detector other than DateDetector, always add the maneuver; it means some overlapping may occur. the maneuver to add is triggered by a DateDetector, check if the date of the maneuver respects the two following conditions: no superposition with any maneuver in the list; the time between the end of the previous maneuver and the date of the maneuver to add, as well as the time between the end of the maneuver to add and the date of the next maneuver, must be bigger than the threshold value.
 boolean add(VariableThrustManeuver maneuver)
          Adds a continuous maneuver (with variable thrust) to the list.
Two scenarios are possible : the maneuver to add is triggered by a detector other than DateDetector, always add the maneuver; it means some overlapping may occur. the maneuver to add is triggered by a DateDetector, always check first if the time interval of the maneuver respects the two following conditions: no superposition with any maneuver in the list; the time between the end of the previous maneuver and the start of the maneuver to add, as well as the time between the end of the maneuver to add and the start of the next maneuver, must be bigger than the threshold value.
 void applyTo(NumericalPropagator propagator)
          Adds all the maneuvers (continue and impulse) to the propagator.
 int getSize()
           
 boolean remove(ConstantThrustManeuver maneuver)
          Remove the selected continue maneuver with constant thrust from the list.
If the maneuver is not in the list, it returns false.
 boolean remove(ImpulseManeuver maneuver)
          Remove the selected impulse maneuver from the list.
If the maneuver is not in the list, it returns false.
 boolean remove(VariableThrustManeuver maneuver)
          Remove the selected continuous maneuver with variable thrust from the list.
If the maneuver is not in the list, it returns false.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ManeuversSequence

public ManeuversSequence(double dTcontinue,
                         double dTimpulse)
Constructor of the maneuvers sequence.

Parameters:
dTcontinue - the minimum allowed time between a continue maneuver and the next maneuver.
dTimpulse - the minimum allowed time between an impulse maneuver and the next maneuver.
Method Detail

add

public final boolean add(ConstantThrustManeuver maneuver)
Adds a continuous maneuver (with constant thrust) to the list.
Two scenarios are possible :

Parameters:
maneuver - the continue maneuver to add to the list
Returns:
true if the maneuver has been added, false otherwise (the conditions have not been respected)

remove

public final boolean remove(ConstantThrustManeuver maneuver)
Remove the selected continue maneuver with constant thrust from the list.
If the maneuver is not in the list, it returns false.

Parameters:
maneuver - the maneuver to remove from the list
Returns:
true if the maneuver has been removed, false otherwise

add

public final boolean add(VariableThrustManeuver maneuver)
Adds a continuous maneuver (with variable thrust) to the list.
Two scenarios are possible :

Parameters:
maneuver - the continue maneuver to add to the list
Returns:
true if the maneuver has been added, false otherwise (the conditions have not been respected)

remove

public final boolean remove(VariableThrustManeuver maneuver)
Remove the selected continuous maneuver with variable thrust from the list.
If the maneuver is not in the list, it returns false.

Parameters:
maneuver - the maneuver to remove from the list
Returns:
true if the maneuver has been removed, false otherwise

add

public final boolean add(ImpulseManeuver maneuver)
Adds an impulse maneuver to the list.
Two scenarios are possible:

Parameters:
maneuver - the impulse maneuver to add to the list
Returns:
true if the maneuver has been added, false otherwise (the conditions have not been respected)

remove

public final boolean remove(ImpulseManeuver maneuver)
Remove the selected impulse maneuver from the list.
If the maneuver is not in the list, it returns false.

Parameters:
maneuver - the maneuver to remove from the list
Returns:
true if the maneuver has been removed, false otherwise

getSize

public final int getSize()
Returns:
the number of maneuvers in the list.

applyTo

public final void applyTo(NumericalPropagator propagator)
Adds all the maneuvers (continue and impulse) to the propagator.

Parameters:
propagator - the propagator to which all the maneuvers must be applied


Copyright © 2017 CNES. All Rights Reserved.