WSF
WsfChaffEjector.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11#ifndef WSFCHAFFEJECTOR_HPP
12#define WSFCHAFFEJECTOR_HPP
13
14#include "wsf_nx_export.h"
15
16#include "UtEntityPart.hpp"
17#include "WsfChaffParcel.hpp"
19class WsfScenario;
22
23class WSF_NX_EXPORT WsfChaffEjector : public WsfSimpleWeaponComponent, public UtEntityPart, public WsfSinglePlatformObserver
24{
25public:
26 static void RegisterComponentFactory(WsfScenario& aScenario);
27
29
30 WsfComponent* CloneComponent() const override;
31 void* QueryInterface(int aRole) override;
33
35 WsfChaffEjector(const std::string& aName);
36 ~WsfChaffEjector() override;
38
39 bool ProcessInput(UtInput& aInput) override;
40 bool Initialize(double aSimTime) override;
41
42 void SetLaunchState(double aSimTime, WsfPlatform* aPlatformPtr);
43
44 std::unique_ptr<WsfChaffParcel> EjectParcel(double aSimTime);
45
46 unsigned int GetQuantityRemaining() const { return mQuantityRemaining; }
47
48protected:
50
52
53
56 void OnPlatformUpdated(double /* aSimTime */, WsfPlatform* /* aPlatformPtr */) override { InvalidateTransform(); }
58
59private:
60 unsigned int mQuantityRemaining;
61 WsfStringId mParcelType;
62
63 double mEjectionVelocity;
64 double mEjectionElevation;
65 double mEjectionAzimuth;
66};
67
69
70#endif
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_CHAFF_EJECTOR
Chaff ejector extension for WsfWeapon.
Definition WsfNonExportableComponentRoles.hpp:20
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfSimpleComponentT< WsfWeaponComponent > WsfSimpleWeaponComponent
Definition WsfWeaponComponent.hpp:73
Definition WsfChaffEjector.hpp:24
void SetLaunchState(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfChaffEjector.cpp:193
unsigned int GetQuantityRemaining() const
Definition WsfChaffEjector.hpp:46
WsfChaffEjector & operator=(const WsfChaffEjector &aRhs)=delete
WsfChaffEjector()
Definition WsfChaffEjector.cpp:62
std::unique_ptr< WsfChaffParcel > EjectParcel(double aSimTime)
Definition WsfChaffEjector.cpp:236
void OnPlatformUpdated(double, WsfPlatform *) override
Definition WsfChaffEjector.hpp:56
static void RegisterComponentFactory(WsfScenario &aScenario)
Definition WsfChaffEjector.cpp:104
Definition WsfComponent.hpp:39
virtual WsfComponent * CloneComponent() const =0
virtual void * QueryInterface(int aRole)=0
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfSinglePlatformObserver.hpp:30
virtual bool Initialize(double aSimTime)
Definition WsfComponent.cpp:45
virtual bool ProcessInput(UtInput &aInput)
Definition WsfComponent.cpp:100
Copyrights Multiple, All Rights Reserved