|
WSF
|
#include <WsfSpaceOrbitalPropagatorCondition.hpp>


Public Member Functions | |
| virtual bool | Objective (UtOrbitalPropagatorBase &aPropagator, const UtCalendar &aBaseEpoch, double aOffsetTime) const =0 |
| virtual std::pair< bool, double > | InitialGuess (const UtOrbitalPropagatorBase &aPropagator) const =0 |
| bool | GetTimeToCondition (const UtOrbitalPropagatorBase &aPropagator, double &aTimeToCondition) const final |
| This template pattern method performs the search for the time at which the condition obtains. | |
| virtual bool | HandleSpecialCases (const UtOrbitalPropagatorBase &aPropagator, double &aTimeToCondition) const |
| Public Member Functions inherited from wsf::space::OrbitalPropagatorCondition | |
| OrbitalPropagatorCondition * | Clone () const override=0 |
| bool | ProcessInput (UtInput &aInput) override |
| unsigned | GetOrbitNumber () const |
| Return the orbit number. | |
| void | SetOrbitNumber (unsigned aOrbitNumber) |
| Set the orbit number. | |
| virtual bool | ValidateParameterRanges () const |
| virtual void | Accept (OrbitalPropagatorConditionVisitor &aVisitor)=0 |
| Accept a visitor. | |
| virtual std::string | GetConditionString () const =0 |
| Return the string identifying the condition. | |
| Public Member Functions inherited from WsfObject | |
| WsfObject () | |
| This is the constructor for the WsfObject class. | |
| ~WsfObject () override | |
| This is the destructor for the WsfObject class. | |
| const char * | GetScriptClassName () const override |
| const std::string & | GetType () const |
| WsfStringId | GetTypeId () const |
| Get the string ID of the 'type' of the object. | |
| void | SetType (WsfStringId aType) |
| const std::string & | GetBaseType () const |
| WsfStringId | GetBaseTypeId () const |
| const TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (const WsfObject &aRhs) |
| Assignment operator. | |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| For XIO (de)serialization. | |
| const std::string & | GetName () const |
| WsfStringId | GetNameId () const |
| void | SetName (WsfStringId aName) |
Additional Inherited Members | |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
| Protected Attributes inherited from wsf::space::OrbitalPropagatorCondition | |
| unsigned | mOrbitNumber {0} |
A condition that performs an optimization. Subclasses of this condition use a optimization procedure to determine when the condition is satisfied. The sorts of conditions that can be computed as a subclass are any for which the condition is expressible as a function with a root representing the time at which the condition obtains. Most conditions are derived from this to allow for non-classical (i.e., not two-body) orbital propagators the opportunity to use their full dynamics to discover the time at which the condition is satisfied.
|
finalvirtual |
This template pattern method performs the search for the time at which the condition obtains.
Implements wsf::space::OrbitalPropagatorCondition.
References wsf::space::OrbitalPropagatorCondition::GetConditionString(), HandleSpecialCases(), InitialGuess(), wsf::space::OrbitalPropagatorCondition::mOrbitNumber, Objective(), and std::swap().
Referenced by InitialGuess().
|
inlinevirtual |
Handle special cases of initial or final orbits for a condition. If there are special initial or final orbit classes that need to be handled separately, this method can be overridden to provide the requisite values. If the aPropagator or the condition instance is such that special handling is required, this value should set the time at which the condition obtains in aTimeToCondition, and return true. Otherwise, this method should return false. Typically such special cases are called for in equatorial, or circular orbits.
| aPropagator | - The propagator being examined for special cases. |
| aTimeToCondition | [out] - The time at which the condition obtains. |
Reimplemented in wsf::space::ApoapsisCondition, wsf::space::AscendingNodeCondition, wsf::space::DescendingNodeCondition, wsf::space::IntersectionCondition, and wsf::space::PeriapsisCondition.
Referenced by GetTimeToCondition().
|
pure virtual |
Produce an initial guess for when the condition might obtain. The initial guess produced by this method is used to set the initial search area for the root. In some rare cases, it may be impossible to form an initial guess.
| aPropagator | - The propagator for which an initial guess is to be returned. |
Implemented in wsf::space::ApoapsisCondition, wsf::space::AscendingNodeCondition, wsf::space::AscendingRadiusCondition, wsf::space::DescendingNodeCondition, wsf::space::DescendingRadiusCondition, wsf::space::NorthernIntersectionCondition, wsf::space::PeriapsisCondition, and wsf::space::SouthernIntersectionCondition.
References GetTimeToCondition().
Referenced by GetTimeToCondition().
|
pure virtual |
This function is the objective function whose root gives the time of the condition. The provided propagator will be advanced to aOffsetTime seconds after the provided aBaseEpoch and the resulting state will be used to evaluate the condition. The condition needs to be formulated so that a boolean is returned, where the value of the boolean indicates if aOffsetTime is in a region before or after the root. The condition can return either true or false for values before the root, and the choice is up to the convenience of the implementer.
| aPropagator | - The propagator for which the objective is being examined. |
| aBaseEpoch | - A base epoch from which the offset will be specified. |
| aOffsetTime | - The offset from the base epoch at which the objective will be computed. |
aOffsetTime is before the root. Implemented in wsf::space::ApoapsisCondition, wsf::space::AscendingNodeCondition, wsf::space::AscendingRadiusCondition, wsf::space::DescendingNodeCondition, wsf::space::DescendingRadiusCondition, wsf::space::NorthernIntersectionCondition, wsf::space::PeriapsisCondition, and wsf::space::SouthernIntersectionCondition.
Referenced by GetTimeToCondition().