VR-Forces 4.10 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 class DtEvent;
31 
39 {
40 
41  protected:
42  //default constructor do not use
44 
45 public:
46 
49  const DtObjectType& objectType, DtVrfObjectParameters* parameters,
50  const DtString& rwName = DtString::nullString(),
51  DtReaderWriterRegistry* parentRegistry = 0);
52 
55  & orig, const DtString& rwName = DtString::nullString(),
56  DtReaderWriterRegistry* parentRegistry = 0);
57 
61 
63  virtual ~DtMissileStateRepository();
64 
66  const DtString& rwName = DtString::nullString(),
67  DtReaderWriterRegistry* parentRegistry = 0) const;
68 
69  virtual bool init();
70 
72  virtual DtString type() const;
73 
75  virtual const int vrfMovingObjectStateRepositorySubType() const;
76 
78  virtual const int missileEntityStateRepositorySubType() const;
79 
82  virtual boost::tribool onTerrainSurface() const;
83 
86  virtual void tick();
87 
88  virtual bool createParameters();
89 
90  virtual void initializeFromParameters();
91 
92  virtual const DtMissileParameters * missileParameters() const;
93 
95  virtual DtReal range() const;
96  virtual void setRange(const DtReal range);
97 
99  virtual DtReal maxManeuverGs() const;
100  virtual void setMaxManeuverGs(const DtReal maxAcceleration);
101 
103  virtual void setFuzeType(DtDetonatorFuze fuze);
104  virtual DtDetonatorFuze fuzeType() const;
105 
107  virtual void setWarheadType(DtWarheadType type);
108  virtual DtWarheadType warheadType() const;
109 
111  virtual void setFireAndForget(bool isFireAndForget);
112  virtual bool fireAndForget() const;
113 
116  virtual void setAttacker(const DtUUID&);
117 
119  virtual const DtRwVrfObjectReference& attacker() const;
120  virtual DtRwVrfObjectReference& attacker();
121 
130  virtual DtReal radiusCEP() const;
131  virtual void setRadiusCEP(const DtReal radiusCEP);
132 
135  virtual void place(const DtVector& location);
136 
144  virtual void place(const DtReal heading);
145 
153  virtual void place(const DtReal heading, const DtReal pitch);
154 
162  virtual void place(const DtVector& location, const DtReal heading);
163 
170  virtual void place(const DtVector& location, const DtReal heading,
171  const DtReal pitch);
172 
178  virtual void setStartLocalPosition(const DtVector& localPosition);
179  virtual void setStartLocalVelocity(const DtVector& localVelocity);
180  virtual void setStartLocalOrientationWrtDatabase(
181  const DtTaitBryan& localOrientation);
182 
186  virtual bool setTargetPoint(const DtVector& localTerrainPoint);
187 
189  virtual bool setTarget(const DtUUID&);
191  virtual DtUUID target() const;
192 
197  virtual void setEventId(const DtEventId& eventId);
198  virtual const DtEventId& eventId() const;
199 
207  virtual void setDisconnectedFromLauncher();
208 
213  virtual bool missilePassedTarget(double &distSquaredToTargetOut) const;
214 
216  virtual void missileDetonated(DtDetonationInteraction * detInter);
217 
218  virtual void detonationCallback(const DtEvent&);
219 
221  virtual DtReal currentPitch() const;
222 
225  virtual double calcDistanceSquaredToTarget();
226 
229  virtual DtReal transitionAngle() const;
230  virtual void setTransitionAngle(DtReal angle);
231 
233  virtual DtReal proportionalNavigationGain() const;
234  virtual void setProportionalNavigationGain(DtReal gain);
235 
236  static DtVrfObjectStateRepository * creator(const DtString& name,
237  DtVrfObject* vrfObject, const DtObjectType& objectType,
238  DtVrfObjectParameters * parameters,
239  DtReaderWriterRegistry * parentRegistry);
240 
243  static DtMissileStateRepository* isMissileStateRepository(
244  DtSimObjectStateRepository* repository);
245 
246  static const DtMissileStateRepository* isMissileStateRepository(
247  const DtSimObjectStateRepository* repository);
248 
254  virtual void setStartLocalOrientation(const DtTaitBryan&
255  topocentricOrientation);
256 
257 protected:
258  virtual void sendTaskMessage();
259 
260 protected:
261 
262  DtReal myRange;
264  DtDetonatorFuze myFuzeType;
265  DtWarheadType myWarheadType;
267  DtReal myRadiusCEP;
268 
270 
272 
276 
279 
283 
286 
289 
290  DtEventId myEventId;
291 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:59
DtReal myRange
Definition: missileStateRepository.h:262
DtRwVrfObjectReference myAttacker
Definition: missileStateRepository.h:287
Contains the DtVrfMovingObjectStateRepository class declaration.
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
virtual bool init()
Our &#39;virtual&#39; constructor. Calls all the create&lt;&gt;() methods.
DtVector myVectorToTarget
The instantaneous vector to the target for the current tick.
Definition: missileStateRepository.h:275
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:29
virtual boost::tribool onTerrainSurface() const
bool myFireAndForget
Definition: missileStateRepository.h:266
virtual void initializeFromParameters()
virtual void place(const DtVector &location, bool *dataAvailable=0, bool requireAllData=false)
Place entity at &#39;location&#39;, on the ground, keeping its current heading.
This repository holds all information that is common to all the forms of missile entities within the ...
Definition: missileStateRepository.h:38
virtual double currentPitch() const
*virtual const DtObjectType & objectType() const
DtVrfMovingObjectStateRepository & operator=(const DtVrfMovingObjectStateRepository &orig)
Assignment Operator.
The DtSimObjectStateRepository is an abstract base class (ABC) for all state repositories.
Definition: simObjectStateRepository.h:46
Definition: readerWriterRegistry.h:39
double myLastDistanceSquaredToTarget
Definition: missileStateRepository.h:278
DtReal myRadiusCEP
Definition: missileStateRepository.h:267
virtual const int vrfMovingObjectStateRepositorySubType() const
Returns DtVrfMovingObjectStateRepositorySubTypeBase.
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
This file contains the class declaration for the.
virtual DtString type() const
returns DtSimObjectStateRepositoryType
virtual DtSimObjectStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const
Clone method.
DtReal myMaxManeuverGs
Definition: missileStateRepository.h:263
Definition: objectType.h:27
Definition: events.h:49
virtual void tick()
Tick function.
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
DtReal myProportionalNavigationGain
Definition: missileStateRepository.h:285
DtVector * myTargetPoint
Definition: missileStateRepository.h:271
double myDistanceSquaredToTarget
Definition: missileStateRepository.h:277
DtRwVrfObjectReference myTarget
Definition: missileStateRepository.h:288
DtDetonationPdu DtDetonationInteraction
Definition: DistributedSimulationDriver3A.h:14
class DtVrfObjectManager:
Definition: vrfObjectManager.h:202
Class used as the reader/writer implementation of the DtVrfObjectReference.
Definition: vrfObjectReference.h:204
static DtVrfObjectManager * myDetCbackRegWithThisEntMgr
Flag for indicating whether the detonation callback for munitions has been registered for this VrfObj...
Definition: missileStateRepository.h:282
DtEventId myEventId
Definition: missileStateRepository.h:290
DtDetonatorFuze myFuzeType
Definition: missileStateRepository.h:264
DtWarheadType myWarheadType
Definition: missileStateRepository.h:265
DtReal myTransitionAngle
Definition: missileStateRepository.h:284
Contains the set of readable/writable parameters associated with an missile type of entity...
Definition: missileParameters.h:26
static DtVrfObjectStateRepository * creator(const DtString &name, DtVrfObject *vrfObject, const DtObjectType &objectType, DtVrfObjectParameters *parameters, DtReaderWriterRegistry *parentRegistry)
Creator method.
bool myMarkedForRemoval
Definition: missileStateRepository.h:269

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)