VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
aggregateSimDataProcessor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
13 
19 
20 #include <vlutil/vlPerformanceStats.h>
21 
24 
25 namespace makVrv
26 {
27  class DtSimEntryObjectAgent;
28 
29  namespace DT_PROTOCOL_NAMESPACE
30  {
31  class DtVrlinkConnection;
32  class DtAggregateExistenceListener;
33  class DtVrlinkAggregateStateListener;
34  }
35 }
36 
37 class DtReflectedObject;
38 
39 namespace makVrf
40 {
41  class DtAggregateStateObjectAgent;
42 
43  namespace VRF_PROTOCOL_NAMESPACE
44  {
45 
48  {
49  public:
52 
55 
58  DtVrfRemoteController* remote);
59 
61  virtual ~DtAggregateSimDataProcessor();
62 
64  void postDrainInput();
65 
67  void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
68 
70  void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
71 
73  void aggregateDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
74 
76  void aggregateToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
77 
79  virtual void createAndSendState(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener,
80  DtAggregateStateObjectAgent& objectDriver, bool forceUpdate = false);
81 
83  DtVrlinkNetworkUpdateSimulatedAggregateState& state, const DtRwProperties& stateProperties,
84  bool forceStatePropertyUpdate = false);
85 
86  virtual void postRemoteControllerInit();
87  virtual void cleanup();
88 
89  protected:
90 
91  static void postDrainInput(void* usr);
92 
93  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener&);
94  virtual void slot_damageStateSet(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener*);
95 
96  virtual void slot_modelSetChanged();
97 
98  virtual bool updateState(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener, bool forceUpdate = false);
99  virtual bool updateExtendedState(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
100 
101  static void uuidChangedCallback(DtReflectedObject* obj, const DtUUID& uuid, void* usr);
102  virtual void processUUIDChanged(DtReflectedObject* obj, const DtUUID& uuid);
103 
104  protected:
105 
106  //A Listener and a driver which will be updated with it.
108  {
109  public:
110 
112  DtAggregateStateObjectAgent& driver, DtAggregateSimDataProcessor& processor);
113 
115 
116  AggregateStateUpdater& operator=(const AggregateStateUpdater& orig);
117 
118  //Are the updaters equal
119  bool operator==(const AggregateStateUpdater& orig) const;
120 
122  void update(double timeT);
123 
124  protected:
125 
127  DtAggregateStateObjectAgent* myObjectAgent;
129  };
130 
131  typedef std::set<makVrv::DtUniqueID> AggregateIdList;
132 
134  {
136  DtAggregateStateObjectAgent* myAgent;
138  };
139 
140  typedef std::map<makVrv::DtUniqueID,AggregateSimDataInstance > AggregateAgentMap;
141 
143  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,AggregateUpdaterGroup>
145 
146  protected:
148 
151  DtTimedSection myTimer;
152  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
153 
158 
159  typedef boost::unordered_map<makVrv::DtUniqueID, DtVrlinkNetworkUpdateSimulatedAggregateState> AggregateStates;
161 
163  typedef std::map<std::string, std::pair<DtRwProperties*, int> > BaseStateMap;
165 
166  std::map<makVrv::DtUniqueID, DtString> myExtendedLabels;
167  std::map<makVrv::DtUniqueID, bool> myNeedsForcedUpdate;
168  std::map<makVrv::DtUniqueID, DtUUID> myUUIDMap;
169 
170  std::string myLastMarkingText;
173  };
174 
176  {
177  public:
180 
182 
185  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
187 
189  };
190  }
191 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)