VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
missileStateRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
15 
16 #include <vlutil/vlMachineTypes.h>
17 #include <vl/detonationInteraction.h>
18 #include <matrix/vlVector.h>
19 
21 #include "vrfutil/simMunition.h"
23 #include <vrfutil/rwUUID.h>
24 
25 #include <vl/objectId.h>
26 #include <vl/eventId.h>
27 
29 class DtVrfObjectManager;
30 
38 {
39 
40  protected:
41  //default constructor do not use
43 
44 public:
45 
48  const DtObjectType& objectType, DtVrfObjectParameters* parameters,
49  const DtString& rwName = DtString::nullString(),
50  DtReaderWriterRegistry* parentRegistry = 0);
51 
54  & orig, const DtString& rwName = DtString::nullString(),
55  DtReaderWriterRegistry* parentRegistry = 0);
56 
60 
62  virtual ~DtMissileStateRepository();
63 
65  const DtString& rwName = DtString::nullString(),
66  DtReaderWriterRegistry* parentRegistry = 0) const;
67 
68  virtual bool init();
69 
71  virtual DtString type() const;
72 
74  virtual const int vrfMovingObjectStateRepositorySubType() const;
75 
77  virtual const int missileEntityStateRepositorySubType() const;
78 
81  virtual boost::tribool onTerrainSurface() const;
82 
85  virtual void tick();
86 
87  virtual bool createParameters();
88 
89  virtual void initializeFromParameters();
90 
91  virtual const DtMissileParameters * missileParameters() const;
92 
94  virtual DtReal range() const;
95  virtual void setRange(const DtReal range);
96 
98  virtual DtReal maxManeuverGs() const;
99  virtual void setMaxManeuverGs(const DtReal maxAcceleration);
100 
102  virtual void setFuzeType(DtDetonatorFuze fuze);
103  virtual DtDetonatorFuze fuzeType() const;
104 
106  virtual void setWarheadType(DtWarheadType type);
107  virtual DtWarheadType warheadType() const;
108 
110  virtual void setFireAndForget(bool isFireAndForget);
111  virtual bool fireAndForget() const;
112 
115  virtual void setAttacker(const DtUUID&);
116 
118  virtual const DtRwVrfObjectReference& attacker() const;
119  virtual DtRwVrfObjectReference& attacker();
120 
129  virtual DtReal radiusCEP() const;
130  virtual void setRadiusCEP(const DtReal radiusCEP);
131 
134  virtual void place(const DtVector& location);
135 
143  virtual void place(const DtReal heading);
144 
152  virtual void place(const DtReal heading, const DtReal pitch);
153 
161  virtual void place(const DtVector& location, const DtReal heading);
162 
169  virtual void place(const DtVector& location, const DtReal heading,
170  const DtReal pitch);
171 
177  virtual void setStartLocalPosition(const DtVector& localPosition);
178  virtual void setStartLocalVelocity(const DtVector& localVelocity);
179  virtual void setStartLocalOrientationWrtDatabase(
180  const DtTaitBryan& localOrientation);
181 
185  virtual bool setTargetPoint(const DtVector& localTerrainPoint);
186 
188  virtual bool setTarget(const DtUUID&);
189 
194  virtual void setEventId(const DtEventId& eventId);
195  virtual const DtEventId& eventId() const;
196 
204  virtual void setDisconnectedFromLauncher();
205 
210  virtual bool missilePassedTarget(double &distSquaredToTargetOut) const;
211 
213  virtual void missileDetonated(DtDetonationInteraction * detInter);
214 
215  static void detonationCallback(DtDetonationInteraction * detInter,
216  void * usr);
217 
219  virtual DtReal currentPitch() const;
220 
223  virtual double calcDistanceSquaredToTarget();
224 
227  virtual DtReal transitionAngle() const;
228  virtual void setTransitionAngle(DtReal angle);
229 
231  virtual DtReal proportionalNavigationGain() const;
232  virtual void setProportionalNavigationGain(DtReal gain);
233 
234  static DtVrfObjectStateRepository * creator(const DtString& name,
235  DtVrfObject* vrfObject, const DtObjectType& objectType,
236  DtVrfObjectParameters * parameters,
237  DtReaderWriterRegistry * parentRegistry);
238 
241  static DtMissileStateRepository* isMissileStateRepository(
242  DtSimObjectStateRepository* repository);
243 
244  static const DtMissileStateRepository* isMissileStateRepository(
245  const DtSimObjectStateRepository* repository);
246 
252  virtual void setStartLocalOrientation(const DtTaitBryan&
253  topocentricOrientation);
254 
255 protected:
256  virtual void sendTaskMessage();
257 
258 protected:
259 
260  DtReal myRange;
262  DtDetonatorFuze myFuzeType;
263  DtWarheadType myWarheadType;
265  DtReal myRadiusCEP;
266 
268 
270 
274 
277 
281 
284 
287 
288  DtEventId myEventId;
289 };

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)