VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 
113  virtual void clear();
114 
115 protected:
116 
122  virtual double calculateNextTickTime() const;
123 
131  virtual void tick();
132 
135  virtual void destroyTreesAndMap();
136 
139  virtual void buildTreesAndMap();
140 
143  virtual void traverseTreesAndUpdateNodes();
144 
147  virtual DtAggregateNodePtr createNode(
148  const DtOrganizationManagerNode& orgViewNode);
149 
155  virtual void updateNode(DtAggregateNodePtr node, bool isTopLevel);
156 
158  virtual bool updateNodeData(DtAggregateNodePtr node,
159  const DtAggregateSpatialData& newData);
160 
167  virtual bool computeState(DtAggregateNodeConstPtr node,
168  DtAggregateSpatialData& state);
169 
175  virtual bool computeOrientation(DtAggregateNodeConstPtr node,
176  const DtAggregateNodeList& subordinates,
177  DtDcm& geocentricOrientation, double& heading);
178 
191  virtual bool computeLocationAndBoundingGeometry(
193  const DtAggregateNodeList& subordinates,
194  const DtDcm& geocentricOrientation,
195  DtVector& geocentricLocation,
196  DtSimBoundingGeometry& boundingGeometry);
197 
203  virtual bool computeVelocity(DtAggregateNodeConstPtr node,
204  const DtAggregateNodeList& subordinates,
205  DtVector& geocentricVelocity);
206 
210  virtual void subordinatesToIncludeInComputingState(
212  DtAggregateNodeList& list);
213 
220  virtual DtOrgViewManagedObjectListConstPtr subordinatesToIncludeInComputingState(
221  DtAggregateNodeConstPtr node) const;
222 
225  virtual void processNodeAdded(const DtUUID& eid);
226 
229  virtual void processNodeRemoved(const DtUUID& eid);
230 
232  virtual void processChildAdded(const DtUUID& superior, const DtUUID& eid);
233 
235  virtual void processChildRemoved(const DtUUID& superior, const DtUUID& eid);
236 
240  virtual void registerOrgViewCallbacks();
241  void unregisterOrgViewCallbacks();
243 
247  virtual void registerAggregateNodeCallbacks(
248  DtOrganizationManagerNode& aggregateNode);
249  void unregisterAggregateNodeCallbacks(
250  DtOrganizationManagerNode& aggregateNode);
252 
253 
257  virtual bool organizationHasChanged() const;
258  virtual void setOrganizationHasChanged(bool yesNo);
260 
262  virtual void printNode(DtAggregateNodePtr node, int indentLevel = 0) const;
263 
264 public:
265 
268  static void nodeAddedCallback(const DtUUID& eid, void* userData);
269 
272  static void nodeRemovedCallback(const DtUUID& eid, void* userData);
273 
276  static void childAddedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
277 
280  static void childRemovedCallback(const DtUUID& superior, const DtUUID& eid, void* userData);
281 
282 private:
283 
286 
288  DtAggregateSpatialModel& operator=(const DtAggregateSpatialModel& orig);
289 
290 protected:
291 
292  typedef std::map<DtUUID, DtAggregateNodePtr> DtAggregateNodeMap;
293 
297 
300 
302 
307 
311 
319 };

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)