VR-Link API Documentation for DIS
baseEntityDecoder.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 #ifndef DtBaseEntityDecoder_H_
8 #define DtBaseEntityDecoder_H_
9 
10 #if DtHLA
11 
12 #include "hlaStateDecoder.h"
13 
17 
20 
23 #define DtDECLARE_ENTITY_ATTR_DECODER(attrName) \
24  DtDECLARE_ATTR_DECODER(DtEntityStateRepository, attrName)
25 
28 #define DtDECLARE_AGGREGATE_ATTR_DECODER(attrName) \
29  DtDECLARE_ATTR_DECODER(DtAggregateStateRepository, attrName)
30 
33 #define DtDECLARE_BASE_ENTITY_ATTR_DECODER(attrName) \
34  DtDECLARE_ATTR_DECODER(DtBaseEntityStateRepository, attrName)
35 
36 
41 class DT_DLL_VL DtBaseEntityDecoder : public DtHlaStateDecoder
42 {
43 public:
44 
46  DtBaseEntityDecoder(
47  DtExerciseConn* exConn,
48  DtObjClassDesc* classDesc);
49 
51  virtual ~DtBaseEntityDecoder();
52 
54  DtBaseEntityDecoder(const DtBaseEntityDecoder& orig);
55 
57  DtBaseEntityDecoder& operator=(const DtBaseEntityDecoder& orig);
58 
60  virtual DtHlaStateDecoder* clone() const;
61 
66  virtual DtHlaStateDecoder* clone(DtObjClassDesc* classDesc) const;
67 
68 public:
69 
71  static DtHlaStateDecoder* create(
72  DtExerciseConn* exConn,
73  DtObjClassDesc* classDesc);
74 
75 protected:
76 
80  void addMyDecoders();
81 
84  virtual void decode(const DtStateMsg& msg,
85  DtStateRepository* stateRep) const;
86 
88 
90  DtDECLARE_BASE_ENTITY_ATTR_DECODER(Spatial);
91  DtDECLARE_BASE_ENTITY_ATTR_DECODER(RelativeSpatial);
92  DtDECLARE_BASE_ENTITY_ATTR_DECODER(IsPartOf);
93 
95  DtDECLARE_BASE_ENTITY_ATTR_DECODER(IsPartOf_RPR_20014);
96 
98  DtDECLARE_BASE_ENTITY_ATTR_DECODER(AccelerationVector);
99  DtDECLARE_BASE_ENTITY_ATTR_DECODER(AngularVelocityVector);
100  DtDECLARE_BASE_ENTITY_ATTR_DECODER(EntityType);
101  DtDECLARE_BASE_ENTITY_ATTR_DECODER(IsFrozen);
102  DtDECLARE_BASE_ENTITY_ATTR_DECODER(Orientation);
103  DtDECLARE_BASE_ENTITY_ATTR_DECODER(VelocityVector);
104 
106  DtDECLARE_BASE_ENTITY_ATTR_DECODER(DRAlgorithm);
107  DtDECLARE_BASE_ENTITY_ATTR_DECODER(Position);
108  DtDECLARE_BASE_ENTITY_ATTR_DECODER(EntityID);
109 
111  DtDECLARE_BASE_ENTITY_ATTR_DECODER(DeadReckoningAlgorithm);
112  DtDECLARE_BASE_ENTITY_ATTR_DECODER(WorldLocation);
113  DtDECLARE_BASE_ENTITY_ATTR_DECODER(EntityIdentifier);
114 };
115 
121 #define DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_DECODER_WITH_CAST( \
122  attrName, netType, mutator, castExpr) \
123  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
124  DtBaseEntityDecoder, DtBaseEntityStateRepository, \
125  attrName, netType, mutator, castExpr)
126 
127 #define DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_DECODER( \
128  attrName, netType, inspector) \
129  DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_DECODER_WITH_CAST( \
130  attrName, netType, inspector, (netType))
131 
132 #endif
133 #endif
134 
135 
136 

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)