|
WSF
|
#include <WsfBallisticMissileLaunchComputer.hpp>

Public Member Functions | |
| SA_Evaluator (double aBaseTime, WsfBallisticMissileLaunchComputer *aComputerPtr, WsfMover::KinematicModel *aTargetDataPtr) | |
| void | FindLaunchWindowStart (double &aTimeToLaunch, double &aTimeToIntercept, double &aTimeOfFlight, double &aLoftAngle, double &aInterceptSpeed, double &aInterceptFlightPathAngle) |
| void | FindLaunchWindowEnd (double &aTimeToLaunch, double &aTimeToIntercept, double &aTimeOfFlight, double &aLoftAngle, double &aInterceptSpeed, double &aInterceptFlightPathAngle) |
| bool | CheckForInterceptOnRangeLine (int aRangeIndex, double &aTimeToLaunch, double &aTimeToIntercept, double &aTimeOfFlight, double &aLoftAngle, double &aInterceptSpeed, double &aInterceptFlightPathAngle) |
Public Attributes | |
| const WsfBallisticMissileLaunchComputer * | mComputerPtr |
| const WsfMover::KinematicModel * | mTargetDataPtr |
| const SA_Table & | mSA_Table |
| double | mBaseTime |
| double | mLaunchLocXYZ [3] |
| bool | mCheckGeometry |
| double | mBegTime |
| double | mBegLocXYZ [3] |
| double | mBegRange |
| double | mBegAltitude |
| int | mBegRangeIndex |
| double | mEndTime |
| double | mEndLocXYZ [3] |
| double | mEndRange |
| double | mEndAltitude |
| int | mEndRangeIndex |
| double | mLastRange |
| int | mIterCount |
| bool | mClosing |
| TblLookupLUBX< double > | mAltitudeLU |
The 'evaluator' for surface-to-air intercepts. This class exists to maintain a 'context' for determining an intercept solutiion. It eliminates the need to pass a lot of variables between routines. And by not storing the data as member variables in the launch computer object, it will enable multiple evaluations (threads) to be performed in parallel.
| WsfBallisticMissileLaunchComputer::SA_Evaluator::SA_Evaluator | ( | double | aBaseTime, |
| WsfBallisticMissileLaunchComputer * | aComputerPtr, | ||
| WsfMover::KinematicModel * | aTargetDataPtr ) |
References mAltitudeLU, mBaseTime, mBegAltitude, mBegLocXYZ, mBegRange, mBegRangeIndex, mBegTime, mCheckGeometry, mClosing, mComputerPtr, mEndAltitude, mEndLocXYZ, mEndRange, mEndRangeIndex, mEndTime, mIterCount, mLastRange, mLaunchLocXYZ, mSA_Table, mTargetDataPtr, and WsfBallisticMissileLaunchComputer::WsfBallisticMissileLaunchComputer().
| bool WsfBallisticMissileLaunchComputer::SA_Evaluator::CheckForInterceptOnRangeLine | ( | int | aRangeIndex, |
| double & | aTimeToLaunch, | ||
| double & | aTimeToIntercept, | ||
| double & | aTimeOfFlight, | ||
| double & | aLoftAngle, | ||
| double & | aInterceptorSpeed, | ||
| double & | aInterceptorFlightPathAngle ) |
Check for an intercept on a line of constant of constant range. returns true if an intercept is possible or false if not.
References WsfBallisticMissileLaunchComputer::RangeLine::mAltitude, mAltitudeLU, mBaseTime, mBegAltitude, mBegRange, mBegTime, mCheckGeometry, mComputerPtr, WsfBallisticMissileLaunchComputer::RangeEntry::mDecreasingLine, mEndAltitude, mEndRange, mEndTime, WsfBallisticMissileLaunchComputer::RangeLine::mFlightPathAngle, WsfBallisticMissileLaunchComputer::RangeEntry::mIncreasingLine, mLaunchLocXYZ, WsfBallisticMissileLaunchComputer::RangeLine::mLoftAngle, WsfBallisticMissileLaunchComputer::RangeLine::mMaxAltitude, WsfBallisticMissileLaunchComputer::RangeLine::mMinAltitude, mSA_Table, WsfBallisticMissileLaunchComputer::RangeLine::mSpeed, mTargetDataPtr, and WsfBallisticMissileLaunchComputer::RangeLine::mTimeOfFlight.
Referenced by FindLaunchWindowEnd(), and FindLaunchWindowStart().
| void WsfBallisticMissileLaunchComputer::SA_Evaluator::FindLaunchWindowEnd | ( | double & | aTimeToLaunch, |
| double & | aTimeToIntercept, | ||
| double & | aTimeOfFlight, | ||
| double & | aLoftAngle, | ||
| double & | aInterceptSpeed, | ||
| double & | aInterceptFlightPathAngle ) |
Find the last possible intercept within the current launch window. This method should only be called after a previously successful call to FindLaunchWindowStart. It continues to iterate forward in time from the start of the launch window (as determined by FindLaunchWindowStart) until it finds a point at which an intercept cannot occur. The values returned represent the last time at which a successful intercept can occur.
References CheckForInterceptOnRangeLine(), WsfMover::KinematicModel::GetRangeAndAltitude(), mBegAltitude, mBegLocXYZ, mBegRange, mBegRangeIndex, mBegTime, mClosing, mComputerPtr, mEndAltitude, mEndLocXYZ, mEndRange, mEndRangeIndex, mEndTime, WsfLaunchComputer::mEndTime, mIterCount, mLastRange, mLaunchLocXYZ, mSA_Table, and mTargetDataPtr.
Referenced by WsfBallisticMissileLaunchComputer::ComputeLaunchWindows().
| void WsfBallisticMissileLaunchComputer::SA_Evaluator::FindLaunchWindowStart | ( | double & | aTimeToLaunch, |
| double & | aTimeToIntercept, | ||
| double & | aTimeOfFlight, | ||
| double & | aLoftAngle, | ||
| double & | aInterceptSpeed, | ||
| double & | aInterceptFlightPathAngle ) |
References CheckForInterceptOnRangeLine(), WsfMover::KinematicModel::GetRangeAndAltitude(), mBaseTime, mBegAltitude, mBegLocXYZ, mBegRange, mBegRangeIndex, mBegTime, mClosing, mComputerPtr, mEndAltitude, mEndLocXYZ, mEndRange, mEndRangeIndex, mEndTime, WsfLaunchComputer::mEndTime, mIterCount, mLastRange, mLaunchLocXYZ, mSA_Table, and mTargetDataPtr.
Referenced by WsfBallisticMissileLaunchComputer::ComputeAirIntercept(), and WsfBallisticMissileLaunchComputer::ComputeLaunchWindows().
| TblLookupLUBX<double> WsfBallisticMissileLaunchComputer::SA_Evaluator::mAltitudeLU |
Referenced by CheckForInterceptOnRangeLine(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mBaseTime |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mBegAltitude |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mBegLocXYZ[3] |
Referenced by FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mBegRange |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| int WsfBallisticMissileLaunchComputer::SA_Evaluator::mBegRangeIndex |
Referenced by FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mBegTime |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| bool WsfBallisticMissileLaunchComputer::SA_Evaluator::mCheckGeometry |
Referenced by CheckForInterceptOnRangeLine(), and SA_Evaluator().
| bool WsfBallisticMissileLaunchComputer::SA_Evaluator::mClosing |
Referenced by FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| const WsfBallisticMissileLaunchComputer* WsfBallisticMissileLaunchComputer::SA_Evaluator::mComputerPtr |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mEndAltitude |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mEndLocXYZ[3] |
Referenced by FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mEndRange |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| int WsfBallisticMissileLaunchComputer::SA_Evaluator::mEndRangeIndex |
Referenced by FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mEndTime |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| int WsfBallisticMissileLaunchComputer::SA_Evaluator::mIterCount |
Referenced by FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mLastRange |
Referenced by FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| double WsfBallisticMissileLaunchComputer::SA_Evaluator::mLaunchLocXYZ[3] |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| const SA_Table& WsfBallisticMissileLaunchComputer::SA_Evaluator::mSA_Table |
Referenced by CheckForInterceptOnRangeLine(), FindLaunchWindowEnd(), FindLaunchWindowStart(), and SA_Evaluator().
| const WsfMover::KinematicModel* WsfBallisticMissileLaunchComputer::SA_Evaluator::mTargetDataPtr |