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
The DtPduDecoder class provides a base class for all DIS decoders.
Definition: pduDecoder.h:18
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
virtual DtPduDecoder * clone() const =0
This file provides protocol independence for Reflected Entities.
virtual void decode(DtPdu *pdu, DtPduFactory *pduFactory=0)=0
Instances of DtEntityStateRepository are used to maintain attributes and state of entity objects in a...
Definition: entityStateRepository.h:36
Definition: vlVector.h:224
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
DtDIGuyCustomPduMsgId
Enumeration describing the message ID&#39;s of the DiGuy PDU.
Definition: disEnums.h:3191
This file provides a declaration for DtPduDecoder.
Contains the DtEntityStateRepository class declaration.
Instances of DtString are used to represent strings.
Definition: vlString.h:29

Document ID: Generated on Tue Feb 2 21:02:17 EST 2021 from SVN revision 223668
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)