VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
missileStateRepository.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/detonationInteraction.h>
18 
20 #include "vrfutil/simMunition.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 
80  virtual boost::tribool onTerrainSurface() const;
81 
84  virtual void tick();
85 
86  virtual bool createParameters();
87 
88  virtual void initializeFromParameters();
89 
90  virtual const DtMissileParameters * missileParameters() const;
91 
93  virtual DtReal range() const;
94  virtual void setRange(const DtReal range);
95 
97  virtual DtReal maxManeuverGs() const;
98  virtual void setMaxManeuverGs(const DtReal maxAcceleration);
99 
101  virtual void setFuzeType(DtDetonatorFuze fuze);
102  virtual DtDetonatorFuze fuzeType() const;
103 
105  virtual void setWarheadType(DtWarheadType type);
106  virtual DtWarheadType warheadType() const;
107 
109  virtual void setFireAndForget(bool isFireAndForget);
110  virtual bool fireAndForget() const;
111 
113  virtual void setAttackerId(const DtObjectId& attackerId);
114  virtual const DtObjectId& attackerId() const;
115 
124  virtual DtReal radiusCEP() const;
125  virtual void setRadiusCEP(const DtReal radiusCEP);
126 
129  virtual void place(const DtVector& location);
130 
138  virtual void place(const DtReal heading);
139 
147  virtual void place(const DtReal heading, const DtReal pitch);
148 
156  virtual void place(const DtVector& location, const DtReal heading);
157 
164  virtual void place(const DtVector& location, const DtReal heading,
165  const DtReal pitch);
166 
172  virtual void setStartLocalPosition(const DtVector& localPosition);
173  virtual void setStartLocalVelocity(const DtVector& localVelocity);
174  virtual void setStartLocalOrientationWrtDatabase(
175  const DtTaitBryan& localOrientation);
176 
180  virtual bool setTargetPoint(const DtVector& localTerrainPoint);
181  virtual bool setTargetEntity(const DtObjectId & id);
182 
187  virtual void setEventId(const DtEventId& eventId);
188  virtual const DtEventId& eventId() const;
189 
197  virtual void setDisconnectedFromLauncher();
198 
203  virtual bool missilePassedTarget(double &distSquaredToTargetOut) const;
204 
206  virtual void missileDetonated(DtDetonationInteraction * detInter);
207 
208  static void detonationCallback(DtDetonationInteraction * detInter,
209  void * usr);
210 
212  virtual DtReal currentPitch() const;
213 
216  virtual double calcDistanceSquaredToTarget();
217 
220  virtual DtReal transitionAngle() const;
221  virtual void setTransitionAngle(DtReal angle);
222 
224  virtual DtReal proportionalNavigationGain() const;
225  virtual void setProportionalNavigationGain(DtReal gain);
226 
230  virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false,
231  const DtFilename& path = DtReaderWriter::appPath());
232  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
233  const DtVariableBindingsList& variableBindings);
234 
235  static DtVrfObjectStateRepository * creator(const DtString& name,
236  DtVrfObject* vrfObject, const DtObjectType& objectType,
237  DtVrfObjectParameters * parameters,
238  DtReaderWriterRegistry * parentRegistry);
239 
242  static DtMissileStateRepository* isMissileStateRepository(
243  DtSimObjectStateRepository* repository);
244 
245  static const DtMissileStateRepository* isMissileStateRepository(
246  const DtSimObjectStateRepository* repository);
247 
253  virtual void setStartLocalOrientation(const DtTaitBryan&
254  topocentricOrientation);
255 
256 protected:
257 
258  DtObjectId myAttackerId;
259 
260  DtReal myRange;
262  DtDetonatorFuze myFuzeType;
263  DtWarheadType myWarheadType;
265  DtReal myRadiusCEP;
266 
268 
269  DtObjectId *myTargetEntity;
271 
275 
278 
282 
285 
288 
289  DtEventId myEventId;
290 };

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)