VR-Link API Documentation for HLA Evolved
 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) 1992-2025 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;
21 class DtDirectedEnergyFirePdu;
26 
28 typedef DtDirectedEnergyFirePdu DtDirectedEnergyFire;
29 
30 typedef void (*DtDirectedEnergyFireCb)(DtDirectedEnergyFire *inter, void *usr);
31 
34 class DT_DLL_VL DtDirectedEnergyFirePdu : public DtStateMsg
35 {
36 public:
37 
38  static DtPdu* create( const DtNetPacket *initial,
40  DtPduFactory* pduFactory = 0 );
41 
42  DtDirectedEnergyFirePdu( DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER );
43 
44  DtDirectedEnergyFirePdu( const DtNetDirectedEnergyFirePdu *initial,
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 
167  DtPduKind internalGetPduKind() const {return DtDirectedEnergyFirePduKind;}
168 
169 protected:
170 
172  static const int theStaticSize;
173 
174  DtEntityIdentifier myFiringEntityId;
175  DtEventID myEvent;
176  DtEntityType myMunitionType;
177  DtTime myShotStartTime;
178  float myCumulativeShotTime;
179  DtVector myApertureEmitterLocationInFiringEntityCoordinates;
180  float myApertureDiameter;
181  float myWaveLength;
182  float myPulseRepetitionFrequency;
183  float myPulseWidth;
184  DtPulseShape myPulseShape;
185  DtNetU16 myFlags;
186 
187 };
188 
189 #endif
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Contains the DtEntityType and DtRadioEntityType class declarations.
Network-order unsigned 16-bit quantity.
Definition: vlNetTypes.h:52
Definition: pduHeader.h:14
This file is used as a convenience to group interaction concepts together.
DtPulseShape
Definition: disEnums.h:2978
Definition: vlVector.h:224
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
Represents Events in the RPR FOM.
Definition: eventId.h:52
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
Definition: standardVariableRecordP.h:32
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
DIS 7 PDUs.
Definition: disEnums.h:313
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
Definition: directedEnergyPrecisionAimpointRecord.h:13
DtReal DtTime
A definition of DtTime.
Definition: vlTime.h:19
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:36
class DtStateMsg:
Definition: stateMsgHLA.h:32
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 Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)