VR-Link API Documentation for HLA 1.3
directedEnergyFirePublisher.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 VT MAK
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 
15 #include <vl/objectPublisherDIS.h>
16 #include <vl/pdu.h>
18 #include <vlutil/vlPrint.h>
21 
22 class DT_DLL_VL DtDirectedEnergyFirePublisher : public DtObjectPublisher
23 {
24 public:
25 
27  typedef DtDirectedEnergyFireRepository* (*DtStateRepCreator)();
28 
29 public:
30 
32  DtDirectedEnergyFirePublisher(
33  DtDirectedEnergyFireRepository *stateRepToUse,
34  DtExerciseConn* conn);
35 
37  DtDirectedEnergyFirePublisher(DtExerciseConn* conn);
38 
40  virtual ~DtDirectedEnergyFirePublisher();
41 
42 public:
46  virtual void tick();
47 
50  virtual void setPulsedBeamMode(bool pulseOnPulseOff);
51 
54  virtual inline DtDirectedEnergyFireRepository* directedEnergyFireStateRep();
55 
57  virtual inline DtDirectedEnergyFireRepository* defr();
58 
61  virtual inline DtDirectedEnergyFireDecoder* decoder() { return myDecoder; }
62 
65  virtual inline DtDirectedEnergyFireEncoder* encoder() { return myEncoder; }
66 
68  virtual const DtEventId& eventId() const;
69 
72  virtual inline void forceUpdate();
73 
75  virtual const DtObjectId& localId() const;
77  virtual const DtObjectId& id() const;
79  virtual const DtGlobalObjectDesignator& globalId() const;
80 
81 public:
82 
84  static void setStateRepCreator(DtStateRepCreator creator);
85  static DtStateRepCreator stateRepCreator(void);
86 
87 protected:
88 
90  void init( const DtEventId& = DtEventId::nullId());
91 
92  virtual void startEngagement();
93 
96  virtual void finishEngagement();
97 
99  virtual void sendFirePdu();
100 
102  virtual void sendDetonationPdu();
103 
105  DtDirectedEnergyFirePublisher( const DtDirectedEnergyFirePublisher& );
106 
108  DtDirectedEnergyFirePublisher& operator=( const DtDirectedEnergyFirePublisher& );
109 
110 protected:
111  DtDirectedEnergyFireDecoder* myDecoder;
112  DtDirectedEnergyFireEncoder* myEncoder;
113  bool myPulseBeamMode;
114  bool myEngagementInProgress;
115  bool myHaveSentFire;
116 protected:
117 
118  static DtStateRepCreator theStateRepCreator;
119 };
120 
121 inline DtDirectedEnergyFireRepository* DtDirectedEnergyFirePublisher::directedEnergyFireStateRep()
122 {
123  return defr();
124 }
125 
126 inline DtDirectedEnergyFireRepository* DtDirectedEnergyFirePublisher::defr()
127 {
128  return static_cast<DtDirectedEnergyFireRepository*>(myStateRep);
129 }
130 
131 inline void DtDirectedEnergyFirePublisher::forceUpdate()
132 {
133  myEncoder->setSendNeeded();
134 }
135 
136 #endif

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)