VR-Link API Documentation for HLA 1.3
hBaseEntEnc.h
Go to the documentation of this file.
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 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)