VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
diGuyCustomPduEncoder.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2020 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #pragma once
7 
8 #ifdef DtDIS
9 
10 #include "diGuyCustomPdu.h"
11 #include "entityStateRepository.h"
12 #include "pduEncoder.h"
13 
14 #include <list>
15 
16 class DtDIGuyCustomPduEncoder;
17 
19 typedef DtPdu*(*DtDIGuyEncodeFcn)(const DtEntityStateRepository& stateRep,
20  DtEntityStateRepository* asSeenByRemote,
21  DtClock* theClock, DtDIGuyCustomPduEncoder* encoder);
22 
23 class DT_DLL_VL DtDIGuyCustomPduEncoder : public DtPduEncoder
24 {
25 public:
26 
28  virtual DtPduEncoder* clone() const;
29 
31  DtDIGuyCustomPduEncoder();
32 
34  virtual ~DtDIGuyCustomPduEncoder();
35 
37 
38  virtual void setSendAsAttributes( bool enable );
39  virtual bool isSendAsAttributes() const;
41 
47 
48  virtual void addDiGuyEncoder( DtDIGuyEncodeFcn info );
49  virtual void removeDiGuyEncoder( const DtDIGuyEncodeFcn& info );
50  virtual void clearEncoders();
52 
54  virtual void encodeAndSend(
55  DtExerciseConn* exConn,
56  const DtEntityStateRepository& stateRep,
57  DtEntityStateRepository* asSeenByRemote );
58 
60  virtual void encode( DtPdu* pdu );
61 
64 
66  virtual void setDiGuyActionTimeThreshold( DtTime time );
67 
69  virtual DtTime diGuyActionTimeThreshold() const;
70 
72  virtual void setDiGuyAppearanceTimeThreshold( DtTime time );
73 
75  virtual DtTime diGuyAppearanceTimeThreshold() const;
76 
78  virtual void setDiGuyTypeTimeThreshold( DtTime time );
79 
81  virtual DtTime diGuyTypeTimeThreshold() const;
82 
84  virtual void setDiGuyShapeVariationsTimeThreshold( DtTime time );
85 
87  virtual DtTime diGuyShapeVariationsTimeThreshold() const;
88 
90  virtual void setDiGuyScaleTimeThreshold( DtTime time );
91 
93  virtual DtTime diGuyScaleTimeThreshold() const;
94 
96 
97 protected:
98 
100  static DtPdu* encodeDiGuyActionPdu(
101  const DtEntityStateRepository& stateRep,
102  DtEntityStateRepository* asSeenByRemote,
103  DtClock* theClock, DtDIGuyCustomPduEncoder* encoder );
104 
106  static DtPdu* encodeDiGuyAppearancePdu(
107  const DtEntityStateRepository& stateRep,
108  DtEntityStateRepository* asSeenByRemote,
109  DtClock* theClock, DtDIGuyCustomPduEncoder* encoder );
110 
112  static DtPdu* encodeDiGuyTypePdu(
113  const DtEntityStateRepository& stateRep,
114  DtEntityStateRepository* asSeenByRemote,
115  DtClock* theClock, DtDIGuyCustomPduEncoder* encoder );
116 
118  static DtPdu* encodeDiGuyShapeVariationsPdu(
119  const DtEntityStateRepository& stateRep,
120  DtEntityStateRepository* asSeenByRemote,
121  DtClock* theClock, DtDIGuyCustomPduEncoder* encoder );
122 
124  static DtPdu* encodeDiGuyScalePdu(
125  const DtEntityStateRepository& stateRep,
126  DtEntityStateRepository* asSeenByRemote,
127  DtClock* theClock, DtDIGuyCustomPduEncoder* encoder );
128 
130  static DtPdu* encodeDiGuyPatches(const DtEntityStateRepository& stateRep,
131  DtEntityStateRepository* asSeenByRemote,
132  DtClock* theClock, DtDIGuyCustomPduEncoder* encoder);
133 
136 
137  virtual void setDiGuyActionUpdate( DtTime time );
138  virtual DtTime diGuyActionUpdate() const;
139 
140  virtual void setDiGuyAppearanceUpdate( DtTime time );
141  virtual DtTime diGuyAppearanceUpdate() const;
142 
143  virtual void setDiGuyTypeUpdate( DtTime time );
144  virtual DtTime diGuyTypeUpdate() const;
145 
146  virtual void setDiGuyShapeVariationsUpdate( DtTime time );
147  virtual DtTime diGuyShapeVariationsUpdate() const;
148 
149  virtual void setDiGuyScaleUpdate( DtTime time );
150  virtual DtTime diGuyScaleUpdate() const;
151 
153 
154 protected:
155 
156  static short myShapeVariationsEncodingVersion;
157 
158  std::list<DtDIGuyEncodeFcn> myDiGuyCbList;
159 
160  DtTime myDiGuyActionPdusTimeThreshold;
161  DtTime myDiGuyAppearancePdusTimeThreshold;
162  DtTime myDiGuyTypePdusTimeThreshold;
163  DtTime myDiGuyShapeVariationsPdusTimeThreshold;
164  DtTime myDiGuyScalePdusTimeThreshold;
165 
166  DtTime myLastDiGuyActionPdusUpdate;
167  DtTime myLastDiGuyAppearancePdusUpdate;
168  DtTime myLastDiGuyTypePdusUpdate;
169  DtTime myLastDiGuyShapeVariationsPdusUpdate;
170  DtTime myLastDiGuyScalePdusUpdate;
171 
172  bool myIsSendAsAttributes;
173 
174 };
175 
176 #endif

Document ID: Generated on Mon Jun 22 21:18:40 EDT 2020 from SVN revision 213785
Copyright © 2005-2018 MAK Technologies. All Rights Reserved (www.mak.com)