VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
reflectedEntityListDIS.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #ifndef DtReflectedEntityList_H_
11 #define DtReflectedEntityList_H_
12 
13 #if DtDIS
14 
15 #include "reflectedObjectListDIS.h"
16 #include "reflectedEntityDIS.h"
17 #include "relativeLocationPdu.h"
18 #include "entityStateUpdatePdu.h"
19 #include "diGuyCustomPdu.h"
20 #include "suppEmisEntStatePdu.h"
21 
23 
32 {
33 
34 public:
35 
38  bool smoothCapable = false, bool processDiGuyPdus = false);
39 
41  virtual ~DtReflectedEntityList();
42 
44  virtual DtReflectedEntity* lookup(const DtObjectId& id) const;
45 
47  virtual DtReflectedEntity* first() const;
48  virtual DtReflectedEntity* last() const;
49 
51  virtual void addToObjectList(DtReflectedObject* refObj);
52 
54  virtual void addEntityAdditionCallback(
55  DtEntityCallbackFunction cb, void* userData);
56  virtual void removeEntityAdditionCallback(
57  DtEntityCallbackFunction cb, void* userData);
58 
60  virtual void addEntityRemovalCallback(
61  DtEntityCallbackFunction cb, void* userData);
62  virtual void removeEntityRemovalCallback(
63  DtEntityCallbackFunction cb, void* userData);
64 
66  virtual void print();
67 
70  virtual DtReflectedEntity* processEntityState(const DtEntityStatePdu& pdu);
71 
73  virtual void processRelativeLocationPdu(const DtRelativeLocationPdu& pdu);
74 
76  virtual void processEntityStateUpdatePdu(
77  const DtEntityStateUpdatePdu& pdu);
78 
81  virtual void processDiGuyPdu(
82  const DtDIGuyCustomPdu& pdu);
83 
85  virtual void processSeesPdu(
86  const DtSuppEmisEntStatePdu& pdu);
87 
92  virtual void setProcessDiGuyPdus(bool trueFalse);
93  virtual bool processingDiGuyPdus();
94 
100  virtual void discoverOnlyWhenEntityTypeKnown(bool yesNo);
101 
102 private:
103 
106  const DtReflectedEntityList& orig);
107 
110 
111 protected:
112 
116  virtual DtReflectedObject* newReflectedObj(const DtStateMsg& msg);
117 
119  virtual DtReflectedObject* processStateMessage(const DtStateMsg& msg);
120 
123  virtual void objectAdded(DtReflectedObject* obj);
124 
127  virtual void finalPduIsSetAction(DtReflectedEntity* entity);
128 
130  virtual const DtBaseHashKey&
132 
134  virtual DtReflectedEntity* newReflectedEntity(const DtEntityIdentifier& id,
135  const DtEntityType& type) const;
136 
139  virtual void entityAdded(DtReflectedEntity* ent);
140 
141 protected:
142 
144  static void entityStateCb(DtEntityStatePdu* pdu, void* usr);
145 
147  static void relativeLocationCb( DtRelativeLocationPdu* pdu, void* usr );
148 
150  static void entityStateUpdateCb( DtEntityStateUpdatePdu* pdu, void* usr );
151 
153  static void diGuyPduCb(DtDIGuyCustomPdu* pdu, void* usr);
154 
156  static void seesPduCb(DtSuppEmisEntStatePdu* pdu, void* usr);
157 
160  static bool checkEntityType(DtReflectedObject* obj, void* usr);
161 
162 protected:
163 
167 };
168 
169 #endif
170 #endif
171 
172 

Document ID: Generated on Thu Feb 22 04:26:36 EST 2018 from SVN revision 186468
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)