|
WSF
|
#include <WsfArticulatedPart.hpp>


Public Types | |
| enum | SlewMode { cSLEW_FIXED = 0 , cSLEW_AZ = 1 , cSLEW_EL = 2 , cSLEW_AZ_EL = 3 } |
| enum | SlewDirection { cUNDEFINED = 0 , cPOSITIVE = 1 , cNEGATIVE = 2 } |
| enum | { cNOT_CUED = 0x0000 , cMIN_AZ = 0x0001 , cMAX_AZ = 0x0002 , cMIN_EL = 0x0004 , cMAX_EL = 0x0008 , cAT_LIMIT_AZ_MASK = 0x0003 , cAT_LIMIT_EL_MASK = 0x000B , cAT_LIMIT_MASK = 0x000F , cCUED_AZ = 0x0010 , cCUED_EL = 0x0020 , cCUED_AZ_EL = 0x0030 , cCUED_MASK = 0x0030 } |
| enum | CueType { cCUED_TO_NOTHING , cCUED_TO_LOCATION , cCUED_TO_ANGLE } |
| Public Types inherited from WsfPlatformPart | |
| enum | { cLEVEL_ONE_DEBUG = 0x00000001 , cLEVEL_TWO_DEBUG = 0x00000002 } |
| using | InternalMessageQueue = std::queue<WsfMessage*> |
| using | RecipientMessageQueue = std::queue<std::pair<WsfPlatformPart*, WsfMessage*>> |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| Public Types inherited from WsfComponentT< WsfPlatform > | |
| typedef WsfPlatform | ParentType |
| This is needed to support the WsfComponentList template. | |
Public Member Functions | |
| WsfArticulatedPart (const WsfScenario &aScenario, int aPartType) | |
| WsfArticulatedPart (const WsfArticulatedPart &aSrc) | |
| ~WsfArticulatedPart () override | |
| Public Member Functions inherited from WsfPlatformPart | |
| WsfPlatformPart (const WsfScenario &aScenario, int aPartType) | |
| WsfPlatformPart & | operator= (const WsfPlatformPart &aRhs)=delete |
| ~WsfPlatformPart () override | |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| bool | DebugEnabled () const |
| Returns 'true' if debugging is enabled for this instance. | |
| void | SetDebugEnabled (bool aDebugEnabled) |
| unsigned int | GetDebugMask () |
| bool | IsExternallyControlled () const |
| virtual void | SetExternallyControlled (double aSimTime, bool aIsExternallyControlled) |
| int | GetPartType () const |
| const char * | GetScriptClassName () const override |
| WsfSimulation * | GetSimulation () const |
| const WsfScenario & | GetScenario () const |
| WsfStringId | GetComponentName () const override |
| void | ComponentParentChanged (WsfPlatform *aPlatformPtr) override |
| bool | Initialize (double aSimTime) override |
| bool | Initialize2 (double aSimTime) override |
| bool | ProcessInput (UtInput &aInput) override |
| virtual void | Update (double aSimTime) |
| WsfPlatform * | GetPlatform () const |
| virtual void | PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr) |
| virtual void | PlatformDeleted (WsfPlatform *aPlatformPtr) |
| double | GetLastStatusChangeTime () const |
| void | SetLastStatusChangeTime (double aSimTime) |
| Allows a system to set the time at which the device was initialized. | |
| bool | CanBeMadeOperational () const |
| Returns an indication that this system can be made operational. | |
| bool | CanBeMadeNonOperational () const |
| Returns an indication that this system can be made non-operational. | |
| bool | CanBeTurnedOn () const |
| Returns an indication that this system can be turned on. | |
| bool | CanBeTurnedOff () const |
| Returns an indication that this system can be turned off. | |
| bool | IsTurnedOn () const |
| bool | InitiallyTurnedOn () const |
| Is the system to be turned 'on' when added to the simulation? | |
| void | SetInitiallyTurnedOn (bool aInitiallyTurnedOn) |
| Sets if the system is turned on when added to the simulation. | |
| virtual void | TurnOff (double aSimTime) |
| virtual void | TurnOn (double aSimTime) |
| virtual void | SetOperational (double aSimTime) |
| virtual void | SetNonOperational (double aSimTime) |
| virtual void | PartBroken (double aSimTime) |
| virtual void | Restore (double aSimTime) |
| bool | IsOperational () const |
| bool | SetOperational (double aSimTime, bool aMakeOperational) |
| double | GetDamageFactor () const |
| bool | SetDamageFactor (double aSimTime, double aDamageFactor) |
| bool | IsCritical () const |
| void | SetCritical (bool aValue) |
| virtual void | OnPlatformBrokenEvent (double aSimTime) |
| Owning platform has issued a broken event. | |
| bool | IsBroken () const |
| WsfInternalLinks & | GetInternalLinks () |
| Return the internal links for this part. | |
| virtual bool | HasInternalLinks () const |
| Does this platform part have a communication link to other platform parts? | |
| virtual bool | ProcessMessage (double aSimTime, const WsfMessage &aMessage) |
| virtual bool | ReceiveMessage (double aSimTime, const WsfMessage &aMessage) |
| virtual void | SendMessage (double aSimTime, const WsfMessage &aMessage) |
| virtual void | SendMessageTo (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId) |
| void | SendMessageToProcessor (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId) |
| virtual void | SendQueuedMessages (double aSimTime) |
| const WsfCategoryList & | GetCategories () const |
| Get the categories to which this part belongs. | |
| void | AddCategory (WsfStringId aCategoryId) |
| Adds the provided category to the platform part's category list. | |
| bool | IsCategoryMember (WsfStringId aCategoryId) const |
| const WsfGroupList & | GetGroups () const |
| Get the groups to which this platform part belongs. | |
| void | JoinGroup (WsfGroup *aGroupPtr) |
| Join the given group. | |
| void | LeaveGroup (WsfGroup *aGroupPtr) |
| Leave the given group. | |
| bool | IsGroupMember (WsfStringId aGroupId) |
| virtual double | GetUpdateInterval () const =0 |
| virtual void | SetUpdateInterval (double aUpdateInterval)=0 |
| unsigned int | GetUpdateEventEpoch () const |
| void | IncrementUpdateEventEpoch () |
| bool | UpdateEventActive () const |
| Is an 'Update' event active? | |
| void | SetUpdateEventActive (bool aUpdateEventActive) |
| Indicate if the 'Update' event is active. | |
| 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 |
| virtual WsfObject * | Clone () const =0 |
| 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) |
| Public Member Functions inherited from WsfComponentT< WsfPlatform > | |
| WsfComponentT () | |
| WsfComponentT (const WsfComponentT &) noexcept | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| ParentType * | GetComponentParent () const |
| void | SetComponentParent (ParentType *aParentPtr) |
| Public Member Functions inherited from WsfComponent | |
| virtual | ~WsfComponent ()=default |
| virtual WsfComponent * | CloneComponent () const =0 |
| virtual int | GetComponentInitializationOrder () const |
| template<typename T> | |
| bool | QueryInterfaceT (T *&aRolePtr) |
| bool | ComponentHasRole (int aRole) |
| Returns true if the component has the specified role. | |
| virtual bool | PreInitialize (double aSimTime) |
| virtual void | PreInput () |
| Public Member Functions inherited from WsfUniqueId | |
| WsfUniqueId () | |
| Construtor initializes the unique identifier to 0. | |
| WsfUniqueId (const WsfUniqueId &) | |
| Copy constructor initializes the unique identifier to 0. | |
| WsfUniqueId & | operator= (const WsfUniqueId &) |
| unsigned int | GetUniqueId () const |
| Get the unique identifier assigned to this object. | |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| For XIO (de)serialization. | |
| Public Member Functions inherited from WsfAuxDataEnabled | |
| WsfAuxDataEnabled ()=default | |
| WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default | |
| WsfAuxDataEnabled & | operator= (const WsfAuxDataEnabled &aRhs) |
| WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default | |
| WsfAuxDataEnabled & | operator= (WsfAuxDataEnabled &&)=default |
| virtual | ~WsfAuxDataEnabled () noexcept |
| void | SetAuxData (const WsfAttributeContainer &aAuxData) |
| void | DeleteAuxData () |
| Delete the aux data container from the object. | |
| void | MergeAuxData (const WsfAuxDataEnabled &aSrc) |
| Merge the object's aux data with aux data from an existing object. | |
| void | UpdateAuxData (const WsfAuxDataEnabled &aSrc) |
| Update the object's aux data with aux data from an existing object. | |
| bool | HasAuxData () const |
| Returns true if this object has aux data. | |
| bool | ProcessInput (UtInput &aInput) |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| (De)serialization for XIO | |
| WsfAttributeContainer & | GetAuxData () |
| const WsfAttributeContainer & | GetAuxData () const noexcept |
| const WsfAttributeContainer & | GetAuxDataConst () const noexcept |
| Public Member Functions inherited from WsfSinglePlatformObserver | |
| virtual | ~WsfSinglePlatformObserver () |
| virtual void | OnPlatformDeleting (double aSimTime, WsfPlatform *aPlatformPtr) |
| Called before the platform is actually deleted. | |
| virtual void | OnPlatformDeleted (double aSimTime, WsfPlatform *aPlatformPtr) |
| Called just before the platform is removed from the simulation. | |
Static Public Attributes | |
| static constexpr double | cINFINITE_SLEW_RATE = 1.0E+12 * UtMath::cRAD_PER_DEG |
| static constexpr double | cALMOST_FULL_CIRCLE = 359.999 * UtMath::cRAD_PER_DEG |
| Static Public Attributes inherited from WsfAuxDataEnabled | |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataAccessed |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataDestroyed |
Visual Articulation Methods. | |
These methods are used to control part velocity for dynamic articulation. This is primarily used only for visualization purposes. | |
| UtCallbackListN< void(double)> | SlewComplete |
| WsfMaskingPattern * | mMaskingPatternPtr |
| The masking factor. | |
| WsfStringId | mMaskingPatternName |
| WsfStringId | mMaskingPatternStateId |
| double | mYaw |
| The orientation of the device coordinate system. | |
| double | mPitch |
| double | mRoll |
| double | mDX |
| The velocity of the part. | |
| double | mDY |
| double | mDZ |
| double | mTilt |
| The tilt angle above below the scan plane. | |
| double | mAzSlewRate |
| The slewing rates and limits of the device with respect to the device coordinate system. | |
| double | mElSlewRate |
| double | mMaxAzSlewRate |
| double | mMaxElSlewRate |
| double | mMinAzSlew |
| double | mMaxAzSlew |
| double | mMinElSlew |
| double | mMaxElSlew |
| SlewMode | mSlewMode |
| SlewDirection | mAzSlewDirection |
| int | mSlewState |
| double | mAzCueRate |
| The cueing rates and limits of the device with respect to the device coordinate system. | |
| double | mElCueRate |
| double | mMinAzCue |
| double | mMaxAzCue |
| double | mMinElCue |
| double | mMaxElCue |
| SlewMode | mCueMode |
| The directions (az and/or el) in which cueing can be performed. | |
| CueType | mCueType |
| bool | mTransientCueActive |
| 'true' if the transient cue is defined | |
| double | mCuedLocationWCS [3] |
| The cued location if mCueType is cCUED_TO_LOCATION. | |
| double | mCuedAz |
| The cued azimuth if mCueType == cCUED_TO_ANGLE. | |
| double | mCuedEl |
| The cued elevation if mCueType == cCUED_TO_ANGLE. | |
| double | mTransientCuedLocationWCS [3] |
| The transient cue, if mTransientCueActive is true. | |
| double | mActualCuedAz |
| The actual cued location, subject to the slewing limits. | |
| double | mActualCuedEl |
| double | mCurrentAz |
| double | mCurrentEl |
| double | mLastAzElUpdateTime |
| The time when the current az/el were last updated. | |
| double | mLastUpdateTime |
| The time when the x/y/z position was last updated. | |
| bool | mSlewMethodCoordinated |
| 'true' if slcue rates are dynamically adjusted so the target angles are reached simultaneously. | |
| bool | mIsSlewing |
| 'true' if the part is slewing to satisfy a cueing request. | |
| bool | mIsPrivate |
| 'true' if the part is considered 'private' and not to visible to external simulations. | |
| void | SetPositionRateECS (const double aDX, const double aDY, const double aDZ) |
| void | GetCurrentPositionRateECS (double &aDX, double &aDY, double &aDZ) const |
| double | GetDX () const |
| double | GetDY () const |
| double | GetDZ () const |
| void | EnableArticulationUpdates (double aSimTime, double aInterval) |
| void | DisableArticulationUpdates (double aSimTime) |
| void | SetArticulationUpdateInterval (double aUpdateInterval) |
| double | GetArticulationUpdateInterval () const |
| unsigned int | GetArticulationUpdateEventEpoch () const |
| void | IncrementArticulationUpdateEventEpoch () |
| bool | ArticulationUpdateEventActive () const |
| Is an 'Update' event active? | |
| void | SetArticulationUpdateEventActive (bool aUpdateEventActive) |
| Indicate if the 'Update' event is active. | |
| virtual double | TimeToCue (double aDesiredAz, double aDesiredEl) const |
| bool | FullCircle () const |
| virtual double | GetAzimuthRotationRate () const |
| virtual double | GetElevationRotationRate () const |
| void | SlewToOrientation (double aSimTime, double aDesiredAz, double aDesiredEl) |
| virtual void | TimeToRotate (double &aDeltaAz, double &aDeltaEl, double &aAzRate, double &aElRate, double &aTimeToAz, double &aTimeToEl) const |
| void | UpdateCuedOrientation (double aSimTime) |
| bool | UpdateOrientation (double aSimTime) |
Common infrastructure methods. | |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| const char * | GetScriptClassName () const override |
| bool | Initialize (double aSimTime) override |
| bool | ProcessInput (UtInput &aInput) override |
| void | SetPlatform (WsfPlatform *aPlatformPtr) override |
| virtual void | UpdatePosition (double aSimTime) |
Overrides of WsfSinglePlatformObserver. | |
| void | OnPlatformUpdated (double, WsfPlatform *) override |
Slewing methods. | |
| SlewMode | GetSlewMode () const |
| Get the allowed slewing mode. | |
| double | GetAzSlewRate () const |
| Get the current azimuth slew rate. | |
| double | GetElSlewRate () const |
| Get the current elevation slew rate. | |
| double | GetMaxAzSlewRate () const |
| Get the maximum allowable azimuth slew rate. | |
| double | GetMaxElSlewRate () const |
| Get the maximum allowable elevation slew rate. | |
| double | GetMinAzSlew () const |
| Gets the minimum azimuth slew limit. | |
| double | GetMaxAzSlew () const |
| Gets the maximum azimuth slew limit. | |
| double | GetMinElSlew () const |
| Gets the minimum elevation slew limit. | |
| double | GetMaxElSlew () const |
| Gets the maximum elevation slew limit. | |
| int | GetSlewState () const |
| Get the slew limit state. | |
| void | SetSlewMode (SlewMode aSlewMode) |
| Set the allowed slewing mode. | |
| void | SetSlewRates (double aAzSlewRate, double aElSlewRate) |
| Set the angular slew rates, limited by the maximum slew rates. | |
| void | SetAzSlewLimits (double aMinAzSlew, double aMaxAzSlew) |
| Set the azimuth slew limits. | |
| void | SetElSlewLimits (double aMinElSlew, double aMaxElSlew) |
| Set the elevation slew limits. | |
| void | SetAzimuthSlewDirection (SlewDirection aAzSlewDirection) |
| Set the azimuth slew direction. | |
| bool | IsSlewing () const |
| bool | WithinSlewLimits (double aThisToTgtAz, double aThisToTgtEl) const |
Cue limit methods. | |
The cue limits are maintained separate and are forced to be subset of the slew limits. For most uses the cue limits end up being the same as the slew limits, but there are some multi-mode sensors which limit the cueing capability in some modes. | |
| SlewMode | GetCueMode () const |
| Get the allowed cueing mode. | |
| double | GetAzCueRate () const |
| Get the azimuth cue rate. | |
| double | GetElCueRate () const |
| Get the elevation cue rate. | |
| double | GetMinAzCue () const |
| Gets the minimum azimuth cue limit. | |
| double | GetMaxAzCue () const |
| Gets the maximum azimuth cue limit. | |
| double | GetMinElCue () const |
| Gets the minimum elevation cue limit. | |
| double | GetMaxElCue () const |
| Gets the maximum elevation cue limit. | |
| void | SetCueMode (SlewMode aCueMode) |
| Set the allowed cueing mode. | |
| void | SetCueRates (double aAzCueRate, double aElCueRate) |
| Set the angular cueing rates. | |
| void | SetAzCueLimits (double aMinAzCue, double aMaxAzCue) |
| Set the azimuth cueing limits. | |
| void | SetElCueLimits (double aMinElCue, double aMaxElCue) |
| Set the elevation cueing limits. | |
Orientation methods. | |
All angles are in radians! | |
| double | GetRoll () const |
| void | SetRoll (double aRoll) |
| Set the platform-relative (ECS) roll angle of the articulated part. | |
| double | GetPitch () const |
| void | SetPitch (double aPitch) |
| double | GetYaw () const |
| void | SetYaw (double aYaw) |
| Set the platform-relative (ECS) yaw angle of the articulated part. | |
| double | GetTilt () const |
| void | SetTilt (double aTilt) |
| void | GetCurrentOrientationECS (double &aYaw, double &aPitch, double &aRoll) |
| void | GetLOS_UnitVectorWCS (double aUnitLOS_WCS[3]) |
| Get the current WCS Frame Line-Of-Sight unit vector. | |
Cueing methods. | |
An articulated part can have two types of cues:
| |
| CueType | GetCueType () const |
| bool | IsCued () const |
| Get the cued status. | |
| void | ClearCueing () |
| bool | GetActualCuedOrientation (double &aAzimuth, double &aElevation) const |
| void | GetCurrentCuedOrientation (double &aAzimuth, double &aElevation) const |
| bool | GetCuedLocationWCS (double aCuedLocationWCS[3]) const |
| void | SetCuedLocationWCS (const double aCuedLocationWCS[3]) |
| bool | GetCuedOrientation (double &aAzimuth, double &aElevation) const |
| void | SetCuedOrientation (double aAzimuth, double aElevation) |
| void | GetAbsoluteCuedOrientation (double &aAzimuth, double &aElevation, double aBaseNED[3]) |
| void | ClearTransientCue () |
| bool | TransientCueActive () const |
| bool | GetTransientCuedLocationWCS (double aCuedLocationWCS[3]) const |
| void | SetTransientCuedLocationWCS (const double aCuedLocationWCS[3]) |
Structure masking methods. | |
| WsfStringId | GetMaskingPatternState () const |
| void | SetMaskingPatternState (WsfStringId aMaskingPatternStateId) |
| double | GetMaskingPatternFactor (double aViewAzPCS, double aViewElPCS, const double aViewVecWCS[3]) |
External visibility control. | |
An articulated part that is declared 'private' will not be visible to external simulations. This is primarily used to hide certain sensors and interferers from the DIS/HLA interface that are presented to the interface by some other means. (e.g.: WsfCompositeSensor in synchronous mode)
| |
| void | SetIsPrivate (bool aIsPrivate) |
| bool | IsPrivate () const |
Additional Inherited Members | |
| WsfPlatformPart (const WsfPlatformPart &aSrc) | |
| Copy constructor (for Clone()). | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
| Protected Member Functions inherited from WsfUniqueId | |
| void | AssignUniqueId (WsfSimulation *aSimulationPtr) |
A base class for platform part that represents an articulated part of the platform.
This class is intended to be the base class for those parts of a platform that have a position and orientation on the platform. The class provides the means to specify the location and orientation of the part and to 'cue' the part.
Example uses of this class would be sensor and comm systems.
| anonymous enum |
| WsfArticulatedPart::WsfArticulatedPart | ( | const WsfScenario & | aScenario, |
| int | aPartType ) |
References cCUED_TO_NOTHING, cINFINITE_SLEW_RATE, cNOT_CUED, cSLEW_AZ_EL, cSLEW_FIXED, cUNDEFINED, mActualCuedAz, mActualCuedEl, mAzCueRate, mAzSlewDirection, mAzSlewRate, mCuedAz, mCuedEl, mCuedLocationWCS, mCueMode, mCueType, mCurrentAz, mCurrentEl, mDX, mDY, mDZ, mElCueRate, mElSlewRate, mIsPrivate, mIsSlewing, mLastAzElUpdateTime, mLastUpdateTime, mMaskingPatternName, mMaskingPatternPtr, mMaskingPatternStateId, mMaxAzCue, mMaxAzSlew, mMaxAzSlewRate, mMaxElCue, mMaxElSlew, mMaxElSlewRate, mMinAzCue, mMinAzSlew, mMinElCue, mMinElSlew, mPitch, mRoll, mSlewMethodCoordinated, mSlewMode, mSlewState, mTilt, mTransientCueActive, mTransientCuedLocationWCS, mYaw, and WsfPlatformPart::WsfPlatformPart().
Referenced by wsf::comm::Comm::Comm(), wsf::comm::Comm::Comm(), wsf::comm::Comm::QueryInterface(), WsfDirectedEnergyWeapon::QueryInterface(), WsfSensor::QueryInterface(), WsfVisualPart::QueryInterface(), WsfArticulatedPart(), WsfSensor::WsfSensor(), WsfSensor::WsfSensor(), WsfVisualPart::WsfVisualPart(), WsfVisualPart::WsfVisualPart(), WsfWeapon::WsfWeapon(), and WsfWeapon::WsfWeapon().
| WsfArticulatedPart::WsfArticulatedPart | ( | const WsfArticulatedPart & | aSrc | ) |
References mActualCuedAz, mActualCuedEl, mAzCueRate, mAzSlewDirection, mAzSlewRate, mCuedAz, mCuedEl, mCuedLocationWCS, mCueMode, mCueType, mCurrentAz, mCurrentEl, mDX, mDY, mDZ, mElCueRate, mElSlewRate, mIsPrivate, mIsSlewing, mLastAzElUpdateTime, mLastUpdateTime, mMaskingPatternName, mMaskingPatternPtr, mMaskingPatternStateId, mMaxAzCue, mMaxAzSlew, mMaxAzSlewRate, mMaxElCue, mMaxElSlew, mMaxElSlewRate, mMinAzCue, mMinAzSlew, mMinElCue, mMinElSlew, mPitch, mRoll, mSlewMethodCoordinated, mSlewMode, mSlewState, mTilt, mTransientCueActive, mTransientCuedLocationWCS, mYaw, WsfArticulatedPart(), and WsfPlatformPart::WsfPlatformPart().
|
override |
References WsfPlatform::DetachObserver(), and WsfPlatformPart::GetPlatform().
|
inline |
Is an 'Update' event active?
| void WsfArticulatedPart::ClearCueing | ( | ) |
Indicate that the 'non-transient' cue is no longer active.
References cCUED_TO_NOTHING, WsfSimulation::GetSimTime(), WsfPlatformPart::GetSimulation(), mCueType, mLastUpdateTime, mPitch, mRoll, mTilt, mTransientCueActive, mYaw, simTime, and UpdatePosition().
Referenced by WsfCompositeSensor::CompositeMode::AttemptToDetect(), WsfOrbitalLaunchComputer::ComputeLEO_Insertion(), and GetAbsoluteCuedOrientation().
| void WsfArticulatedPart::ClearTransientCue | ( | ) |
Indicate that the transient cue is no longer active. This clears any transient cue defined by SetTransientCuedLocationWCS(). If the device has a non- transient cue (as defined by SetCuedLocationWCS()) then it becomes the active cue.
References cCUED_TO_NOTHING, mCueType, mPitch, mRoll, mTilt, mTransientCueActive, and mYaw.
Referenced by WsfCompositeSensor::CompositeMode::AttemptToDetect(), WsfOrbitalLaunchComputer::ComputeLEO_Insertion(), GetAbsoluteCuedOrientation(), WsfLaserDesignator::PerformScheduledDetections(), WsfOTH_RadarSensor::PerformScheduledDetections(), WsfRadarSensor::PerformScheduledDetections(), and WsfSensor::PerformScheduledDetections().
| void WsfArticulatedPart::DisableArticulationUpdates | ( | double | aSimTime | ) |
References IncrementArticulationUpdateEventEpoch().
| void WsfArticulatedPart::EnableArticulationUpdates | ( | double | aSimTime, |
| double | aInterval ) |
|
inlineprotected |
References cALMOST_FULL_CIRCLE, mMaxAzSlew, and mMinAzSlew.
Referenced by SlewToOrientation(), and TimeToRotate().
| void WsfArticulatedPart::GetAbsoluteCuedOrientation | ( | double & | aAzimuth, |
| double & | aElevation, | ||
| double | aBaseNED[3] ) |
Gets the part specified azimuth and elevation relative to the horizontal plane (no pitch or roll) of the host platform.
| aAzimuth | The desired angle (in radians) with respect to aBaseNED. |
| aElevation | The desired angle (in radians) with respect to aBaseNED. |
| aBaseNED | The NED values in which to compare to |
References ClearCueing(), ClearTransientCue(), GetLocationLLA(), WsfPlatformPart::GetSimulation(), mCurrentAz, mCurrentEl, SetCuedOrientation(), and UpdatePosition().
| bool WsfArticulatedPart::GetActualCuedOrientation | ( | double & | aAzimuth, |
| double & | aElevation ) const |
Get the actual cued orientation, subject to the slewing limits.
| aAzimuth | The actual cued azimuth, subject to the azimuth slewing limits. This will be zero if a cue has not active or azimuth cueing is not allowed. |
| aElevation | The actual cued elevation, subject to the elevation slewing limits. This will be zero if a cue is not active or elevation cueing is not allowed. |
References cCUED_TO_NOTHING, cSLEW_FIXED, mActualCuedAz, mActualCuedEl, mCueType, mSlewMode, and mTransientCueActive.
|
inline |
Get the current update event 'epoch'. The event 'epoch' is used to recognize and ignore obsolete events.
|
inline |
|
inline |
Get the azimuth cue rate.
References mAzCueRate.
|
protectedvirtual |
References mAzCueRate, and mAzSlewRate.
Referenced by SlewToOrientation(), and TimeToRotate().
|
inline |
Get the current azimuth slew rate.
References mAzSlewRate.
|
overridevirtual |
Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:
Implements WsfComponent.
Reimplemented in WsfDirectedEnergyWeapon, WsfRF_Jammer, WsfSensor, WsfVisualPart, and WsfWeapon.
References cWSF_COMPONENT_ARTICULATED_PART, cWSF_COMPONENT_NULL, and cWSF_COMPONENT_PLATFORM_PART.
| bool WsfArticulatedPart::GetCuedLocationWCS | ( | double | aCuedLocationWCS[3] | ) | const |
Get the value set by SetCuedLocationWCS.
| aCuedLocationWCS | The current cued location if it was defined by SetCuedLocationWCS. |
References cCUED_TO_LOCATION, mCuedLocationWCS, mCueType, and ok.
Referenced by WsfEOIR_Sensor::Update().
| bool WsfArticulatedPart::GetCuedOrientation | ( | double & | aAzimuth, |
| double & | aElevation ) const |
Sets the reference parameters with the cued azimuth and elevation of the device. If the device is not cued to an orientation, no action is done.
| aAzimuth | Set to the current cued azimuth. |
| aElevation | Set to the current cued elevation. |
References cCUED_TO_ANGLE, mCuedAz, mCuedEl, mCueType, and ok.
Referenced by WsfBMSensorInfoRecord::CueToAzimuth().
|
inline |
Get the allowed cueing mode.
References mCueMode.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna().
|
inline |
References mCueType.
Referenced by WsfSAR_Sensor::SAR_Mode::ComputeFOV(), and WsfEOIR_Sensor::Update().
| void WsfArticulatedPart::GetCurrentCuedOrientation | ( | double & | aAzimuth, |
| double & | aElevation ) const |
Get the current cued orientation.
This returns the azimuth and elevation of the part as determined by the last call to UpdatePosition(). The return values depending on if the part was or is cued, and if cue/slew rates are imposed.
| aAzimuth | The current cued azimuth. |
| aElevation | The current cued elevation |
References mCurrentAz, and mCurrentEl.
Referenced by WsfBMSensorInfoRecord::CueToAzimuth(), WsfBMSensorInfoRecord::GetAz(), WsfDisInterface::UpdateBeamFromXmtr(), and WsfMilEventPipe::UpdateWeaponArticulation().
| void WsfArticulatedPart::GetCurrentOrientationECS | ( | double & | aYaw, |
| double & | aPitch, | ||
| double & | aRoll ) |
Get the current platform-relative (ECS) orientation of an articulated part. If the part is not cued then it simply returns its standard yaw, pitch and roll angles. If the part is cued then it returns the yaw and pitch angles that result from the cue, with roll set to zero.
| aYaw | The azimuth angle with respect to the entity. |
| aPitch | The elevation angle with respect to the entity. |
| aRoll | The roll angle. |
References WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), mPitch, mRoll, mTilt, mYaw, and UpdateOrientation().
Referenced by WsfEventPipeInterface::UpdateArticulation(), WsfDisInterface::UpdateBeamFromXmtr(), and WsfDisInterface::UpdateSystemFromSensor().
| void WsfArticulatedPart::GetCurrentPositionRateECS | ( | double & | aDX, |
| double & | aDY, | ||
| double & | aDZ ) const |
|
inline |
References mDX.
|
inline |
References mDY.
|
inline |
References mDZ.
|
inline |
Get the elevation cue rate.
References mElCueRate.
|
protectedvirtual |
References mElCueRate, and mElSlewRate.
Referenced by SlewToOrientation(), and TimeToRotate().
|
inline |
Get the current elevation slew rate.
References mElSlewRate.
Referenced by WsfBMSensorInfoRecord::SetAzSlewRate().
| void WsfArticulatedPart::GetLOS_UnitVectorWCS | ( | double | aUnitLOS_WCS[3] | ) |
Get the current WCS Frame Line-Of-Sight unit vector.
References WsfPlatformPart::GetSimulation(), and UpdateOrientation().
Referenced by WsfLaserDesignator::Update(), and WsfLaserTracker::Update().
| double WsfArticulatedPart::GetMaskingPatternFactor | ( | double | aViewAzPCS, |
| double | aViewElPCS, | ||
| const double | aViewVecWCS[3] ) |
Return the masking factor for the specified viewing angles.
This is called from WsfEM_Interaction::ComputeMaskingFactor to determine the masking factor for the current interaction. It could obviously be called
The first two arguments could have been eliminated but they had already been computed by 'BeginXXXInteraction'. This eliminates the need to recompute them, which involves several trig/math calls.
| aViewAzPCS | The azimuth viewing angle in the part coordinate system. |
| aViewElPCS | The elevation viewing angle in the part coordinate system. |
| aViewVecWCS | The unit viewing vector in the world coordinate system. This is used if a platform-relative factor is defined. |
References mMaskingPatternPtr, and mMaskingPatternStateId.
Referenced by WsfEM_Interaction::ComputeMaskingFactor().
|
inline |
References mMaskingPatternStateId.
|
inline |
Gets the maximum azimuth cue limit.
References mMaxAzCue.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), UCI_Util::CheckLimits(), and WsfSAR_Sensor::SAR_Mode::ComputeGeometry().
|
inline |
Gets the maximum azimuth slew limit.
References mMaxAzSlew.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), WsfSensor::TurnOn(), and WsfExtEmission::UpdateBeamLimits().
|
inline |
Get the maximum allowable azimuth slew rate.
References mMaxAzSlewRate.
|
inline |
Gets the maximum elevation cue limit.
References mMaxElCue.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), UCI_Util::CheckLimits(), and WsfSAR_Sensor::SAR_Mode::ComputeGeometry().
|
inline |
Gets the maximum elevation slew limit.
References mMaxElSlew.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), WsfSensor::TurnOn(), WsfExtEmission::UpdateBeamLimits(), and WsfEM_Rcvr::UpdateNoisePower().
|
inline |
Get the maximum allowable elevation slew rate.
References mMaxElSlewRate.
|
inline |
Gets the minimum azimuth cue limit.
References mMinAzCue.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), UCI_Util::CheckLimits(), and WsfSAR_Sensor::SAR_Mode::ComputeGeometry().
|
inline |
Gets the minimum azimuth slew limit.
References mMinAzSlew.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), WsfSensor::TurnOn(), and WsfExtEmission::UpdateBeamLimits().
|
inline |
Gets the minimum elevation cue limit.
References mMinElCue.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), UCI_Util::CheckLimits(), and WsfSAR_Sensor::SAR_Mode::ComputeGeometry().
|
inline |
Gets the minimum elevation slew limit.
References mMinElSlew.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), WsfSensor::TurnOn(), WsfExtEmission::UpdateBeamLimits(), and WsfEM_Rcvr::UpdateNoisePower().
|
inline |
References mPitch.
Referenced by WsfLaunchHandoffData::SetLaunchPlatformData(), WsfEM_Rcvr::UpdateNoisePower(), and UT_DEFINE_SCRIPT_METHOD().
|
inline |
References mRoll.
Referenced by WsfLaunchHandoffData::SetLaunchPlatformData(), and UT_DEFINE_SCRIPT_METHOD().
|
override |
|
inline |
Get the allowed slewing mode.
References mSlewMode.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), WsfWeapon::CueToTarget(), WsfSectorScanSensorScheduler::Initialize(), WsfSensor::TurnOn(), WsfDisInterface::UpdateBeamFromXmtr(), WsfExtEmission::UpdateBeamLimits(), WsfEM_Rcvr::UpdateNoisePower(), WsfMilEventPipe::UpdateWeaponArticulation(), and WsfDisInterface::UpdateXmtrFromBeam().
|
inline |
Get the slew limit state.
References mSlewState.
Referenced by WsfSAR_Sensor::SAR_Mode::ComputeGeometry().
|
inline |
| bool WsfArticulatedPart::GetTransientCuedLocationWCS | ( | double | aCuedLocationWCS[3] | ) | const |
Return the current transient cue location.
References mTransientCueActive, and mTransientCuedLocationWCS.
Referenced by WsfOTH_RadarSensor::PerformScheduledDetections(), and WsfRadarSensor::PerformScheduledDetections().
|
inline |
References mYaw.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), WsfLaunchHandoffData::SetLaunchPlatformData(), and UT_DEFINE_SCRIPT_METHOD().
|
inline |
Increment the 'epoch' for the update event. This should be called whenever the update interval is changed or if the processor is turned off or on.
Referenced by DisableArticulationUpdates(), and EnableArticulationUpdates().
|
overridevirtual |
Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).
The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
Reimplemented in WsfBeamDirector, WsfChaffWeapon, WsfCompositeSensor, WsfCuedLaserWeapon, WsfEOIR_Sensor, WsfExplicitWeapon, WsfGeometricSensor, WsfImplicitWeapon, WsfIRST_Sensor, WsfJTIDS_Terminal, WsfLADAR_Sensor, WsfLaserDesignator, WsfLaserTracker, WsfLaserWeapon, WsfOpticalSensor, WsfOTH_RadarSensor, WsfPassiveSensor, WsfRadarSensor, WsfRF_Jammer, WsfSAR_Sensor, WsfSensor, WsfSOSM_Sensor, WsfSurfaceWaveRadarSensor, WsfVisualPart, and WsfWeapon.
References WsfObjectTypeList< T >::Find(), WsfMaskingPatternTypes::Get(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetScenario(), WsfPlatformPart::Initialize(), mAzSlewRate, mElSlewRate, mLastAzElUpdateTime, mLastUpdateTime, mMaskingPatternName, mMaskingPatternPtr, mMaxAzSlewRate, mMaxElSlewRate, and ok.
Referenced by wsf::comm::Comm::Initialize(), WsfSensor::Initialize(), WsfVisualPart::Initialize(), and WsfWeapon::Initialize().
|
inline |
Get the cued status.
References cCUED_TO_NOTHING, and mCueType.
Referenced by WsfEM_ALARM_Antenna::antenna::antenna(), WsfPassiveSensor::PassiveMode::AttemptToDetect(), WsfL16::SystemStatusPart::SendLandPointSystemStatus(), WsfDisInterface::UpdateBeamFromXmtr(), and WsfMilEventPipe::UpdateWeaponArticulation().
|
inline |
References mIsPrivate.
| bool WsfArticulatedPart::IsSlewing | ( | ) | const |
Return 'true' if the part is slewing to meet a cueing request.
References cCUED_TO_NOTHING, cSLEW_FIXED, mCueType, mIsSlewing, mSlewMode, and mTransientCueActive.
Referenced by WsfBeamDirector::WsfBeamDirectorMode::AttemptToDetect().
|
inlineoverridevirtual |
A callback from the platform subject. This class attaches itself as an observer to the associated platform and through this method is notified whenever the platform is updated (moved).
Reimplemented from WsfSinglePlatformObserver.
|
overridevirtual |
Process input from a generic source.
Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
Reimplemented in WsfBeamDirector, WsfChaffWeapon, WsfCompositeSensor, WsfCuedLaserWeapon, WsfEOIR_Sensor, WsfExplicitWeapon, WsfGeometricSensor, WsfLADAR_Sensor, WsfLaserDesignator, WsfLaserTracker, WsfLaserWeapon, WsfNullSensor, WsfOTH_RadarSensor, WsfP6DOF_ExplicitWeapon, WsfPassiveSensor, WsfRadarSensor, WsfRF_Jammer, WsfSAR_Sensor, WsfSensor, WsfSOSM_Sensor, WsfSurfaceWaveRadarSensor, WsfVisualPart, and WsfWeapon.
References cSLEW_AZ, cSLEW_AZ_EL, cSLEW_EL, cSLEW_FIXED, mMaskingPatternName, mMaxAzSlew, mMaxAzSlewRate, mMaxElSlew, mMaxElSlewRate, mMinAzSlew, mMinElSlew, mSlewMethodCoordinated, mSlewMode, WsfPlatformPart::ProcessInput(), SetPitch(), SetRoll(), SetTilt(), and SetYaw().
Referenced by wsf::comm::Comm::ProcessInput(), WsfSensor::ProcessInput(), WsfVisualPart::ProcessInput(), and WsfWeapon::ProcessInput().
|
overridevirtual |
Requests a component's role interface. A component can support one or more roles.
| aRole | The role whose interface is to be returned. |
Implements WsfComponent.
Reimplemented in WsfDirectedEnergyWeapon, WsfRF_Jammer, WsfSensor, WsfVisualPart, and WsfWeapon.
References cWSF_COMPONENT_ARTICULATED_PART, and WsfPlatformPart::QueryInterface().
Referenced by WsfWeapon::QueryInterface().
|
inline |
Indicate if the 'Update' event is active.
|
inline |
Set the time interval between the periodic calls to Update(). A value of less than or equal to zero indicates periodic updates are not to be performed.
| aUpdateInterval | The new update interval. |
Referenced by EnableArticulationUpdates().
|
inline |
Set the azimuth cueing limits.
References mMaxAzCue, and mMinAzCue.
Referenced by WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), WsfSAR_Sensor::Initialize(), WsfSensor::TurnOn(), and WsfSensorMode::UpdateSensorCueingLimits().
|
inline |
Set the azimuth slew direction.
References mAzSlewDirection.
|
inline |
Set the azimuth slew limits.
References mMaxAzSlew, and mMinAzSlew.
Referenced by WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), and WsfSAR_Sensor::Initialize().
| void WsfArticulatedPart::SetCuedLocationWCS | ( | const double | aCuedLocationWCS[3] | ) |
Cue the device to the specified WCS location. This will define the 'non-transient' cue (replacing any existing non-transient cue). If a 'transient' cue is active then this cue will not become effective until the 'transient' cue is cleared.
| aCuedLocationWCS | The desired cue location. |
References cCUED_TO_LOCATION, WsfSimulation::GetSimTime(), WsfPlatformPart::GetSimulation(), mCuedLocationWCS, mCueType, mLastUpdateTime, simTime, and UpdatePosition().
Referenced by WsfCompositeSensor::CompositeMode::AttemptToDetect(), Utility::CueSensorToTarget(), WsfWeapon::CueToTarget(), and WsfLaserTracker::Update().
| void WsfArticulatedPart::SetCuedOrientation | ( | double | aAzimuth, |
| double | aElevation ) |
Cue the device to the specified azimuth and elevation. This will define the 'non-transient' cue (replacing any existing non-transient cue). If a 'transient' cue is active then this cue will not become effective until the 'transient' cue is cleared.
| aAzimuth | The desired angle with respect to the part coordinate system. |
| aElevation | The desired angle with respect to the part coordinate system. |
References cCUED_TO_ANGLE, WsfSimulation::GetSimTime(), WsfPlatformPart::GetSimulation(), mCuedAz, mCuedEl, mCueType, mLastUpdateTime, simTime, and UpdatePosition().
Referenced by WsfCompositeSensor::CompositeMode::AttemptToDetect(), WsfBMSensorInfoRecord::CueToAzimuth(), GetAbsoluteCuedOrientation(), WsfLaserTracker::Initialize(), WsfLaserTracker::TurnOff(), WsfLaserTracker::TurnOn(), and WsfDisInterface::UpdateXmtrFromBeam().
|
inline |
Set the allowed cueing mode.
References mCueMode.
Referenced by WsfSensor::TurnOn(), and WsfSensorMode::UpdateSensorCueingLimits().
|
inline |
Set the angular cueing rates.
References mAzCueRate, and mElCueRate.
Referenced by WsfSensorMode::UpdateSensorCueingLimits().
|
inline |
Set the elevation cueing limits.
References mMaxElCue, and mMinElCue.
Referenced by WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), WsfSAR_Sensor::Initialize(), WsfSensor::TurnOn(), and WsfSensorMode::UpdateSensorCueingLimits().
|
inline |
Set the elevation slew limits.
References mMaxElSlew, and mMinElSlew.
Referenced by WsfSAR_Sensor::SAR_Mode::ComputeGeometry(), and WsfSAR_Sensor::Initialize().
|
inline |
References mIsPrivate.
Referenced by WsfCompositeSensor::Initialize().
|
inline |
References mMaskingPatternStateId.
| void WsfArticulatedPart::SetPitch | ( | double | aPitch | ) |
Set the platform-relative (ECS) pitch angle of the articulated part.
References mPitch, mRoll, mTilt, and mYaw.
Referenced by wsf::six_dof::Mover::InitializeSubobject(), WsfP6DOF_Mover::InitializeSubobject(), and ProcessInput().
|
overridevirtual |
Set the platform to which this part is associated.
| aPlatformPtr | Pointer to the containing platform. |
Reimplemented from WsfPlatformPart.
Reimplemented in WsfExplicitWeapon, and WsfSensor.
References WsfPlatform::AttachObserver(), WsfPlatform::DetachObserver(), WsfPlatformPart::GetPlatform(), and WsfPlatformPart::SetPlatform().
Referenced by WsfDisDirectedEnergyFire::Process(), WsfWeaponServer::ProcessCommand(), WsfExplicitWeapon::SetPlatform(), and WsfSensor::SetPlatform().
| void WsfArticulatedPart::SetPositionRateECS | ( | const double | aDX, |
| const double | aDY, | ||
| const double | aDZ ) |
| void WsfArticulatedPart::SetRoll | ( | double | aRoll | ) |
Set the platform-relative (ECS) roll angle of the articulated part.
References mPitch, mRoll, mTilt, and mYaw.
Referenced by wsf::six_dof::Mover::InitializeSubobject(), WsfP6DOF_Mover::InitializeSubobject(), and ProcessInput().
|
inline |
Set the allowed slewing mode.
References mSlewMode.
| void WsfArticulatedPart::SetSlewRates | ( | double | aAzSlewRate, |
| double | aElSlewRate ) |
Set the angular slew rates, limited by the maximum slew rates.
References mAzSlewRate, mElSlewRate, mMaxAzSlewRate, and mMaxElSlewRate.
Referenced by WsfBMSensorInfoRecord::SetAzSlewRate().
| void WsfArticulatedPart::SetTilt | ( | double | aTilt | ) |
| void WsfArticulatedPart::SetTransientCuedLocationWCS | ( | const double | aCuedLocationWCS[3] | ) |
Set the 'transient' cue to the specified WCS location. This will define the 'transient' cue (replacing any existing transient cue). If a 'non-transient' cue (as defined SetCuedLocationWCS) is active then it will be temporarily suspended. The 'non-transient' cue will remain active until deactivated by ClearTransientCue().
| aCuedLocationWCS | The desired cue location. |
References mTransientCueActive, and mTransientCuedLocationWCS.
Referenced by WsfCompositeSensor::CompositeMode::AttemptToDetect().
| void WsfArticulatedPart::SetYaw | ( | double | aYaw | ) |
Set the platform-relative (ECS) yaw angle of the articulated part.
References mPitch, mRoll, mTilt, and mYaw.
Referenced by wsf::six_dof::Mover::InitializeSubobject(), WsfP6DOF_Mover::InitializeSubobject(), and ProcessInput().
|
protected |
Slew the part to the requested orientation.
This is called by UpdateCuedOrientation to perform the actual slewing operation needed to reflect the requested cuing operation. This will attempt to update the orientation subject to the angular rates. that are currently in effect.
| aSimTime | The current simulation time. |
| aDesiredAz | The desired azimuth. |
| aDesiredEl | The desired elevation. |
References cINFINITE_SLEW_RATE, FullCircle(), GetAzimuthRotationRate(), GetElevationRotationRate(), mCurrentAz, mCurrentEl, mIsSlewing, mLastAzElUpdateTime, SlewComplete, and TimeToRotate().
Referenced by UpdateCuedOrientation().
|
virtual |
Calculate the time it takes to rotate a part given the requested Azimuth and Elevation.
| aDesiredAz | the desired azimuth (radians). |
| aDesiredEl | the desired elevation (radians). |
References mCurrentAz, mCurrentEl, and TimeToRotate().
|
protectedvirtual |
References cNEGATIVE, cPOSITIVE, cUNDEFINED, FullCircle(), GetAzimuthRotationRate(), GetElevationRotationRate(), mAzSlewDirection, and mSlewMethodCoordinated.
Referenced by SlewToOrientation(), and TimeToCue().
|
inline |
|
protected |
Update the orientation to reflect the current cue. This is called by UpdateOrientation to attempt to update the orientation to the requested cue.
| aSimTime | The current simulation time. |
Do NOT add mTilt here as it SHOULD get added later
References cCUED_AZ, cCUED_EL, cCUED_TO_LOCATION, cMAX_AZ, cMAX_EL, cMIN_AZ, cMIN_EL, cNOT_CUED, cSLEW_AZ, cSLEW_EL, mActualCuedAz, mActualCuedEl, mCuedAz, mCuedEl, mCuedLocationWCS, mCueMode, mCueType, mCurrentAz, mCurrentEl, mMaxAzCue, mMaxAzSlew, mMaxElCue, mMaxElSlew, mMinAzCue, mMinAzSlew, mMinElCue, mMinElSlew, mPitch, mRoll, mSlewMode, mSlewState, mTilt, mTransientCueActive, mTransientCuedLocationWCS, mYaw, and SlewToOrientation().
Referenced by UpdateOrientation().
|
protected |
Update the orientation to the reflect the orientation as it should be at specified time. This is an internal routine that is called to ensure that the orientation of the part is up-to-date.
References cCUED_TO_NOTHING, cSLEW_FIXED, WsfPlatformPart::GetSimulation(), mCueType, mLastAzElUpdateTime, mSlewMode, mTransientCueActive, and UpdateCuedOrientation().
Referenced by GetCurrentOrientationECS(), GetLOS_UnitVectorWCS(), and UpdatePosition().
|
virtual |
Update the position and orientation of the part.
This should always be called by the host platform before calling any of the geometry computation methods.
| aSimTime | The current simulation time. |
Reimplemented in WsfSensor.
References WsfPlatformPart::GetPlatform(), mDX, mDY, mDZ, mLastUpdateTime, WsfPlatform::Update(), and UpdateOrientation().
Referenced by ClearCueing(), GetAbsoluteCuedOrientation(), wsf::comm::medium::ModeGuided::GetPropagationTime(), wsf::comm::RadioXmtrRcvr::ReceiveSetup(), SetCuedLocationWCS(), SetCuedOrientation(), WsfGuidedMoverBase::SetInitialState(), WsfExplicitWeapon::SetLaunchState(), WsfSensor::Update(), and WsfSensor::UpdatePosition().
|
inline |
Is the target within the slew limits?
| aThisToTgtAz | [input] Azimuth of the target with respect to the device (radians). |
| aThisToTgtEl | [input] Elevation of the target with respect to the device (radians). |
References mMaxAzSlew, mMaxElSlew, mMinAzSlew, and mMinElSlew.
Referenced by WsfBeamDirector::IsInFOR().
|
staticconstexpr |
Referenced by FullCircle().
|
staticconstexpr |
Referenced by SlewToOrientation(), and WsfArticulatedPart().
|
protected |
The actual cued location, subject to the slewing limits.
Referenced by GetActualCuedOrientation(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by GetActualCuedOrientation(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The cueing rates and limits of the device with respect to the device coordinate system.
Referenced by GetAzCueRate(), GetAzimuthRotationRate(), SetCueRates(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by SetAzimuthSlewDirection(), TimeToRotate(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The slewing rates and limits of the device with respect to the device coordinate system.
Referenced by GetAzimuthRotationRate(), GetAzSlewRate(), Initialize(), SetSlewRates(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The cued azimuth if mCueType == cCUED_TO_ANGLE.
Referenced by GetCuedOrientation(), SetCuedOrientation(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The cued elevation if mCueType == cCUED_TO_ANGLE.
Referenced by GetCuedOrientation(), SetCuedOrientation(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The cued location if mCueType is cCUED_TO_LOCATION.
Referenced by GetCuedLocationWCS(), SetCuedLocationWCS(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The directions (az and/or el) in which cueing can be performed.
Referenced by GetCueMode(), SetCueMode(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The type of the current cue. The current cue is temporarily suspended if a transient cue is active.
Referenced by ClearCueing(), ClearTransientCue(), GetActualCuedOrientation(), GetCuedLocationWCS(), GetCuedOrientation(), GetCueType(), IsCued(), IsSlewing(), SetCuedLocationWCS(), SetCuedOrientation(), UpdateCuedOrientation(), UpdateOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
|
protected |
|
protected |
The velocity of the part.
Referenced by GetCurrentPositionRateECS(), GetDX(), SetPositionRateECS(), UpdatePosition(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by GetCurrentPositionRateECS(), GetDY(), SetPositionRateECS(), UpdatePosition(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by GetCurrentPositionRateECS(), GetDZ(), SetPositionRateECS(), UpdatePosition(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by GetElCueRate(), GetElevationRotationRate(), SetCueRates(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by GetElevationRotationRate(), GetElSlewRate(), Initialize(), SetSlewRates(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
'true' if the part is considered 'private' and not to visible to external simulations.
Referenced by IsPrivate(), SetIsPrivate(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
'true' if the part is slewing to satisfy a cueing request.
Referenced by IsSlewing(), SlewToOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The time when the current az/el were last updated.
Referenced by Initialize(), SlewToOrientation(), UpdateOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The time when the x/y/z position was last updated.
Referenced by ClearCueing(), EnableArticulationUpdates(), Initialize(), SetCuedLocationWCS(), SetCuedOrientation(), UpdatePosition(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by Initialize(), ProcessInput(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The masking factor.
Referenced by GetMaskingPatternFactor(), Initialize(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
|
protected |
Referenced by GetMaxAzCue(), SetAzCueLimits(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
|
protected |
Referenced by GetMaxAzSlewRate(), Initialize(), ProcessInput(), SetSlewRates(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by GetMaxElCue(), SetElCueLimits(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
|
protected |
Referenced by GetMaxElSlewRate(), Initialize(), ProcessInput(), SetSlewRates(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
Referenced by GetMinAzCue(), SetAzCueLimits(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
|
protected |
Referenced by GetMinElCue(), SetElCueLimits(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
|
protected |
|
protected |
|
protected |
'true' if slcue rates are dynamically adjusted so the target angles are reached simultaneously.
Referenced by ProcessInput(), TimeToRotate(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
|
protected |
Referenced by GetSlewState(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The tilt angle above below the scan plane.
Referenced by ClearCueing(), ClearTransientCue(), GetCurrentOrientationECS(), GetTilt(), SetPitch(), SetRoll(), SetTilt(), SetYaw(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
'true' if the transient cue is defined
Referenced by ClearCueing(), ClearTransientCue(), GetActualCuedOrientation(), GetTransientCuedLocationWCS(), IsSlewing(), SetTransientCuedLocationWCS(), TransientCueActive(), UpdateCuedOrientation(), UpdateOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The transient cue, if mTransientCueActive is true.
Referenced by GetTransientCuedLocationWCS(), SetTransientCuedLocationWCS(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
|
protected |
The orientation of the device coordinate system.
Referenced by ClearCueing(), ClearTransientCue(), GetCurrentOrientationECS(), GetYaw(), SetPitch(), SetRoll(), SetTilt(), SetYaw(), UpdateCuedOrientation(), WsfArticulatedPart(), and WsfArticulatedPart().
| UtCallbackListN<void(double)> WsfArticulatedPart::SlewComplete |
Referenced by SlewToOrientation().