VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
34 namespace makVrf
35 {
36  class DtEnvironmentStateObjectAgent;
37 
38  namespace VRF_PROTOCOL_NAMESPACE
39  {
42  {
43  public:
44 
47 
50 
51  static DtEnvironmentSimDataProcessor* findInstance(
53  {
54  return dynamic_cast<DtEnvironmentSimDataProcessor*>(
55  sim.findInstance("DtEnvironmentSimDataProcessor"));
56  }
57 
58  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim,
60  {
61  sim.registerInstance("DtEnvironmentSimDataProcessor",proc);
62  }
63 
65  void postDrainInput();
66 
68  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
69 
71  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
72 
75 
78 
81  DtEnvironmentStateObjectAgent& objectDriver, bool force = false);
83  DtVrlinkSimulatedEnvironmentProcess& state, bool forceStatePropertyUpdate = false);
86 
87  protected:
88 
89  static void postDrainInput(void* usr);
90 
91  virtual void slot_modelSetChanged();
92 
93  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface& listener);
94 
95 
97  virtual bool updateExtendedState(
99 
103 
104  protected:
105 
106  //A Listener and a driver which will be updated with it.
108  {
109  public:
110 
112  DtEnvironmentStateObjectAgent& driver, DtEnvironmentSimDataProcessor& processor);
113 
115 
116  EnvironmentStateUpdater& operator=(const EnvironmentStateUpdater& orig);
117 
118  //Are the updaters equal
119  bool operator==(const EnvironmentStateUpdater& orig) const;
120 
122  void update(double timeT);
123 
124  protected:
125 
127  DtEnvironmentStateObjectAgent* myObjectAgent;
129  };
130 
131  typedef std::set<makVrv::DtUniqueID> EnvironmentIdList;
132 
134  {
136  DtEnvironmentStateObjectAgent* myAgent;
138  };
139 
140  typedef std::map<makVrv::DtUniqueID,EnvironmentSimDataInstance > EnvironmentAgentMap;
141 
143  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,EnvironmentUpdaterGroup>
145 
146  protected:
147 
149 
152  DtTimedSection myTimer;
153  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
154 
158 
159  typedef boost::unordered_map<makVrv::DtUniqueID, DtVrlinkSimulatedEnvironmentProcess> StateMap;
161  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
162 
164  typedef std::map<std::string, std::pair<DtVrlinkSimulatedEnvironmentProcess, int> > BaseStateMap;
166  };
167 
169  {
170  public:
173 
175 
178  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
180 
182  };
183  }
184 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)