VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
physicalEntityDecoder.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 #ifndef physicalEntityDecoder_H_
8 #define physicalEntityDecoder_H_
9 
10 #if DtHLA
11 
12 #include "baseEntityDecoder.h"
13 #include <vlutil/vlTime.h>
14 
18 
22 struct DtNetArtParamRecord;
24 struct DtNetAttachedPart;
25 
31 
32 class DT_DLL_VL DtPhysicalEntityDecoder : public DtBaseEntityDecoder
33 {
34 public:
35 
37  DtPhysicalEntityDecoder(
38  DtExerciseConn* exConn,
39  DtObjClassDesc* classDesc);
40 
42  virtual ~DtPhysicalEntityDecoder();
43 
45  DtPhysicalEntityDecoder(const DtPhysicalEntityDecoder& orig);
46 
48  DtPhysicalEntityDecoder& operator=(const DtPhysicalEntityDecoder& orig);
49 
50 public:
51 
54  static DtHlaStateDecoder* create(
55  DtExerciseConn* exConn,
56  DtObjClassDesc* classDesc);
57 
58 protected:
59 
63  void addMyDecoders(DtObjClassDesc* classDesc);
64 
67  virtual void decode(const DtStateMsg& msg, DtStateRepository* rep) const;
68 
69 protected:
70 
72  DtDECLARE_ENTITY_ATTR_DECODER(DamageState);
73  DtDECLARE_ENTITY_ATTR_DECODER(EngineSmokeOn);
74  DtDECLARE_ENTITY_ATTR_DECODER(FlamesPresent);
75  DtDECLARE_ENTITY_ATTR_DECODER(HasFuelSupplyCap);
76  DtDECLARE_ENTITY_ATTR_DECODER(HasRecoveryCap);
77  DtDECLARE_ENTITY_ATTR_DECODER(HasRepairCap);
78  DtDECLARE_ENTITY_ATTR_DECODER(Immobilized);
79  DtDECLARE_ENTITY_ATTR_DECODER(Marking);
80  DtDECLARE_ENTITY_ATTR_DECODER(PowerPlantOn);
81  DtDECLARE_ENTITY_ATTR_DECODER(SmokePlumePresent);
82  DtDECLARE_ENTITY_ATTR_DECODER(TentDeployed);
83 
85  DtDECLARE_ENTITY_ATTR_DECODER(ArticulatedParametersArrayPre09);
86  DtDECLARE_ENTITY_ATTR_DECODER(TrailState);
87  DtDECLARE_ENTITY_ATTR_DECODER(HatchState);
88  DtDECLARE_ENTITY_ATTR_DECODER(LifeformState);
89  DtDECLARE_ENTITY_ATTR_DECODER(LightsState);
90  DtDECLARE_ENTITY_ATTR_DECODER(RampDeployed);
91 
93  DtDECLARE_ENTITY_ATTR_DECODER(ArticulatedParametersArray);
94  DtDECLARE_ENTITY_ATTR_DECODER(TrailingEffectsCode);
95  DtDECLARE_ENTITY_ATTR_DECODER(AlternateEntityType);
96  DtDECLARE_ENTITY_ATTR_DECODER(CamouflageType);
97  DtDECLARE_ENTITY_ATTR_DECODER(FirePowerDisabled);
98  DtDECLARE_ENTITY_ATTR_DECODER(ForceIdentifier);
99  DtDECLARE_ENTITY_ATTR_DECODER(IsConcealed);
100  DtDECLARE_ENTITY_ATTR_DECODER(HasAmmunitionSupplyCap);
101 
103  DtDECLARE_ENTITY_ATTR_DECODER(AcousticSignatureIndex);
104  DtDECLARE_ENTITY_ATTR_DECODER(InfraredSignatureIndex);
105  DtDECLARE_ENTITY_ATTR_DECODER(PropulsionSystemsData);
106  DtDECLARE_ENTITY_ATTR_DECODER(RadarCrossSectionSignatureIndex);
107  DtDECLARE_ENTITY_ATTR_DECODER(VectoringNozzleSystemData);
108  DtDECLARE_ENTITY_ATTR_DECODER(LiveEntityMeasuredSpeed);
109 
111  DtDECLARE_ENTITY_ATTR_DECODER(DIGuyAction);
112  DtDECLARE_ENTITY_ATTR_DECODER(DIGuyAppearance);
113  DtDECLARE_ENTITY_ATTR_DECODER(DIGuyArc);
114  DtDECLARE_ENTITY_ATTR_DECODER(DIGuyType);
115  DtDECLARE_ENTITY_ATTR_DECODER(DIGuyParent);
116 
118  DtDECLARE_ENTITY_ATTR_DECODER(Status);
119  DtDECLARE_ENTITY_ATTR_DECODER(UniqueId);
120  DtDECLARE_ENTITY_ATTR_DECODER(SourceUnit);
121  DtDECLARE_ENTITY_ATTR_DECODER(Callsign);
122  DtDECLARE_ENTITY_ATTR_DECODER(Activity);
123  DtDECLARE_ENTITY_ATTR_DECODER(EmbeddedUnitList);
124  DtDECLARE_ENTITY_ATTR_DECODER(SymbolId);
125  DtDECLARE_ENTITY_ATTR_DECODER(Destination);
126  DtDECLARE_ENTITY_ATTR_DECODER(Route);
127 
128 
130  static void decodeAttParts(int numParams,
131  DtNetAttachedPart* netParams, DtAttachedPartCollection* attList);
132 
134  static void convertFromRPR1_0(
135  DtNetArtParamRecord* netParams,
136  DtNetArtParamRecordRPR1* netParamsRPR1,
137  int numRecords);
138 };
139 
145 #define DtDEFINE_SIMPLE_PHYS_ENTITY_ATTR_DECODER_WITH_CAST( \
146  attrName, netType, mutator, castExpr) \
147  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
148  DtPhysicalEntityDecoder, DtEntityStateRepository, \
149  attrName, netType, mutator, castExpr)
150 
151 #define DtDEFINE_SIMPLE_PHYS_ENTITY_ATTR_DECODER( \
152  attrName, netType, mutator) \
153  DtDEFINE_SIMPLE_ATTR_DECODER_MUTATOR( \
154  DtPhysicalEntityDecoder, DtEntityStateRepository, \
155  attrName, netType, mutator)
156 
157 #define DtDEFINE_LIGHT_ATTR_DECODER( \
158  decClass, attrName, arg1) \
159  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST_AND_PARAM( \
160  decClass, DtEntityStateRepository, attrName, DtNetBoolean, setLightState, arg1, (bool) (DtU32))
161 
162 
163 #endif
164 #endif
165 
A DtAttachedPartCollection is a collection of attached parts of an entity.
Definition: attachedPartCollection.h:24
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
Definition: netStructs.h:534
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
This file contains the declaration of DtClock and DtTime.
A DtArticulatedPartCollection is a collection of articulated parts typically of an entity...
Definition: articulatedPartCollection.h:29
Instances of DtEntityStateRepository are used to maintain attributes and state of entity objects in a...
Definition: entityStateRepository.h:42
Definition: netStructs.h:467
DtStateRepository is an abstract base class for maintaining state for an object.
Definition: stateRepository.h:50
Definition: netStructs.h:478
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21

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)