![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef DtBaseEntityEncoder_H_ 00008 #define DtBaseEntityEncoder_H_ 00009 00010 #if DtHLA 00011 00012 #include "hStateEncoder.h" 00013 00017 00018 class DT_DLL_VL DtEntityStateRepository; 00019 class DT_DLL_VL DtAggregateStateRepository; 00020 class DT_DLL_VL DtBaseEntityStateRepository; 00021 00024 #define DtDECLARE_ENTITY_ATTR_CHECKER(attrName) \ 00025 DtDECLARE_ATTR_CHECKER(DtEntityStateRepository, attrName) 00026 00029 #define DtDECLARE_ENTITY_ATTR_ENCODER(attrName) \ 00030 DtDECLARE_ATTR_ENCODER(DtEntityStateRepository, attrName) 00031 00034 #define DtDECLARE_AGGREGATE_ATTR_CHECKER(attrName) \ 00035 DtDECLARE_ATTR_CHECKER(DtAggregateStateRepository, attrName) 00036 00039 #define DtDECLARE_AGGREGATE_ATTR_ENCODER(attrName) \ 00040 DtDECLARE_ATTR_ENCODER(DtAggregateStateRepository, attrName) 00041 00044 #define DtDECLARE_BASE_ENTITY_ATTR_CHECKER(attrName) \ 00045 DtDECLARE_ATTR_CHECKER(DtBaseEntityStateRepository, attrName) 00046 00049 #define DtDECLARE_BASE_ENTITY_ATTR_ENCODER(attrName) \ 00050 DtDECLARE_ATTR_ENCODER(DtBaseEntityStateRepository, attrName) 00051 00057 00058 class DT_DLL_VL DtBaseEntityEncoder : public DtHlaStateEncoder 00059 { 00060 public: 00061 00063 DtBaseEntityEncoder( 00064 DtExerciseConn* exConn, 00065 DtObjClassDesc* classDesc); 00066 00068 virtual ~DtBaseEntityEncoder(); 00069 00071 DtBaseEntityEncoder(const DtBaseEntityEncoder& orig); 00072 00074 DtBaseEntityEncoder& operator=(const DtBaseEntityEncoder& orig); 00075 00076 public: 00077 00079 static DtHlaStateEncoder* create( 00080 DtExerciseConn* exConn, 00081 DtObjClassDesc* classDesc); 00082 00085 static bool tpsiChanged( 00086 const DtBaseEntityStateRepository& stateRep, 00087 const DtBaseEntityStateRepository& asSeenByRemote); 00088 00089 protected: 00090 00092 00094 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(Spatial); 00095 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(RelativeSpatial); 00096 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(IsPartOf); 00097 00099 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(AccelerationVector); 00100 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(AngularVelocityVector); 00101 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(EntityType); 00102 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(IsFrozen); 00103 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(Orientation); 00104 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(VelocityVector); 00105 00107 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(DeadReckoningAlgorithm); 00108 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(Position); 00109 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(EntityIdentifier); 00110 00112 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(DRAlgorithm); 00113 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(WorldLocation); 00114 DtDECLARE_BASE_ENTITY_ATTR_CHECKER(EntityID); 00115 00117 00119 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(Spatial); 00120 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(RelativeSpatial); 00121 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(IsPartOf); 00122 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(IsPartOf_RPR_20014); //2.0d14 00123 00125 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(AccelerationVector); 00126 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(AngularVelocityVector); 00127 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(EntityType); 00128 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(IsFrozen); 00129 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(Orientation); 00130 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(VelocityVector); 00131 00133 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(DeadReckoningAlgorithm); 00134 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(Position); 00135 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(EntityIdentifier); 00136 00138 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(DRAlgorithm); 00139 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(WorldLocation); 00140 DtDECLARE_BASE_ENTITY_ATTR_ENCODER(EntityID); 00141 }; 00142 00148 #define DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_ENCODER( \ 00149 attrName, netType, inspector) \ 00150 DtDEFINE_SIMPLE_ATTR_ENCODER(DtBaseEntityEncoder, \ 00151 DtBaseEntityStateRepository, \ 00152 attrName, netType, inspector) 00153 00159 #define DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_CHECKER( \ 00160 attrName, inspector) \ 00161 DtDEFINE_SIMPLE_ATTR_CHECKER(DtBaseEntityEncoder, \ 00162 DtBaseEntityStateRepository, \ 00163 attrName, inspector) 00164 00165 #endif 00166 #endif 00167