VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
diGuyCustomPduDecoder.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2020 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #pragma once
7 
8 #if DtDIS
9 
10 #include "diGuyCustomPdu.h"
11 #include "pduDecoder.h"
12 #include "reflectedEntity.h"
13 #include "entityStateRepository.h"
14 
16 typedef void(*DtDIGuyPduCallbackFcn)( DtDIGuyCustomPdu* pdu, DtEntityStateRepository* usr );
17 
18 class DT_DLL_VL DtDIGuyCustomPduDecoder : public DtPduDecoder
19 {
20 public:
21 
22  DtDIGuyCustomPduDecoder();
23  virtual ~DtDIGuyCustomPduDecoder();
24 
25  virtual void decode( DtPdu* pdu, DtEntityStateRepository* stateRep );
26  virtual DtPduDecoder* clone() const;
27  virtual void clearCallbacks();
28 
30  virtual void decode( DtPdu * pdu, DtPduFactory* pduFactory = 0 ) {};
31 
34  virtual void addDiGuyPduCallback( DtDIGuyCustomPduMsgId k, DtDIGuyPduCallbackFcn info );
35  virtual void removeDiGuyPduCallback( DtDIGuyCustomPduMsgId k, const DtDIGuyPduCallbackFcn& info );
36 
37 public:
38 
39  static void processDiGuyType( DtDIGuyCustomPdu* pdu, DtEntityStateRepository* pEsr );
40  static void processDiGuyAppearance( DtDIGuyCustomPdu* pdu, DtEntityStateRepository* pEsr );
41  static void processDiGuyAction( DtDIGuyCustomPdu* pdu, DtEntityStateRepository* pEsr );
42  static void processDiGuyShapeVariations( DtDIGuyCustomPdu* pdu, DtEntityStateRepository* pEsr );
43  static void processDiGuyCharacterScale( DtDIGuyCustomPdu* pdu, DtEntityStateRepository* pEsr );
44 
45  static void getDiGuyType( const DtDIGuyCustomPdu* pdu, DtString& type );
46  static void getDiGuyAppearance( const DtDIGuyCustomPdu* pdu, DtString& appearance, DtString& headAppearance, DtString& itemAppearance, float& bodyWeight );
47  static void getDiGuyAction( const DtDIGuyCustomPdu* pdu, DtString& action, bool& paused, float& speed, short& usePositioningFlag, DtVector& actionOffset );
48  static void getDiGuyShapeVariations( const DtDIGuyCustomPdu* pdu, DtEntityStateRepository* pEsr );
49  static void getDiGuyCharacterScale( const DtDIGuyCustomPdu* pdu, DtVector& scale );
50 
51 protected:
52 
53  typedef std::set<DtDIGuyPduCallbackFcn> DtDIGuyPduCallbackFcnSet;
54  typedef std::multimap<DtDIGuyCustomPduMsgId,DtDIGuyPduCallbackFcnSet> DtDIGuyPduCallbackFcnMap;
55  DtDIGuyPduCallbackFcnMap myDiGuyCbList;
56 
57 };
58 
59 #endif // DtDIS

Document ID: Generated on Mon Jun 22 21:18:40 EDT 2020 from SVN revision 213785
Copyright © 2005-2018 MAK Technologies. All Rights Reserved (www.mak.com)