VR-Forces 4.2 Class Documentation
missileSR.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
15 
16 #include <vlutil/vlMachineTypes.h>
17 #include <vl/detonateInter.h>
18 
19 #include "vrfobjcore/vrfMvObjSR.h"
20 #include "vrfutil/simMunition.h"
21 #include "vrfobjcore/vrfObjMgr.h"
22 
23 #include <vl/objectId.h>
24 #include <vl/eventId.h>
25 
27 class DtVector;
28 class DtVrfObjectManager;
29 
37 {
38 
39  protected:
40  //default constructor do not use
42 
43 public:
44 
47  const DtObjectType& objectType, DtVrfObjectParameters* parameters,
48  const DtString& rwName = DtString::nullString(),
49  DtReaderWriterRegistry* parentRegistry = 0);
50 
53  & orig, const DtString& rwName = DtString::nullString(),
54  DtReaderWriterRegistry* parentRegistry = 0);
55 
59 
61  virtual ~DtMissileStateRepository();
62 
64  const DtString& rwName = DtString::nullString(),
65  DtReaderWriterRegistry* parentRegistry = 0) const;
66 
67  virtual bool init();
68 
70  virtual DtString type() const;
71 
73  virtual const int vrfMovingObjectStateRepositorySubType() const;
74 
76  virtual const int missileEntityStateRepositorySubType() const;
77 
78 
81  virtual void tick();
82 
83  virtual bool createParameters();
84 
85  virtual void initializeFromParameters();
86 
87  virtual const DtMissileParameters * missileParameters() const;
88 
90  virtual DtReal range() const;
91  virtual void setRange(const DtReal range);
92 
94  virtual DtReal maxManeuverGs() const;
95  virtual void setMaxManeuverGs(const DtReal maxAcceleration);
96 
98  virtual void setFuzeType(DtDetonatorFuze fuze);
99  virtual DtDetonatorFuze fuzeType() const;
100 
102  virtual void setWarheadType(DtWarheadType type);
103  virtual DtWarheadType warheadType() const;
104 
106  virtual void setFireAndForget(bool isFireAndForget);
107  virtual bool fireAndForget() const;
108 
110  virtual void setAttackerId(const DtObjectId& attackerId);
111  virtual const DtObjectId& attackerId() const;
112 
121  virtual DtReal radiusCEP() const;
122  virtual void setRadiusCEP(const DtReal radiusCEP);
123 
126  virtual void place(const DtVector& location);
127 
135  virtual void place(const DtReal heading);
136 
144  virtual void place(const DtReal heading, const DtReal pitch);
145 
153  virtual void place(const DtVector& location, const DtReal heading);
154 
161  virtual void place(const DtVector& location, const DtReal heading,
162  const DtReal pitch);
163 
169  virtual void setStartLocalPosition(const DtVector& localPosition);
170  virtual void setStartLocalVelocity(const DtVector& localVelocity);
171  virtual void setStartLocalOrientationWrtDatabase(
172  const DtTaitBryan& localOrientation);
173 
177  virtual bool setTargetPoint(const DtVector& localTerrainPoint);
178  virtual bool setTargetEntity(const DtObjectId & id);
179 
184  virtual void setEventId(const DtEventId& eventId);
185  virtual const DtEventId& eventId() const;
186 
194  virtual void setDisconnectedFromLauncher();
195 
200  virtual bool missilePassedTarget(double &distSquaredToTargetOut) const;
201 
203  virtual void missileDetonated(DtDetonationInteraction * detInter);
204 
205  static void detonationCallback(DtDetonationInteraction * detInter,
206  void * usr);
207 
209  virtual DtReal currentPitch() const;
210 
213  virtual double calcDistanceSquaredToTarget();
214 
217  virtual DtReal transitionAngle() const;
218  virtual void setTransitionAngle(DtReal angle);
219 
221  virtual DtReal proportionalNavigationGain() const;
222  virtual void setProportionalNavigationGain(DtReal gain);
223 
227  virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false,
228  const DtFilename& path = DtReaderWriter::appPath());
229  virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath,
230  const DtVariableBindingsList& variableBindings);
231 
232  static DtVrfObjectStateRepository * creator(const DtString& name,
233  DtVrfObject* vrfObject, const DtObjectType& objectType,
234  DtVrfObjectParameters * parameters,
235  DtReaderWriterRegistry * parentRegistry);
236 
239  static DtMissileStateRepository* isMissileStateRepository(
240  DtSimObjectStateRepository* repository);
241 
242  static const DtMissileStateRepository* isMissileStateRepository(
243  const DtSimObjectStateRepository* repository);
244 
250  virtual void setStartLocalOrientation(const DtTaitBryan&
251  topocentricOrientation);
252 
253 protected:
254 
255  DtObjectId myAttackerId;
256 
257  DtReal myRange;
259  DtDetonatorFuze myFuzeType;
260  DtWarheadType myWarheadType;
262  DtReal myRadiusCEP;
263 
265 
266  DtObjectId *myTargetEntity;
268 
272 
275 
279 
282 
285 
286  DtEventId myEventId;
287 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)