VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
aggregateSpatialModel.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
14 
15 #pragma once
16 
21 #include <vrfutil/rwUUID.h>
22 
23 #include <vlutil/vlString.h>
24 #include <vlutil/vlSmartPointers.h>
25 
26 #include <map>
27 #include <list>
28 
29 typedef DtBoost::shared_ptr<DtAggregateData> DtAggregateDataPtr;
30 typedef DtBoost::shared_ptr<const DtAggregateData> DtAggregateDataConstPtr;
31 
33 class DtExerciseClock;
34 class DtVrfObjectManager;
36 class DtVrfObject;
38 
48 {
49 public:
50 
53  const DtExerciseClock& exerciseClock);
54 
56  virtual ~DtAggregateSpatialModel();
57 
61  virtual void init();
62 
67  virtual void timedTick();
68 
72  virtual void setTickPeriodUsesRealTime(bool value);
73  virtual bool tickPeriodUsesRealTime() const;
74 
77  virtual void setMinTickPeriod(double minTickPeriod);
78 
80  virtual double minTickPeriod() const;
81 
83  virtual void setMinTickPeriodVariance(double minTickPeriodVariance);
84 
86  virtual double minTickPeriodVariance() const;
87 
91  virtual void setNextTickTime(double nextTickTime);
92 
94  virtual double nextTickTime() const;
95 
98  virtual void setTickAsFastAsPossibleWhenPaused(bool yesNo);
99  virtual bool tickAsFastAsPossibleWhenPaused() const;
100 
106  virtual DtAggregateSpatialDataConstPtr lookup(
107  const DtUUID& id) const;
108 
110  virtual void printHierarchy() const;
111 
112 protected:
113 
119  virtual double calculateNextTickTime() const;
120 
128  virtual void tick();
129 
132  virtual void destroyTreesAndMap();
133 
136  virtual void buildTreesAndMap();
137 
140  virtual void traverseTreesAndUpdateNodes();
141 
144  virtual DtAggregateNodePtr createNode(
145  const DtOrganizationManagerNode& orgViewNode);
146 
152  virtual void updateNode(DtAggregateNodePtr node);
153 
155  virtual bool updateNodeData(DtAggregateNodePtr node,
156  const DtAggregateSpatialData& newData);
157 
164  virtual bool computeState(DtAggregateNodeConstPtr node,
165  DtAggregateSpatialData& state);
166 
172  virtual bool computeOrientation(DtAggregateNodeConstPtr node,
173  DtAggregateNodeList subordinates,
174  DtDcm& geocentricOrientation, double& heading);
175 
188  virtual bool computeLocationAndBoundingGeometry(
190  DtAggregateNodeList subordinates,
191  const DtDcm& geocentricOrientation,
192  DtVector& geocentricLocation,
193  DtSimBoundingGeometry& boundingGeometry);
194 
200  virtual bool computeVelocity(DtAggregateNodeConstPtr node,
201  DtAggregateNodeList subordinates,
202  DtVector& geocentricVelocity);
203 
207  virtual void subordinatesToIncludeInComputingState(
209  DtAggregateNodeList& list);
210 
217  virtual DtOrgViewManagedObjectListConstPtr subordinatesToIncludeInComputingState(
218  DtAggregateNodeConstPtr node) const;
219 
222  virtual void processNodeAdded(const DtUUID& eid);
223 
226  virtual void processNodeRemoved(const DtUUID& eid);
227 
229  virtual void processChildAdded(const DtUUID& eid);
230 
232  virtual void processChildRemoved(const DtUUID& eid);
233 
237  virtual void registerOrgViewCallbacks();
238  void unregisterOrgViewCallbacks();
240 
244  virtual void registerAggregateNodeCallbacks(
245  DtOrganizationManagerNode& aggregateNode);
246  void unregisterAggregateNodeCallbacks(
247  DtOrganizationManagerNode& aggregateNode);
249 
250 
254  virtual bool organizationHasChanged() const;
255  virtual void setOrganizationHasChanged(bool yesNo);
257 
259  virtual void printNode(DtAggregateNodePtr node, int indentLevel = 0) const;
260 
261 public:
262 
265  static void nodeAddedCallback(const DtUUID& eid, void* userData);
266 
269  static void nodeRemovedCallback(const DtUUID& eid, void* userData);
270 
273  static void childAddedCallback(const DtUUID& eid, void* userData);
274 
277  static void childRemovedCallback(const DtUUID& eid, void* userData);
278 
279 private:
280 
283 
285  DtAggregateSpatialModel& operator=(const DtAggregateSpatialModel& orig);
286 
287 protected:
288 
289  typedef std::map<DtUUID, DtAggregateNodePtr> DtAggregateNodeMap;
290 
294 
297 
299 
304 
308 
316 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)