VR-Link API Documentation for DIS
hBaseEntDec.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 DtBaseEntityDecoder_H_ 
00008 #define DtBaseEntityDecoder_H_
00009 
00010 #if DtHLA 
00011 
00012 #include "hStateDecoder.h"
00013 
00017 
00018 class DT_DLL_VL DtEntityStateRepository;
00019 class DT_DLL_VL DtBaseEntityStateRepository;
00020 
00023 #define DtDECLARE_ENTITY_ATTR_DECODER(attrName) \
00024    DtDECLARE_ATTR_DECODER(DtEntityStateRepository, attrName) 
00025 
00028 #define DtDECLARE_AGGREGATE_ATTR_DECODER(attrName) \
00029    DtDECLARE_ATTR_DECODER(DtAggregateStateRepository, attrName) 
00030 
00033 #define DtDECLARE_BASE_ENTITY_ATTR_DECODER(attrName) \
00034    DtDECLARE_ATTR_DECODER(DtBaseEntityStateRepository, attrName) 
00035 
00036 
00041 class DT_DLL_VL DtBaseEntityDecoder : public DtHlaStateDecoder
00042 {
00043 public:
00044 
00046    DtBaseEntityDecoder(
00047       DtExerciseConn* exConn,
00048       DtObjClassDesc* classDesc);
00049 
00051    virtual ~DtBaseEntityDecoder();
00052 
00054    DtBaseEntityDecoder(const DtBaseEntityDecoder& orig);
00055 
00057    DtBaseEntityDecoder& operator=(const DtBaseEntityDecoder& orig);
00058 
00060    virtual DtHlaStateDecoder* clone() const;
00061 
00066    virtual DtHlaStateDecoder* clone(DtObjClassDesc* classDesc) const;
00067 
00068 public:
00069 
00071    static DtHlaStateDecoder* create(
00072       DtExerciseConn* exConn,
00073       DtObjClassDesc* classDesc);
00074 
00075 protected:
00076 
00080    void addMyDecoders();
00081 
00084    virtual void decode(const DtStateMsg& msg,
00085       DtStateRepository* stateRep) const;
00086    
00088 
00090    DtDECLARE_BASE_ENTITY_ATTR_DECODER(Spatial);
00091    DtDECLARE_BASE_ENTITY_ATTR_DECODER(RelativeSpatial);
00092    DtDECLARE_BASE_ENTITY_ATTR_DECODER(IsPartOf);
00093 
00095    DtDECLARE_BASE_ENTITY_ATTR_DECODER(IsPartOf_RPR_20014);
00096 
00098    DtDECLARE_BASE_ENTITY_ATTR_DECODER(AccelerationVector);
00099    DtDECLARE_BASE_ENTITY_ATTR_DECODER(AngularVelocityVector);
00100    DtDECLARE_BASE_ENTITY_ATTR_DECODER(EntityType);
00101    DtDECLARE_BASE_ENTITY_ATTR_DECODER(IsFrozen);
00102    DtDECLARE_BASE_ENTITY_ATTR_DECODER(Orientation);
00103    DtDECLARE_BASE_ENTITY_ATTR_DECODER(VelocityVector);
00104 
00106    DtDECLARE_BASE_ENTITY_ATTR_DECODER(DRAlgorithm);
00107    DtDECLARE_BASE_ENTITY_ATTR_DECODER(Position);
00108    DtDECLARE_BASE_ENTITY_ATTR_DECODER(EntityID);
00109 
00111    DtDECLARE_BASE_ENTITY_ATTR_DECODER(DeadReckoningAlgorithm);
00112    DtDECLARE_BASE_ENTITY_ATTR_DECODER(WorldLocation);
00113    DtDECLARE_BASE_ENTITY_ATTR_DECODER(EntityIdentifier);
00114 };
00115 
00121 #define DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_DECODER_WITH_CAST( \
00122    attrName, netType, mutator, castExpr) \
00123    DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
00124       DtBaseEntityDecoder, DtBaseEntityStateRepository, \
00125       attrName, netType, mutator, castExpr)
00126 
00127 #define DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_DECODER( \
00128    attrName, netType, inspector) \
00129    DtDEFINE_SIMPLE_BASE_ENTITY_ATTR_DECODER_WITH_CAST( \
00130       attrName, netType, inspector, (netType))
00131 
00132 #endif
00133 #endif
00134 
00135 
00136 

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)