![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrlinkReflectedEntityStateInterceptor.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvVrl/DtBaseEntityStateInterceptor.h> 00015 #include <vrvVrl/DtPartCollectionInterceptor.h> 00016 #include <vrvUtil/DtVirtualBaseClass.h> 00017 #include <vlutil/vlTime.h> 00018 #include <vl/globalObjDes.h> 00019 #include <matrix/vlVector.h> 00020 #include <matrix/vlTaitBryan.h> 00021 #include <vlpi/disEnums.h> 00022 #include <vlpi/entityType.h> 00023 00024 class DtStateRepository; 00025 class DtEntityStateRepository; 00026 class DtArticulatedPartCollection; 00027 00028 namespace makVrv 00029 { 00030 namespace DT_PROTOCOL_NAMESPACE 00031 { 00032 00033 class DtVrlinkConnection; 00034 class DtVrlinkEntityStateListener; 00035 00039 template <typename StateRepClass> 00040 class DtEntityStateInterceptor : public StateRepClass, public DtBaseEntityStateInterceptor 00041 { 00042 public: 00043 00046 DtEntityStateInterceptor(DtVrlinkEntityStateListener* listener); 00047 00049 virtual ~DtEntityStateInterceptor(); 00050 00051 private: 00053 //\throws DtCorrutedState this class is not copyable. 00054 DtEntityStateInterceptor(const DtEntityStateInterceptor& orig); 00055 00057 //\throws DtCorrutedState this class is not copyable. 00058 DtEntityStateInterceptor& operator=(const DtEntityStateInterceptor& orig); 00059 00061 //\throws DtCorrutedState this class is not copyable. 00062 virtual DtStateRepository* clone(bool copy = false) const; 00063 public: 00064 00065 //@name DtBaseEntityStateRepository functions 00067 00070 virtual void setLocation(const DtVector & location, DtTime aTime); 00071 00073 virtual void setVelocity(const DtVector & Velocity, DtTime aTime); 00074 00076 virtual void setAcceleration(const DtVector & Acceleration, DtTime aTime); 00077 00079 virtual void setOrientation(const DtTaitBryan& orient, DtTime aTime); 00080 00082 virtual void setRotationalVelocity(const DtVector & BodyRates, DtTime aTime); 00083 00085 virtual void setAlgorithm(DtDeadReckonTypes alg); 00086 00092 virtual void setHostGlobalId( const DtGlobalObjectDesignator& id ); 00093 00094 virtual void clearHostGlobalId(); 00095 00097 virtual void setRelativeLocation(const DtVector & location, DtTime aTime); 00098 00101 virtual void setRelativeVelocity(const DtVector & Velocity, DtTime aTime); 00102 00105 virtual void setRelativeAcceleration(const DtVector & Acceleration, 00106 DtTime aTime); 00107 00109 virtual void setRelativeOrientation(const DtTaitBryan& orient, 00110 DtTime aTime); 00111 00113 virtual void setRelativeRotationalVelocity(const DtVector & BodyRates, 00114 DtTime aTime); 00115 00117 virtual void setRelativeFrozen(bool onOff); 00118 00120 virtual void setRelativeAlgorithm(DtDeadReckonTypes alg); 00121 00123 virtual void setRelativePosition( const DtVector & newVal ); 00124 00125 /* 00126 00128 virtual void setNature( const DtNature newVal ); 00129 00131 virtual void setPartPosition( const DtPosition newVal ); 00132 00134 virtual void setStationName( const DtStationName newVal ); 00135 00137 virtual void setStationNumber( const DtU16 newVal ); 00138 00140 virtual void setRange( const DtFloat32 newVal ); 00141 00143 virtual void setBearing( const DtFloat32 newVal ); 00144 00146 virtual void setEntityId(const DtEntityIdentifier& id); 00147 */ 00149 virtual void setEntityType(const DtEntityType& type); 00150 /* 00152 virtual void setFederateId(const DtFederateId& id); 00153 00155 00156 //@name DtEntityStateRepository functions 00158 00159 */ 00161 virtual void setForceId(DtForceType force); 00162 00163 /* 00165 virtual void setGuise(const DtEntityType& type); 00166 */ 00168 virtual void setFrozen(bool onOff); 00169 /* 00172 virtual void setMarkingCharSet(int charSet); 00173 */ 00176 virtual void setMarkingText(const char* text); 00177 /* 00183 00184 00185 virtual void setPowerPlantOn(bool onOff); 00186 */ 00188 virtual void setDamageState(DtDamageState s); 00189 00191 virtual void setEngineSmokeOn(bool onOff); 00192 00194 virtual void setFlamesPresent(bool onOff); 00195 /* 00196 00198 virtual void setHasFuelSupplyCap(bool onOff); 00199 00201 virtual void setHasRecoveryCap(bool onOff); 00202 00204 virtual void setHasRepairCap(bool onOff); 00205 00207 virtual void setHatchState(DtHatchState s); 00208 00210 virtual void setImmobilized(bool onOff); 00211 */ 00214 virtual void setLifeformState(DtLifeformState s); 00215 /* 00217 virtual void setLightState(DtLightType s, bool onOff); 00218 00221 virtual void setLightState(DtLightState s); 00222 00224 virtual void setDensity(DtDensityType dens); 00225 00227 virtual void setRampDeployed(bool onOff); 00228 */ 00230 virtual void setSmokePlumePresent(bool onOff); 00231 /* 00233 virtual void setTentDeployed(bool onOff); 00234 00235 */ 00237 virtual void setTrailState(DtTrailState s); 00238 /* 00239 00241 virtual void setCamouflageType(DtCamouflageType type); 00242 00244 virtual void setFirePowerDisabled(bool onOff); 00245 00247 virtual void setIsConcealed(bool onOff); 00248 00250 virtual void setAfterburnerOn(bool onOff); 00251 00253 virtual void setHasAmmunitionSupplyCap(bool onOff); 00254 00256 virtual void setLauncherRaised(bool onOff); 00257 00259 virtual void setLauncherFlashPresent(bool onOff); 00260 */ 00262 virtual void setPrimaryWeaponState(DtWeaponState s); 00263 /* 00265 virtual void setSecondaryWeaponState(DtWeaponState s); 00266 00268 virtual void setComplianceState(DtComplianceState s); 00269 00271 virtual void setAntennaRaised(bool upDown); 00272 00274 virtual void setMissionKill(bool yesNo); 00275 00277 virtual void setInternalHeatSource(bool onOff); 00278 00280 virtual void setMaskedCloaked(bool onOff); 00281 */ 00282 //We need this for DIS as individual functions are not called. 00283 #if DtDIS 00284 00285 00286 00287 virtual void setAppearance(DtU32 app); 00288 #endif 00289 /* 00290 00291 */ 00296 virtual void setAppearanceAttribute(const DtAppearAttribute attr, 00297 const DtAppearAttrVal val); 00298 00300 /* 00301 00303 virtual void setInfraRedSigRepIndex(DtU16 value); 00304 virtual DtU16 infraRedSigRepIndex() const; 00305 00307 virtual void setAcousticSigRepIndex(DtU16 value); 00308 virtual DtU16 acousticSigRepIndex() const; 00309 00311 virtual void setRadarSigRepIndex(DtU16 value); 00312 virtual DtU16 radarSigRepIndex() const; 00313 00315 virtual void setMeasuredSpeed(DtU16 value); 00316 00318 virtual void setCapabilities(DtU32 cap); 00319 */ 00321 00322 virtual void setDiGuyAction(const DtString& val, bool paused); 00323 virtual void setDiGuyAppearance(const DtString& val); 00324 virtual void setDiGuyArc(const std::vector<char>& val); 00325 virtual void setDiGuyType(const DtString& val); 00326 virtual void setDiGuyParent(const DtEntityIdentifier& val); 00327 00329 virtual DtArticulatedPartCollection* artPartList(); 00330 00331 protected: 00332 DtVrlinkEntityStateListener* myListener; 00333 }; 00334 } 00335 }