VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
baseWeaponController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include "vrfutil/simClock.h"
16 #include <vl/hostStructs.h>
17 #include "vrfutil/simMunition.h"
18 #include <vlpi/disEnums.h>
19 
22 class DtInputPortGroup;
23 class DtIntegerInputPort;
24 
26 class DtVrfWeaponPSR;
27 
34 {
35 
36 public:
37 
40  DtBaseWeaponController(const DtString& name,
41  DtVrfObject* owner,
42  DtSimManager* simManager,
43  DtComponentDescriptor* desc = 0,
44  DtReaderWriterRegistry* parentRegistry = 0);
45 
47  virtual ~DtBaseWeaponController();
48 
50  virtual bool init();
51 
55  virtual bool postAddComponentsInit();
56 
58  virtual bool createMountingController();
59 
62  virtual const char* type() const;
63 
65  virtual void fire();
66 
69  virtual bool waitingForFire();
70 
72  virtual void setWaitingForFire(bool waiting);
73 
75  virtual bool createWeaponOutputPortGroup();
76 
78  virtual DtOutputPortGroup* weaponOutputPortGroup();
79 
81  virtual bool createWeaponInputPortGroup();
82 
84  virtual DtInputPortGroup* weaponInputPortGroup();
85 
88  virtual bool createTriggerPort();
89  virtual DtBooleanOutputPort * triggerPort() const;
90 
91  virtual bool createLoadAmmunitionPort();
92  virtual DtAmmunitionOutputPort * loadAmmunitionPort() const;
93 
94  virtual bool createLoadedPort();
95  virtual DtBooleanOutputPort * loadedPort() const;
96 
97  virtual bool createArtPartTypePort();
98  virtual DtIntegerInputPort * artPartTypePort() const;
99 
107  virtual void setPreloadWeapon(bool doPreload);
108  virtual bool preloadWeapon() const;
109 
110  virtual void setLoadAmmoTime(DtTime loadAmmoTime);
111  virtual DtTime loadAmmoTime() const;
112 
113  virtual void setUnloadAmmoTime(DtTime unloadAmmoTime);
114  virtual DtTime unloadAmmoTime() const;
115 
119  virtual void setMaxVehicleSpeedToFire(DtReal maxVehicleSpeedToFire);
120  virtual DtReal maxVehicleSpeedToFire() const;
121 
122  virtual bool weaponCorrectlyOriented() const;
123 
130  virtual void setMaxAzimuthAngleOffBoresight(DtReal maxAngle);
131  virtual DtReal maxAzimuthAngleOffBoresight() const;
132  virtual void setMaxElevationAngleOffBoresight(DtReal maxAngle);
133  virtual DtReal maxElevationAngleOffBoresight() const;
135 
136 
138  virtual void initProcessSR();
139 
141  virtual DtBaseMountingController * mountingController();
142 
144  virtual void setCurrentMunitionName(const DtString & currentMunitionName);
146  virtual const DtString & currentMunitionName() const;
147 
149  virtual DtVrfWeaponPSR* weaponProcessState();
151  virtual const DtVrfWeaponPSR* weaponProcessState() const;
152 
154  virtual void tick();
155 
159  static DtSimComponent * creator(const DtString& name,
160  DtVrfObject* owner,
161  DtSimManager* simManager,
162  DtComponentDescriptor* desc = 0,
163  DtReaderWriterRegistry* parentRegistry = 0);
164 
165 protected:
166 
169  virtual bool createPortGroups();
170 
172  virtual bool createPorts();
173 
181  virtual void lookupAndCacheProcessSR();
182 
183 protected:
184 
187 
190 
193  orig);
194 
195 
196 protected:
197 
200 
204 
211 
218 
225 
229 
236 
238 
245 
250 
254 
257 
261 
268 };

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)