|
WSF
|
#include <WsfLaserWeapon.hpp>


Public Member Functions | |
| WsfLaserWeapon (WsfScenario &aScenario) | |
| WsfLaserWeapon & | operator= (const WsfLaserWeapon &)=delete |
| ~WsfLaserWeapon () override | |
| WsfWeapon * | Clone () const override |
| bool | ProcessInput (UtInput &aInput) override |
| bool | PreInitialize (double aSimTime) override |
| bool | Initialize (double aSimTime) override |
| bool | Initialize2 (double aSimTime) override |
| void | Update (double aSimTime) override |
| void | TurnOff (double aSimTime) override |
| double | GetQuantityRemaining () const override |
| const char * | GetScriptClassName () const override |
| WsfHighEnergyLaser * | GetHEL () const |
| Return the HEL object associated with energy propagation. | |
| void | SetHEL (WsfHighEnergyLaser *aHEL) |
| Set the HEL object associated with energy propagation. | |
| FireResult | Fire (double aSimTime, const FireTarget &aTarget, const FireOptions &aSettings) override |
| void | CeaseFire (double aSimTime) override |
| bool | IsFiring () const override |
| Helper / accessor methods. | |
| bool | CanLase (double aSimTime) |
| int | GetState () const |
| Return the current state of the laser. | |
| double | GetPeakFluence () const |
| Return the peak fluence (i.e., the peak irradiance on target integrated over time). | |
| double | GetEdgeFluence () const |
| double | GetEnergy () const |
| Return the total energy (i.e., the average irradiance on target integrated over time and area). | |
| double | GetTotalFiringTime () const |
| double | GetEnergyDensity () const |
| Return the average integrated energy density for the current engagement. | |
| void | SetFiringTime (double aFiringTime) |
| double | GetCoolingTime () const |
| double | GetCoolingTimeRemaining () const |
| double | GetFiringTime () const |
| Return the total firing time per shot. | |
| double | GetTotalFiringTimeRemaining (double aSimTime) const |
| double | GetFiringTimeRemaining () const |
| virtual size_t | GetTargetIndex (int aId) const |
| Public Member Functions inherited from WsfDirectedEnergyWeapon | |
| WsfDirectedEnergyWeapon (const WsfScenario &aScenario) | |
| WsfDirectedEnergyWeapon & | operator= (const WsfDirectedEnergyWeapon &)=delete |
| ~WsfDirectedEnergyWeapon () override | |
| Beam * | GetBeam () const |
| void | SetBeam (Beam *aBeamPtr) |
| Set the beam structure. The instance assumes ownership of the passed object. | |
| void | EngagementComplete (double aSimTime, WsfWeaponEngagement *aEngagementPtr) override |
| WsfComponent * | CloneComponent () const override |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| Public Member Functions inherited from WsfImplicitWeapon | |
| WsfImplicitWeapon (const WsfScenario &aScenario) | |
| ~WsfImplicitWeapon () override | |
| const char * | GetScriptClassName () const override |
| WsfStringId | GetTargetName () const |
| Return the current target name. | |
| WsfStringId | GetTargetOffset () const |
| Return the name id of the target offset, if any. | |
| WsfWeaponEngagement * | GetCurrentEngagement () const |
| void | ClearCurrentEngagement (double aSimTime) |
| Clear the current engagement. | |
| WsfWeaponEngagement * | GetEngagement (int aEngagementId=0) const |
| void | ClearEngagement (double aSimTime, int aEngagementId=0) |
| Clear the current engagement. | |
| ComponentList & | GetComponents () |
| const ComponentList & | GetComponents () const |
| virtual bool | AllocateTheWeapon (double aSimTime, WsfTrack *aTrackPtr, int aStoreId) |
| Begin the weapon server allocation sequence. | |
| void | SetState (WeaponState aState) |
| WeaponState | GetState () const |
| Return weapon state. | |
| WsfWeapon (const WsfScenario &aScenario) | |
| ~WsfWeapon () override | |
| WsfComponent * | CloneComponent () const override |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| int | GetComponentInitializationOrder () const override |
| const char * | GetScriptClassName () const override |
| bool | PreInitialize (double aSimTime) override |
| bool | Initialize (double aSimTime) override |
| bool | Initialize2 (double aSimTime) override |
| void | PreInput () override |
| bool | ProcessInput (UtInput &aInput) override |
| void | Update (double aSimTime) override |
| Update the state of the weapon to the supplied time value. | |
| void | TurnOff (double aSimTime) override |
| void | TurnOn (double aSimTime) override |
| void | SetNonOperational (double aSimTime) override |
| void | SetOperational (double aSimTime) override |
| void | PartBroken (double aSimTime) override |
| void | Restore (double aSimTime) override |
| double | GetUpdateInterval () const override |
| Get the update interval. | |
| virtual size_t | GetEM_RcvrCount () const |
| virtual WsfEM_Rcvr & | GetEM_Rcvr (size_t aIndex) |
| virtual size_t | GetEM_XmtrCount () const |
| virtual WsfEM_Xmtr & | GetEM_Xmtr (size_t aIndex) |
| virtual size_t | GetEM_XmtrCount (size_t aModeIndex) const |
| virtual WsfEM_Xmtr & | GetEM_Xmtr (size_t aModeIndex, size_t aIndex) |
| virtual WsfEM_Xmtr & | GetEM_Xmtr (size_t aModeIndex, size_t aBeamIndex, size_t aIndex) |
| virtual WsfStringId | GetCurrentModeName () const |
| Return the string ID of the string associated with the name of the current mode. | |
| virtual WsfWeaponMode * | GetCurrentMode () |
| virtual size_t | GetModeCount () |
| Get the number of modes associated with the weapon. | |
| virtual WsfWeaponMode * | GetModeEntry (size_t aModeIndex) |
| virtual size_t | GetModeIndex (WsfStringId aModeNameId) |
| virtual WsfStringId | GetModeName (size_t aModeIndex) |
| virtual void | DeselectMode (double aSimTime, WsfStringId aModeNameId) |
| virtual void | SelectMode (double aSimTime, WsfStringId aModeNameId) |
| WsfLaunchComputer * | GetLaunchComputer () const |
| void | SetLaunchComputer (WsfLaunchComputer *aLaunchComputerPtr) |
| WsfStringId | GetWeaponEffectsType () const |
| Get the string ID of the weapon effects to be used. | |
| void | SetWeaponEffectsType (WsfStringId aWeaponEffect) |
| Set the string ID of the weapon effects to be used. | |
| virtual void | CueToTarget (double aSimTime, const WsfTrack *aTrackPtr) |
| virtual bool | FireSalvo (double aSimTime, const FireTarget &aTarget, const SalvoOptions &aSettings) |
| virtual void | ContinueSalvo (double aSimTime, unsigned int aRequestId) |
| virtual void | AbortSalvo (double aSimTime, const WsfTrackId &aTrackId) |
| virtual unsigned int | GetActiveRequestCount () const |
| Return the number of 'FireSalvo' calls that are in process. | |
| virtual unsigned int | GetMaximumRequestCount () const |
| double | GetTimeLastFired () const |
| Get the simulation time when the weapon was last fired. | |
| virtual double | GetFiringDelay () |
| void | SetFiringDelay (const WsfRandomVariable &aFiringDelay) |
| virtual double | GetSalvoInterval () |
| double | GetFiringInterval () const |
| void | SetFiringInterval (double aFiringInterval) |
| WsfStringId | GetLaunchedPlatformType () const |
| Get the type of the platform that will be launched. | |
| void | SetLaunchedPlatformType (WsfStringId aLaunchedPlatformType) |
| Set the type of the platform that will be launched. | |
| double | GetInitialStateQuantityRemaining () const |
| virtual double | GetQuantityCommitted () const |
| Return the quantity that is currently committed. | |
| virtual double | GetMaximumQuantity () const |
| Return the maximum quantity that may be 'loaded'. | |
| virtual double | GetTotalQuantityUsed () const |
| Return the cumulative running total of the quantity used (fired). | |
| virtual void | SetQuantityRemaining (double aQuantity) |
| void | ChangeQuantity (double aDeltaQuantity) |
| bool | IsReloading () const |
| bool | InhibitWhileReloading () const |
| Flag indicating that when a weapon reload is in progress, any firing will be inhibited. | |
| virtual void | CompleteReloading (double aSimTime, double aQuantity) |
| double | GetReloadInventory () const |
| double | GetReloadThreshold () const |
| Returns the depleted value of inventory at which a reload is attempted. | |
| double | GetReloadIncrement () const |
| WsfTrack * | CreateTargetTrack (double aSimTime, const WsfTrack *aTrackPtr) |
| bool | GetTargetLocationWCS (double aSimTime, const WsfTrack *aTrackPtr, double aTargetLocWCS[3]) |
| virtual void | SetTargetIndex (int aId, size_t aTargetIndex) |
| virtual void | SetTargetedLocationWCS (int aId, const double aTargetedLocationWCS[3]) |
| virtual void | GetTargetedLocationWCS (int aId, double aTargetedLocationWCS[3]) const |
| virtual bool | TargetedLocationValid (int aId) const |
| virtual bool | WithinFieldOfView (double aSimTime, WsfPlatform *aPlatformPtr) |
| virtual bool | WithinFieldOfView (double aSimTime, WsfTrack *aTrackPtr) |
| virtual bool | StartJamming (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfStringId aTechniqueId, WsfTrackId aTrackId, size_t aTargetIndex) |
| virtual bool | StartJammingTrack (double aSimTime, WsfStringId aTechniqueId, const WsfTrack *aTrackPtr) |
| virtual bool | StopJamming (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfTrackId aTrackId) |
| virtual bool | UpdateJamming (double aSimTime, size_t aXmtrIndex, double aFrequency, double aBandwidth, WsfStringId aTechniqueId, WsfTrackId aTrackId, size_t aTargetIndex) |
| virtual size_t | GetActiveBeamCount () const |
| virtual size_t | GetMaximumBeamCount () const |
| virtual size_t | GetActiveSpotCount (size_t aBeamNumber) const |
| virtual size_t | GetMaximumSpotCount (size_t aBeamNumber) const |
| virtual bool | SelectEA_Technique (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfStringId aTechniqueId, WsfTrackId aTrackId) |
| virtual bool | DeselectEA_Technique (double aSimTime, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfStringId aTechniqueId, WsfTrackId aTrackId) |
| virtual bool | SetEA_DeltaGainTechnique (double aSimTime, WsfStringId aTechniqueId, bool aOnOff, WsfStringId aEffectId, double aJammingDeltaGain_dB, WsfStringId aSystemTypeId, WsfStringId aFunctionTypeId) |
| virtual bool | SetEA_DeltaGainTechnique (double aSimTime, WsfStringId aTechniqueId, bool aOnOff, WsfStringId aEffectId, double aJammingDeltaGain_dB, WsfStringId aSystemTypeId, WsfStringId aFunctionTypeId, double aFrequency, double aBandwidth, size_t aBeamNumber, WsfTrackId aTrackId) |
| void | SetUpdateInterval (double aUpdateInterval) override |
| double | TimeWeaponLastFiredFor (const WsfTrackId &aTrackId) const |
| Return the simulation time of the most recent weapon firing against the specified track. | |
| double | TimeWeaponLastTerminatedFor (const WsfTrackId &aTrackId) const |
| Return the simulation time of the most recent weapon termination against the specified track. | |
| int | WeaponsPendingFor (const WsfTrackId &aTrackId) const |
| int | WeaponsActiveFor (const WsfTrackId &aTrackId) const |
| int | RoundsCompleteFor (const WsfTrackId &aTrackId) const |
| Returns number of weapons that were fired at the track and are now terminated. | |
| int | WeaponsActiveAndPendingFor (const WsfTrackId &aTrackId) const |
| int | RoundsFiredAt (const WsfTrackId &aTrackId) const |
| int | SalvosFiredAt (const WsfTrackId &aTrackId) const |
| std::vector< size_t > | ActiveWeaponPlatformsFor (const WsfTrackId &aTrackId) const |
| void | SetIFCEnabled (bool aEnabled) |
| Set to true is IFC is supported. | |
| bool | GetIFCEnabled () const |
| Returns 'true' if the platform supports IFC (Integrated Fire Control). | |
| Public Member Functions inherited from WsfArticulatedPart | |
| WsfArticulatedPart (const WsfScenario &aScenario, int aPartType) | |
| WsfArticulatedPart (const WsfArticulatedPart &aSrc) | |
| ~WsfArticulatedPart () override | |
| 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 |
| const char * | GetScriptClassName () const override |
| void | SetPlatform (WsfPlatform *aPlatformPtr) override |
| virtual void | UpdatePosition (double aSimTime) |
| void | OnPlatformUpdated (double, WsfPlatform *) override |
| 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 |
| 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. | |
| 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. | |
| 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]) |
| WsfStringId | GetMaskingPatternState () const |
| void | SetMaskingPatternState (WsfStringId aMaskingPatternStateId) |
| double | GetMaskingPatternFactor (double aViewAzPCS, double aViewElPCS, const double aViewVecWCS[3]) |
| void | SetIsPrivate (bool aIsPrivate) |
| bool | IsPrivate () const |
| Public Member Functions inherited from WsfPlatformPart | |
| WsfPlatformPart (const WsfScenario &aScenario, int aPartType) | |
| WsfPlatformPart & | operator= (const WsfPlatformPart &aRhs)=delete |
| ~WsfPlatformPart () 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 |
| 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. | |
| 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) |
| 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 |
| 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 |
| template<typename T> | |
| bool | QueryInterfaceT (T *&aRolePtr) |
| bool | ComponentHasRole (int aRole) |
| Returns true if the component has the specified role. | |
| 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. | |
Protected Member Functions | |
| WsfLaserWeapon (const WsfLaserWeapon &aSrc) | |
| virtual bool | BeginShot (double aSimTime) |
| Shot management methods. | |
| virtual bool | UpdateShot (double aSimTime) |
| virtual bool | EndShot (double aSimTime) |
| virtual void | EvaluateCooling (double aSimTime) |
| Cooling management. | |
| WsfDirectedEnergyWeapon (const WsfDirectedEnergyWeapon &aSrc) | |
| virtual bool | BeginEngagement (double aSimTime, EngagementData *aEngagementDataPtr) |
| Protected Member Functions inherited from WsfImplicitWeapon | |
| WsfImplicitWeapon (const WsfImplicitWeapon &aSrc) | |
| WsfImplicitWeapon & | operator= (const WsfImplicitWeapon &)=delete |
| void | DeleteEngagementData (EngagementData *aEngagementDataPtr) |
| bool | BeginEngagement (double aSimTime, EngagementData *aEngagementDataPtr) |
| void | EngagementComplete (double aSimTime, WsfWeaponEngagement *aEngagementPtr) override |
| WsfWeapon (const WsfWeapon &aSrc) | |
| Copy constructor (for Clone()). | |
| WsfWeapon & | operator= (const WsfWeapon &)=delete |
| bool | IsQuantitySpecified () const |
| virtual void | ProcessReloading (double aSimTime) |
| void | SetIsReloading (bool aValue) |
| Method used for derived classes to set or clear the IsReloading Flag. | |
| void | SetModeList (WsfModeList *aModeListPtr) |
| void | SetTimeLastFired (double aTimeLastFired) |
| void | SetMaximumRequestCount (unsigned int aMaximumRequestCount) |
| double | GetReloadInterval () const |
| virtual void | WeaponFireAborted (double aSimTime, const WsfTrack *aTargetTrackPtr, double aQuantity) |
| 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) |
| 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) |
Protected Attributes | |
| WsfHighEnergyLaser * | mHEL_Ptr |
| int | mState |
| WsfModeList * | mModeListPtr |
| The pointer to the list of modes (for things like jammers). | |
| WeaponStatusMap | mWeaponStatusMap |
| 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. | |
Friends | |
| class | LaserEvent |
Additional Inherited Members | |
| static double | TimeWeaponLastFiredFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| static double | TimeWeaponLastTerminatedFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| static int | WeaponsPendingFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| static int | WeaponsActiveFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| Returns number of weapons that have been fired at the track and are still alive. | |
| static int | RoundsCompleteFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| Returns number of weapons that were fired at the track and are now terminated. | |
| static int | WeaponsActiveAndPendingFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| Equivalent to WeaponsActiveFor() plus WeaponsPendingFor(). | |
| static int | RoundsFiredAt (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| Equivalent to WeaponsActiveFor() plus RoundsCompleteFor(). | |
| static int | SalvosFiredAt (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| Returns number of salvo fire requests requested, and not the actual number of salvos fired. | |
| static std::vector< size_t > | ActiveWeaponPlatformsFor (const WsfPlatform &aPlatform, const WsfTrackId &aTrackId, WsfStringId aWeaponName=WsfStringId()) |
| static void | DetermineFirepowerStatus (WsfPlatform &aPlatform) |
| Decide whether to set or clear the Firepower appearance bit. | |
| UtCallbackListN< void(double)> | SlewComplete |
| Static Public Attributes inherited from WsfWeapon | |
| static const double | cUNDEFINED_DOUBLE = 1.0E+30 |
| Static Public Attributes inherited from WsfArticulatedPart | |
| 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 |
| using | WeaponStatusMap = std::map<WsfTrackId, WeaponStatus> |
| using | WeaponStatusMapIter = WeaponStatusMap::iterator |
| using | WeaponStatusMapConstIter = WeaponStatusMap::const_iterator |
| using | WeaponStatusVal = std::pair<WsfTrackId, WeaponStatus> |
This is a laser used as a weapon. It implements a specific firing time during which the target geometry is updated and the fluence is integrated. At a user-specified update rate, the fluence calculations will be updated. If the target of the laser has a WsfIntersectProcessor on it, the laser will utilize that processor to perform normal incidence and occlusion calculations (this is highly recommended). Finally, one may specify a thermal system to determine when the laser can no longer fire; otherwise one may specify a number of shots and a cooldown time.
| WsfLaserWeapon::WsfLaserWeapon | ( | WsfScenario & | aScenario | ) |
References cREADY_TO_FIRE, mHEL_Ptr, mState, and WsfDirectedEnergyWeapon::WsfDirectedEnergyWeapon().
Referenced by Clone(), operator=(), WsfCuedLaserWeapon::WsfCuedLaserWeapon(), WsfCuedLaserWeapon::WsfCuedLaserWeapon(), and WsfLaserWeapon().
|
override |
References WsfPlatformPart::GetPlatform().
|
protected |
References if(), mHEL_Ptr, mState, WsfDirectedEnergyWeapon::WsfDirectedEnergyWeapon(), and WsfLaserWeapon().
|
protectedvirtual |
Shot management methods.
References WsfSimulation::AddEvent(), CanLase(), cFIRING, WsfPlatformPart::DebugEnabled(), WsfObserver::DirectedEnergyWeaponBeginShot(), WsfObserver::DirectedEnergyWeaponFired(), WsfImplicitWeapon::GetCurrentEngagement(), WsfWeaponEffects::GetDamageRadius(), WsfImplicitWeapon::GetEngagement(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), WsfImplicitWeapon::GetTargetOffset(), WsfWeaponEngagement::GetWeaponEffects(), mHEL_Ptr, and mState.
Referenced by Fire(), and WsfCuedLaserWeapon::ResumeFire().
| bool WsfLaserWeapon::CanLase | ( | double | aSimTime | ) |
Return whether the weapon is within physical constraints to lase. This does not determine whether we have decided to lase (see controller variables in header file). (thermal and possibly, other constraints) to lase at the current time.
References EvaluateCooling().
Referenced by BeginShot(), Fire(), and WsfCuedLaserWeapon::ResumeFire().
|
overridevirtual |
Reimplemented from WsfDirectedEnergyWeapon.
References WsfImplicitWeapon::CeaseFire(), cFIRING, WsfPlatform::Comment(), WsfPlatformPart::DebugEnabled(), EndShot(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), and mState.
Referenced by WsfCuedLaserWeapon::CeaseFire(), EvaluateCooling(), and TurnOff().
|
overridevirtual |
Clone this object.
Reimplemented from WsfDirectedEnergyWeapon.
References WsfLaserWeapon(), and WsfWeapon::WsfWeapon().
|
protectedvirtual |
Reimplemented in WsfCuedLaserWeapon.
References cFIRING, WsfImplicitWeapon::ClearEngagement(), WsfPlatform::Comment(), cREADY_TO_FIRE, WsfPlatformPart::DebugEnabled(), WsfObserver::DirectedEnergyWeaponEndShot(), WsfObserver::DirectedEnergyWeaponFired(), WsfImplicitWeapon::GetEngagement(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), mHEL_Ptr, mState, and success.
Referenced by CeaseFire(), and WsfCuedLaserWeapon::EndShot().
|
protectedvirtual |
Cooling management.
References WsfSimulation::AddEvent(), CeaseFire(), cFIRING, WsfPlatform::Comment(), WsfPlatformPart::DebugEnabled(), WsfPlatformPart::GetPlatform(), GetQuantityRemaining(), WsfPlatformPart::GetSimulation(), and mState.
|
overridevirtual |
Attempt to fire a weapon. WsfPlatform::GetCurrentTarget() will be used as the target if it is defined.
| aSimTime | The current simulation time. |
| aTarget | The target of the weapon. |
| aSettings | Options for firing the weapon. |
Reimplemented from WsfDirectedEnergyWeapon.
References BeginShot(), CanLase(), cPAUSED, cREADY_TO_FIRE, WsfDirectedEnergyWeapon::Fire(), WsfAuxDataEnabled::GetAuxDataConst(), WsfTrack::GetTargetName(), mState, WsfWeapon::FireResult::mSuccess, WsfWeapon::FireTarget::mTargetName, WsfWeapon::FireTarget::mTargetOffset, WsfWeapon::FireTarget::mTrackPtr, and Update().
| double WsfLaserWeapon::GetCoolingTime | ( | ) | const |
| double WsfLaserWeapon::GetCoolingTimeRemaining | ( | ) | const |
References WsfSimulation::GetSimTime(), and WsfPlatformPart::GetSimulation().
|
inline |
Return the edge fluence (i.e., the irradiance at the damage radius or the sigma radius, whichever is smaller.
References mHEL_Ptr.
|
inline |
Return the total energy (i.e., the average irradiance on target integrated over time and area).
References mHEL_Ptr.
|
inline |
Return the average integrated energy density for the current engagement.
References mHEL_Ptr.
| double WsfLaserWeapon::GetFiringTime | ( | ) | const |
Return the total firing time per shot.
| double WsfLaserWeapon::GetFiringTimeRemaining | ( | ) | const |
Return the firing time remaining, if the laser is currently firing. If the laser is not firing, return the firing time.
References WsfPlatformPart::GetSimulation(), and IsFiring().
Referenced by GetTotalFiringTimeRemaining(), and SetFiringTime().
|
inline |
Return the HEL object associated with energy propagation.
References mHEL_Ptr.
|
inline |
Return the peak fluence (i.e., the peak irradiance on target integrated over time).
References mHEL_Ptr.
|
overridevirtual |
Return the shot "quantity" remaining. As the firing time is variable, we simply return the remaining firing time.
Reimplemented from WsfWeapon.
References GetTotalFiringTimeRemaining().
Referenced by EvaluateCooling().
|
override |
|
inline |
|
inlinevirtual |
Reimplemented from WsfWeapon.
|
inline |
Return the total time that the fully charged system is allowed to fire. (This value is constant.)
| double WsfLaserWeapon::GetTotalFiringTimeRemaining | ( | double | aSimTime | ) | const |
Return the total lasing time remaining. If the thermal system is being utilized, this is the time until the high temperature limit is reached. Otherwise it is the standard salvo time.
References GetFiringTimeRemaining().
Referenced by GetQuantityRemaining().
|
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 WsfImplicitWeapon.
References WsfWeapon::Initialize(), mHEL_Ptr, and ok.
Referenced by WsfCuedLaserWeapon::Initialize().
|
overridevirtual |
Perform phase 2 initialization. This is called by WsfPlatform::Initialize() during phase 2 of platform initialization. This method is typically used when a component may have some dependency on another component having completed its phase 1 initialization. The component should be ready for use in the simulation upon completion of this method.
The order in which components are initialized is defined by GetComponentInitializationOrder.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
References WsfPlatformPart::DebugEnabled().
|
overridevirtual |
Helper / accessor methods.
Return whether the laser is currently firing.
Reimplemented from WsfDirectedEnergyWeapon.
References cFIRING, and mState.
Referenced by GetFiringTimeRemaining().
|
delete |
References WsfLaserWeapon(), and WsfWeapon::WsfWeapon().
|
overridevirtual |
Perform pre-initializion function. This is called by WsfPlatform::Initialize prior to actually initializing the components on a platform (i.e.: calling Initialize and Initialize2 for each component). The primary reason for this method is to allow components to add other components that will then be subsequently initialized. The component may examine the component list and add components, but it must not assume ANYTHING about the actual state of the component.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
References WsfComponentListT< COMPONENT_TYPE >::AddComponent(), WsfComponentListT< COMPONENT_TYPE >::FindComponent(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), mHEL_Ptr, and ok.
|
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 WsfArticulatedPart.
References WsfHighEnergyLaserTypes::Get(), WsfPlatformPart::GetScenario(), mHEL_Ptr, WsfRandomVariable::ProcessInput(), WsfWeapon::ProcessInput(), and SetHEL().
Referenced by WsfCuedLaserWeapon::ProcessInput().
| void WsfLaserWeapon::SetFiringTime | ( | double | aFiringTime | ) |
Set the firing time to the specified value
References GetFiringTimeRemaining().
| void WsfLaserWeapon::SetHEL | ( | WsfHighEnergyLaser * | aHEL | ) |
Set the HEL object associated with energy propagation.
Set the HEL ptr, and establish it as the base class' "beam" pointer.
References mHEL_Ptr, and WsfDirectedEnergyWeapon::SetBeam().
Referenced by ProcessInput().
|
overridevirtual |
Turn off the platform part (system).
| aSimTime | The current simulation time. |
Reimplemented from WsfPlatformPart.
References CeaseFire(), and WsfWeapon::TurnOff().
|
overridevirtual |
Update the state of an platform part. Updates the platform part to reflect the state at the specified simulation time.
| aSimTime | The current simulation time. |
Reimplemented from WsfImplicitWeapon.
References EvaluateCooling(), and WsfPlatformPart::Update().
Referenced by Fire(), and UpdateShot().
|
protectedvirtual |
|
friend |
|
protected |
|
protected |
Referenced by BeginShot(), CeaseFire(), EndShot(), EvaluateCooling(), WsfCuedLaserWeapon::Fire(), Fire(), GetState(), IsFiring(), WsfCuedLaserWeapon::PauseFire(), WsfCuedLaserWeapon::ProcessMessage(), WsfCuedLaserWeapon::ResumeFire(), WsfCuedLaserWeapon::TurnOff(), UpdateShot(), WsfLaserWeapon(), and WsfLaserWeapon().