VR-Forces 4.6 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 
18 
21 #include <vlutil/vlPerformanceStats.h>
22 
23 namespace makVrv
24 {
25  class DtSimEntryObjectAgent;
26 
27  namespace DT_PROTOCOL_NAMESPACE
28  {
29  class DtVrlinkEnvironmentalStateListenerInterface;
30  class DtEnvironmentalExistenceListener;
31  }
32 }
33 
35 class DtReflectedObject;
36 
37 namespace makVrf
38 {
39  class DtEnvironmentStateObjectAgent;
40 
41  namespace VRF_PROTOCOL_NAMESPACE
42  {
45  {
46  public:
47 
50 
53 
54  static DtEnvironmentSimDataProcessor* findInstance(
56  {
57  return dynamic_cast<DtEnvironmentSimDataProcessor*>(
58  sim.findInstance("DtEnvironmentSimDataProcessor"));
59  }
60 
61  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim,
63  {
64  sim.registerInstance("DtEnvironmentSimDataProcessor",proc);
65  }
66 
68  void postDrainInput();
69 
71  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
72 
74  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
75 
78 
81 
84  DtEnvironmentStateObjectAgent& objectDriver, bool force = false);
86  DtVrlinkNetworkUpdateSimulatedEnvironmentProcess& state, const DtRwProperties& stateProperties, bool forceStatePropertyUpdate = false);
89 
90  virtual void postRemoteControllerInit();
91  virtual void cleanup();
92 
93  protected:
94 
95  static void postDrainInput(void* usr);
96 
97  virtual void slot_modelSetChanged();
98 
99  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener);
100 
101 
103  virtual bool updateExtendedState(
105 
109 
110  static void uuidChangedCallback(DtReflectedObject* obj, const DtUUID& uuid, void* usr);
111  virtual void processUUIDChanged(DtReflectedObject* obj, const DtUUID& uuid);
112 
113  protected:
114 
115  //A Listener and a driver which will be updated with it.
117  {
118  public:
119 
121  DtEnvironmentStateObjectAgent& driver, DtEnvironmentSimDataProcessor& processor);
122 
124 
125  EnvironmentStateUpdater& operator=(const EnvironmentStateUpdater& orig);
126 
127  //Are the updaters equal
128  bool operator==(const EnvironmentStateUpdater& orig) const;
129 
131  void update(double timeT);
132 
133  protected:
134 
136  DtEnvironmentStateObjectAgent* myObjectAgent;
138  };
139 
140  typedef std::set<makVrv::DtUniqueID> EnvironmentIdList;
141 
143  {
145  DtEnvironmentStateObjectAgent* myAgent;
147  };
148 
149  typedef std::map<makVrv::DtUniqueID,EnvironmentSimDataInstance > EnvironmentAgentMap;
150 
152  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EnvironmentUpdaterGroup>
154 
155  protected:
156 
158 
161  DtTimedSection myTimer;
162  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
163 
167 
168  typedef boost::unordered_map<makVrv::DtUniqueID, DtVrlinkNetworkUpdateSimulatedEnvironmentProcess> StateMap;
170  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
171 
172  struct BaseState
173  {
174  BaseState() : vrlEnvProc(), stateProps(0), count(0) {};
175  BaseState(int c) : vrlEnvProc(), stateProps(0), count(c) {};
176 
177 
180  int count;
181  };
182 
184  typedef std::map<std::string, BaseState > BaseStateMap;
186  std::map<makVrv::DtUniqueID, DtUUID> myUUIDMap;
189 
191  };
192 
194  {
195  public:
198 
200 
203  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
205 
207  };
208  }
209 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)