VR-Link API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
firePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if DtDIS
12 
13 #include "hostStructs.h"
14 #include "eventId.h"
15 #include "interaction.h"
16 #include "packets/fireP.h"
17 #include <matrix/vlMath.h>
18 
19 
20 
22 class DT_DLL_VL DtFirePdu;
23 
25 typedef DtFirePdu DtFireInteraction;
26 
27 typedef void (*DtFireInteractionCb)(DtFireInteraction *inter, void *usr);
28 
34 class DT_DLL_VL DtFirePdu : public DtInteraction
35 {
36 public:
37 
38  enum { PduStaticSize=96 };
39 
40 public:
41 
42  DtFirePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
43 
44  DtFirePdu(const DtNetFirePdu *initial,
45  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
46 
47  DtFirePdu(const DtEntityIdentifier &attacker,
48  const DtEntityIdentifier &target,
49  const DtEntityIdentifier &munition,
50  const DtEventID &eventId,
51  const DtVector& location,
52  const DtBurstDescriptor &burst,
53  const DtVector32& linVelocity,
54  const double range,
56 
57  virtual const DtObjectId &attackerId() const;
58  virtual void setAttackerId(const DtObjectId &id);
59 
60  virtual const DtObjectId &targetId() const;
61  virtual void setTargetId(const DtObjectId &id);
62 
63  virtual const DtObjectId &munitionId() const;
64  virtual void setMunitionId(const DtObjectId &id);
65 
66  virtual const DtEventID &eventId() const;
67  virtual void setEventId(const DtEventID &id);
68 
69  virtual unsigned long fireMissionIndex() const;
70  virtual void setFireMissionIndex(unsigned long i);
71 
72  virtual const DtVector& location() const;
73  virtual void setLocation(const DtVector& location);
74 
75  virtual const DtVector32& velocity() const;
76  virtual void setVelocity(const DtVector32& velocity);
77 
78  virtual double range() const;
79  virtual void setRange(double range);
80 
81  virtual DtDetonatorFuze fuseType() const;
82  virtual void setFuseType(DtDetonatorFuze f);
83 
84  virtual const DtEntityType &munitionType() const;
85  virtual void setMunitionType(const DtEntityType &t);
86 
87  virtual int quantity() const;
88  virtual void setQuantity(int q);
89 
90  virtual int rate() const;
91  virtual void setRate(int r);
92 
93  virtual DtWarheadType warheadType() const;
94  virtual void setWarheadType(DtWarheadType t);
95 
97  virtual const DtBurstDescriptor &burst() const;
98  virtual void setBurst(const DtBurstDescriptor &burst);
99 
100  virtual void printData() const;
101  virtual void printDataToStream(std::ostream& stream) const;
102  virtual void printDataToString(DtString& str) const;
103 
104 public:
105 
106  static DtPdu *create(const DtNetPacket *initial,
107  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
108 
109  static void addCallback(DtExerciseConn *conn,
110  DtFireInteractionCb cb, void *usr);
111  static void removeCallback(DtExerciseConn *conn,
112  DtFireInteractionCb cb, void *usr);
113 
114 protected:
115 
116  DtPduKind internalGetPduKind() const {return DtFirePduKind;}
117  DtObjectId att;
118  DtObjectId tar;
119  DtObjectId mun;
120  DtEventID event;
121  DtVector loc;
122  DtVector32 vel;
123  DtBurstDescriptor theBurst;
124  DtEntityType myMunType;
125 };
126 
127 #endif
DtInteraction is an abstract base class for representing HLA interactions (or events) (as opposed to ...
Definition: interactionHLA.h:33
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
This file declares the class DtNetFirePdu.
Definition: pduHeader.h:14
static void removeCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
This file defines math constants and methods which may be useful in simulations.
virtual void printData() const
Print the interaction&#39;s data to DtInfo.
Definition: interactionHLA.h:348
This file is used as a convenience to group interaction concepts together.
Definition: fireP.h:17
virtual void printDataToStream(std::ostream &stream) const
Print the interaction&#39;s data to the stream.
Definition: interactionHLA.h:356
Definition: vlVector.h:224
Instances of DtFireInteraction are used to represent the firing of a weapon.
Definition: fireInteractionHLA.h:35
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
static void addCallback(DtExerciseConn *conn, const std::vector< DtString > *classes, DtReceiveInteractionCb cb, void *usr, DtDDMRegionSP region=DtDDMRegionSP())
Register/Deregister callback function cb with conn, on all interaction class name (char*) contained i...
Definition: vlVector.h:162
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
Burst descriptors represent Fire and detonate descriptors in DIS and HLA.
Definition: burstDescriptor.h:24
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
void(* DtFireInteractionCb)(DtFireInteraction *inter, void *usr)
Fire interaction callback function signature.
Definition: fireInteractionHLA.h:28
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtObjectId instances are used to represent RTI::ObjectInstances in VR-Link.
Definition: objectId.h:38
Definition: disEnums.h:242
DtDetonatorFuze
SECTION 1.
Definition: disEnums.h:28
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
DtWarheadType
Definition: disEnums.h:42
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
virtual void printDataToString(DtString &buff) const
Print the interaction&#39;s data to the string provided.
Definition: interactionHLA.h:352

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)