VR-Forces 4.6 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;
20 class DtMunitionResource;
22 
24 #include "vrfutil/simMunition.h"
25 
35 {
36 
37 public:
38 
42  DtVrfObject* owner,
43  DtSimManager* simManager,
44  DtComponentDescriptor* desc = 0,
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
49 
52  virtual const char* type() const;
53 
54  virtual bool init();
55 
57  virtual bool createMountingController();
58 
62  virtual void preFirstTickInit();
63 
64  virtual void tick();
65 
67  virtual bool createTargetPointPort();
69  virtual DtVectorOutputPort * targetPointPort() const;
70 
72  virtual bool createMaxRangePort();
74  virtual DtAnalogOutputPort * maxRangePort() const;
75 
77  virtual bool createAlignedDirectlyPort();
79  virtual DtBooleanOutputPort * alignedDirectlyPort() const;
80 
84  static DtSimComponent * creator(const DtString& name,
85  DtVrfObject* owner,
86  DtSimManager* simManager,
87  DtComponentDescriptor* desc = 0,
88  DtReaderWriterRegistry* parentRegistry = 0);
89 
90  virtual DtVrfIndirectFirePSR* indirectFireProcessState();
91  virtual const DtVrfIndirectFirePSR* indirectFireProcessState() const;
92 
96  virtual void registerAttributeFunctions();
97 
104  static DtReaderWriter* provideWeaponName(void* controller);
106 
109  virtual bool haveAmmo(const DtString & ammoName) const;
110 
113  virtual const DtString & findDefaultAmmo() const;
114 
117  virtual void getMunitionFromResourceName(const DtString & resourceName,
118  DtSimMunition& munition) const;
119 
122  virtual DtMunitionResource * lookupMunitionResource(const DtString &
123  resource) const;
125  virtual void setMyFuzeToUse(DtDetonatorFuze fuzeToUse);
127  virtual DtDetonatorFuze fuzeToUse() const;
128 
132  virtual void calculateDesiredElevation(double rangeToTarget);
133 
136  virtual void calculateDesiredAzimuth();
137 
139  double findBodyHeadingToLocalPosition(DtVector localTargetPosition) const;
140 
143  virtual double maxRangeForTargetRange(const double range);
144 
147  virtual void chooseMaxRange(DtReal rangeToTarget);
148 
152  virtual double munitionFlightTime(const double range);
153 
155  virtual void setCurrentMaxRange(DtReal currentMaxRange);
157  virtual DtReal currentMaxRange() const;
158 
161  virtual DtReal absoluteMaxRange() const;
162 
163  virtual void addRangeItems();
164 
169  virtual bool initializeController(const DtString& ammoType,
170  DtReal heightAboveTerrain,
171  const DtUUID & targetName, bool& waitingForTerrain);
172 
173 protected:
174 
176  virtual bool createPorts();
177 
187  virtual void lookupAndCacheProcessSR();
188 
191  virtual void getMunitionResources(std::list<DtString>& resourceList);
192 
194  virtual void updateResourceList();
195 
199  static void setResourceCallback(DtSimMessage * msg, void * usrData);
200  virtual void processSetResource(DtSimMessage * msg);
202 
206  static void setRestoreCallback(DtSimMessage * msg, void * usrData);
207  virtual void processSetRestore(DtSimMessage * msg);
209 
212  virtual DtVector computeLeadPosition(const DtVector& position,
213  const DtVector& velocity);
214 
217  virtual DtReaderWriter* processProvideWeaponName();
218 
221 
224 
228 
229 
230 protected:
234 
236  DtDetonatorFuze myFuzeToUse;
237 
239 
243 
245 
247 
250 
257 
264 
273 
275 
281 
283 };

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)