VR-Link API Documentation for HLA Evolved
 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 
33 {
34 public:
35 
38  DtExerciseConn* exConn,
39  DtObjClassDesc* classDesc);
40 
42  virtual ~DtPhysicalEntityDecoder();
43 
46 
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);
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);
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);
115  DtDECLARE_ENTITY_ATTR_DECODER(DIGuyParent);
116 
120  DtDECLARE_ENTITY_ATTR_DECODER(SourceUnit);
123  DtDECLARE_ENTITY_ATTR_DECODER(EmbeddedUnitList);
125  DtDECLARE_ENTITY_ATTR_DECODER(Destination);
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: exerciseConnHLA.h:61
Definition: netStructs.h:534
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
virtual void decode(const DtStateMsg &msg, DtStateRepository *stateRep) const
Virtual function override that sets some timestamping info, then calls down to the base class to perf...
Instances of DtBaseEntityDecoder are used to decode a base entity state message into a state reposito...
Definition: baseEntityDecoder.h:41
void addMyDecoders()
Add decoding functions for the attributes.
This file contains the declaration of DtClock and DtTime.
class DtPhysicalEntityDecoder:
Definition: physicalEntityDecoder.h:32
An instance of DtObjClassDesc is a &quot;class descriptor&quot; for an HLA Object class.
Definition: objClassDesc13.h:41
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
DtHlaStateDecoder is used to provide decoding of a state message into a state repository in an HLA (a...
Definition: hlaStateDecoder.h:34
This file provides a declaration of the class DtBaseEntityDecoder.
Definition: netStructs.h:467
DtStateRepository is an abstract base class for maintaining state for an object.
Definition: stateRepository.h:50
Definition: netStructs.h:478
static DtHlaStateDecoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
Create a DtBaseEntityDecoder. Caller is responsible for deletion.
DtBaseEntityDecoder & operator=(const DtBaseEntityDecoder &orig)
assignment operator
class DtStateMsg:
Definition: stateMsgHLA.h:32
#define DtDECLARE_ENTITY_ATTR_DECODER(attrName)
This is used to declare attribute decoding functions which are members of the class.
Definition: baseEntityDecoder.h:23

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)