VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
directedEnergyFirePdu.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2013 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include <vlpi/entityType.h>
16 #include <vl/stateMsgDIS.h>
17 #include <vl/interaction.h>
18 #include <vl/eventId.h>
19 
20 class DtExerciseConn;
26 
29 
30 typedef void (*DtDirectedEnergyFireCb)(DtDirectedEnergyFire *inter, void *usr);
31 
35 {
36 public:
37 
38  static DtPdu* create( const DtNetPacket *initial,
40  DtPduFactory* pduFactory = 0 );
41 
43 
46  DtPduFactory* pduFactory = 0 );
47 
49  virtual ~DtDirectedEnergyFirePdu();
50 
52  virtual const DtEntityIdentifier& firingEntityId() const;
54  virtual void setFiringEntityId(const DtEntityIdentifier& firingEntityId);
55 
57  virtual const DtEventID& eventId() const;
59  virtual void setEventId(const DtEventID& id);
60 
62  virtual const DtEntityType& munitionType() const;
64  virtual void setMunitionType(const DtEntityType& munitionType);
65 
67  virtual const DtTime shotStartTime() const;
69  virtual void setShotStartTime(DtTime shotStartTime);
70 
72  virtual float cumulativeShotTime() const;
74  virtual void setCumulativeShotTime(float cumulativeShotTime);
75 
77  virtual const DtVector& location() const;
79  virtual void setLocation(const DtVector& location);
80 
82  virtual float apertureDiameter() const;
84  virtual void setApertureDiameter(float apertureDiameter);
85 
87  virtual float waveLength() const;
89  virtual void setWaveLength(float waveLength);
90 
92  virtual float pulseRepetitionFrequency() const;
94  virtual void setPulseRepetitionFrequency(float pulseRepetitionFrequency);
95 
97  virtual float pulseWidth() const;
99  virtual void setPulseWidth(float pulseWidth);
100 
102  virtual unsigned int flags() const;
104  virtual void setFlags(unsigned int flags);
105 
107  virtual bool isFlagsWeaponsOn() const;
109  virtual void setFlagsWeaponsOn();
110 
112  virtual bool isFlagsWeaponsOff() const;
114  virtual void setFlagsWeaponsOff();
115 
117  virtual bool flagsUpdateDueToHeartbeatTimer() const;
119  virtual void setFlagsUpdateDueToHeartbeatTimer();
120 
122  virtual bool flagsStateChange() const;
124  virtual void setFlagsStateChange();
125 
127  virtual DtPulseShape pulseShape() const;
129  virtual void setPulseShape(DtPulseShape pulseShape);
130 
132  virtual void addPrecisionAimpointRecord(const DtDirectedEnergyPrecisionAimpointRecord& record);
134  virtual void addAreaAimpointRecord(const DtDirectedEnergyAreaAimpointRecord& record);
135 
137  virtual void addPrecisionAimpointRecords(const std::vector<DtDirectedEnergyPrecisionAimpointRecord>& records);
139  virtual void addAreaAimpointRecords(const std::vector<DtDirectedEnergyAreaAimpointRecord>& records);
140 
142  virtual void getPrecisionAimpointRecords(std::vector<DtDirectedEnergyPrecisionAimpointRecord>& records) const;
144  virtual void getAreaAimpointRecords(std::vector<DtDirectedEnergyAreaAimpointRecord>& records) const;
145 
149  virtual void printData() const;
150  virtual void printDataToStream(std::ostream& stream) const;
151  virtual void printDataToString(DtString& str) const;
152 
153  static void addCallback( DtExerciseConn* conn,
154  DtDirectedEnergyFireCb cb, void* usr );
155  static void removeCallback( DtExerciseConn* conn,
156  DtDirectedEnergyFireCb cb, void* usr );
157 
159  virtual unsigned int numberOfRecords() const;
160 
161 protected:
162 
164  virtual void printRecordsToStream(std::ostream& stream) const;
165 
168 
169 protected:
170 
172  static const int theStaticSize;
173 
186 
187 };
188 
189 #endif
DtDirectedEnergyFirePdu DtDirectedEnergyFire
Instances of DtEnergyFireInteraction are used to represent the firing of an Energy Weapon...
Definition: directedEnergyFirePdu.h:25
Instances of DtEnergyFireInteraction are used to represent the firing of an Energy Weapon...
Definition: directedEnergyFirePdu.h:34
virtual unsigned int numberOfRecords() const
Returns the number of records for all Record Sets.
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
float myWaveLength
Definition: directedEnergyFirePdu.h:181
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
float myCumulativeShotTime
Definition: directedEnergyFirePdu.h:178
Contains the DtEntityType and DtRadioEntityType class declarations.
DtNetU16 myFlags
Definition: directedEnergyFirePdu.h:185
Network-order unsigned 16-bit quantity.
Definition: vlNetTypes.h:52
Definition: pduHeader.h:14
float myApertureDiameter
Definition: directedEnergyFirePdu.h:180
DtEventID myEvent
Definition: directedEnergyFirePdu.h:175
float myPulseWidth
Definition: directedEnergyFirePdu.h:183
class DtPduFactory:
Definition: pduFactory.h:38
virtual void printDataToStream(std::ostream &stream) const
void(* DtDirectedEnergyFireCb)(DtDirectedEnergyFire *inter, void *usr)
Definition: directedEnergyFirePdu.h:30
This file is used as a convenience to group interaction concepts together.
DtPulseShape
Definition: disEnums.h:2952
static const int theStaticSize
Size of PDU with zero DE records.
Definition: directedEnergyFirePdu.h:172
Definition: vlVector.h:224
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
DtPduKind internalGetPduKind() const
Returns the internal PDU kind.
Definition: directedEnergyFirePdu.h:167
virtual void printDataToString(DtString &str) const
Represents Events in DIS.
Definition: eventId.h:154
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
Definition: directedEnergyAreaAimpointRecord.h:16
Definition: directedEnergyFireP.h:17
virtual void printData() const
Print the PDU&#39;s data (not including header).
DtVector myApertureEmitterLocationInFiringEntityCoordinates
Definition: directedEnergyFirePdu.h:179
Definition: standardVariableRecordP.h:32
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
DtEntityIdentifier myFiringEntityId
Definition: directedEnergyFirePdu.h:174
DIS 7 PDUs.
Definition: disEnums.h:313
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
float myPulseRepetitionFrequency
Definition: directedEnergyFirePdu.h:182
DtEntityType myMunitionType
Definition: directedEnergyFirePdu.h:176
Definition: directedEnergyPrecisionAimpointRecord.h:13
DtPulseShape myPulseShape
Definition: directedEnergyFirePdu.h:184
Contains the DtEventId class declaration.
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Instances of DtString are used to represent strings.
Definition: vlString.h:29
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
DtTime myShotStartTime
Definition: directedEnergyFirePdu.h:177
This file contains typedefs for machine dependant types.
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)