VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
indirectFireWeaponController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999-2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
12 #pragma once
13 
14 class DtVectorOutputPort;
15 class DtAnalogOutputPort;
17 class DtVectorInputPort;
21 class DtMunitionResource;
23 
25 #include "vrfutil/simMunition.h"
26 
36 {
37 
38 public:
39 
43  DtVrfObject* owner,
44  DtSimManager* simManager,
45  DtComponentDescriptor* desc = 0,
46  DtReaderWriterRegistry* parentRegistry = 0);
47 
50 
53  virtual const char* type() const;
54 
55  virtual bool init();
56 
58  virtual bool createMountingController();
59 
63  virtual void preFirstTickInit();
64 
65  virtual void tick();
66 
68  virtual bool createTargetPointPort();
70  virtual DtVectorOutputPort * targetPointPort() const;
71 
73  virtual bool createMuzzleSpeedPort();
75  virtual DtAnalogOutputPort * muzzleSpeedPort() const;
76 
78  virtual bool createAngleOfFirePort();
80  virtual DtAnalogOutputPort * angleOfFirePort() const;
81 
83  virtual bool createAlignedDirectlyPort();
85  virtual DtBooleanOutputPort * alignedDirectlyPort() const;
86 
88  virtual bool createMuzzleOffsetPort();
90  virtual DtVectorInputPort * muzzleOffsetPort() const;
91 
95  static DtSimComponent * creator(const DtString& name,
96  DtVrfObject* owner,
97  DtSimManager* simManager,
98  DtComponentDescriptor* desc = 0,
99  DtReaderWriterRegistry* parentRegistry = 0);
100 
101  virtual DtVrfIndirectFirePSR* indirectFireProcessState();
102  virtual const DtVrfIndirectFirePSR* indirectFireProcessState() const;
103 
107  virtual void registerAttributeFunctions();
108 
115  static DtReaderWriter* provideWeaponName(void* controller);
117 
120  virtual bool haveAmmo(const DtString & ammoName) const;
121 
124  virtual const DtString & findDefaultAmmo() const;
125 
128  virtual void getMunitionFromResourceName(const DtString & resourceName,
129  DtSimMunition& munition) const;
130 
133  virtual DtMunitionResource * lookupMunitionResource(const DtString &
134  resource) const;
136  virtual void setMyFuzeToUse(DtDetonatorFuze fuzeToUse);
138  virtual DtDetonatorFuze fuzeToUse() const;
139 
141  virtual void setCurrentMuzzleSpeed(DtReal speed);
142 
144  virtual DtReal currentMuzzleSpeed() const;
145 
146  virtual void addRangeItems();
147 
152  virtual bool initializeController(const DtString& ammoType,
153  DtReal heightAboveTerrain,
154  const DtUUID & targetName, bool& waitingForTerrain);
155 
156 protected:
157 
159  virtual bool createPorts();
160 
170  virtual void lookupAndCacheProcessSR();
171 
177  virtual bool calculateTrajectory(const DtVector& shooterLoc, const DtVector& detonationLoc);
178 
182  virtual void calculateTrajectoryWithHeight(double horizontalDist, double verticalDist,
183  double maxHeight, double& muzzleSpeed, double& launchAngle, double& flightTime);
184 
188  virtual bool calculateElevationAngle(double lateralDist, double verticalDist, double muzzleSpeed,
189  double& angle, double& flightTime, double& maxHeight) const;
190 
195  virtual bool checkMuzzleSpeedAndAngle(double lateralDist, double verticalDist,
196  double speed, double angle, double& flightTime, double& maxHeight) const;
197 
200  virtual void getMunitionResources(std::list<DtString>& resourceList);
201 
203  virtual void updateResourceList();
204 
208  static void setResourceCallback(DtSimMessage * msg, void * usrData);
209  virtual void processSetResource(DtSimMessage * msg);
211 
215  static void setRestoreCallback(DtSimMessage * msg, void * usrData);
216  virtual void processSetRestore(DtSimMessage * msg);
218 
221  static void setPreferredAltitudeCallback(DtSimMessage * msg, void * usrData);
222  virtual void processSetPreferredAltitude(DtSimMessage * msg);
224 
227  virtual DtVector computeLeadPosition(const DtVector& position,
228  const DtVector& velocity);
229 
232  virtual const DtVector& muzzleLocalPosition();
233 
236  virtual DtReaderWriter* processProvideWeaponName();
237 
240  virtual double preferredAltitude() const;
241 
244 
247 
251 
252 protected:
256 
258  DtDetonatorFuze myFuzeToUse;
259 
262 
265 
268 
272 
276 
278 
281 
288 
295 
302 
311 
318 
320 
326 
328 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)