VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
environmentSimDataProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <vrfutil/rwUUID.h>
15 
19 
22 #include <vlutil/vlPerformanceStats.h>
23 
24 namespace makVrv
25 {
26  class DtSimEntryObjectAgent;
27 
28  namespace DT_PROTOCOL_NAMESPACE
29  {
30  class DtVrlinkEnvironmentalStateListenerInterface;
31  class DtEnvironmentalExistenceListener;
32  }
33 }
34 
36 class DtReflectedObject;
37 
38 namespace makVrf
39 {
40  class DtEnvironmentStateObjectAgent;
41 
42  namespace VRF_PROTOCOL_NAMESPACE
43  {
46  {
47  public:
48 
51 
54 
55  static DtEnvironmentSimDataProcessor* findInstance(
57  {
58  return dynamic_cast<DtEnvironmentSimDataProcessor*>(
59  sim.findInstance("DtEnvironmentSimDataProcessor"));
60  }
61 
62  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim,
64  {
65  sim.registerInstance("DtEnvironmentSimDataProcessor",proc);
66  }
67 
69  void postDrainInput();
70 
72  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
73 
75  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
76 
79 
82 
85  DtEnvironmentStateObjectAgent& objectDriver, bool force = false);
87  DtVrlinkNetworkUpdateSimulatedEnvironmentProcess& state, const DtRwProperties& stateProperties, bool forceStatePropertyUpdate = false);
90 
91  virtual void postRemoteControllerInit();
92  virtual void cleanup();
93 
94  protected:
95 
96  static void postDrainInput(void* usr);
97 
98  virtual void slot_modelSetChanged();
99 
100  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener);
101 
102 
104  virtual bool updateExtendedState(
106 
110 
111  static void uuidChangedCallback(DtReflectedObject* obj, const DtUUID& uuid, void* usr);
112  virtual void processUUIDChanged(DtReflectedObject* obj, const DtUUID& uuid);
113 
114  protected:
115 
116  //A Listener and a driver which will be updated with it.
118  {
119  public:
120 
122  DtEnvironmentStateObjectAgent& driver, DtEnvironmentSimDataProcessor& processor);
123 
125 
126  EnvironmentStateUpdater& operator=(const EnvironmentStateUpdater& orig);
127 
128  //Are the updaters equal
129  bool operator==(const EnvironmentStateUpdater& orig) const;
130 
132  void update(double timeT);
133 
134  protected:
135 
137  DtEnvironmentStateObjectAgent* myObjectAgent;
139  };
140 
141  typedef std::set<makVrv::DtUniqueID> EnvironmentIdList;
142 
144  {
146  DtEnvironmentStateObjectAgent* myAgent;
148  };
149 
150  typedef std::map<makVrv::DtUniqueID,EnvironmentSimDataInstance > EnvironmentAgentMap;
151 
153  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EnvironmentUpdaterGroup>
155 
156  protected:
157 
159 
162  DtTimedSection myTimer;
163  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
164 
168 
169  typedef boost::unordered_map<makVrv::DtUniqueID, DtVrlinkNetworkUpdateSimulatedEnvironmentProcess> StateMap;
171  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
172 
173  struct BaseState
174  {
175  BaseState() : vrlEnvProc(), stateProps(0), count(0) {};
176  BaseState(int c) : vrlEnvProc(), stateProps(0), count(c) {};
177 
178 
181  int count;
182  };
183 
185  typedef std::map<std::string, BaseState > BaseStateMap;
187  std::map<makVrv::DtUniqueID, DtUUID> myUUIDMap;
190 
192  };
193 
195  {
196  public:
199 
201 
204  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
206 
208  };
209  }
210 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)