VR-Forces 4.3 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) 2006 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: aggregateSpatialModel.h,v $ $Revision: 1.7 $ $State: Exp $
7 *******************************************************************************/
8 
11 
17 
18 #ifndef DtAggregateSpatialModel_H_
19 #define DtAggregateSpatialModel_H_
20 
25 
26 #include <vlutil/vlString.h>
27 #include <vlutil/vlSmartPointers.h>
28 
29 #include <map>
30 #include <list>
31 
32 typedef DtBoost::shared_ptr<DtAggregateData> DtAggregateDataPtr;
33 typedef DtBoost::shared_ptr<const DtAggregateData> DtAggregateDataConstPtr;
34 
36 class DtExerciseClock;
37 class DtVrfObjectManager;
39 class DtVrfObject;
41 
51 {
52 public:
53 
56  const DtExerciseClock& exerciseClock);
57 
59  virtual ~DtAggregateSpatialModel();
60 
64  virtual void init();
65 
70  virtual void timedTick();
71 
75  virtual void setTickPeriodUsesRealTime(bool value);
76  virtual bool tickPeriodUsesRealTime() const;
77 
80  virtual void setMinTickPeriod(double minTickPeriod);
81 
83  virtual double minTickPeriod() const;
84 
86  virtual void setMinTickPeriodVariance(double minTickPeriodVariance);
87 
89  virtual double minTickPeriodVariance() const;
90 
94  virtual void setNextTickTime(double nextTickTime);
95 
97  virtual double nextTickTime() const;
98 
101  virtual void setTickAsFastAsPossibleWhenPaused(bool yesNo);
102  virtual bool tickAsFastAsPossibleWhenPaused() const;
103 
109  virtual DtAggregateSpatialDataConstPtr lookup(
110  const DtEntityIdentifier& id) const;
111 
113  virtual void printHierarchy() const;
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);
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  DtAggregateNodeList subordinates,
177  DtDcm& geocentricOrientation, double& heading);
178 
191  virtual bool computeLocationAndBoundingGeometry(
193  DtAggregateNodeList subordinates,
194  const DtDcm& geocentricOrientation,
195  DtVector& geocentricLocation,
196  DtSimBoundingGeometry& boundingGeometry);
197 
203  virtual bool computeVelocity(DtAggregateNodeConstPtr node,
204  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(DtEntityIdentifier eid);
226 
229  virtual void processNodeRemoved(DtEntityIdentifier eid);
230 
232  virtual void processChildAdded(DtEntityIdentifier eid);
233 
235  virtual void processChildRemoved(DtEntityIdentifier 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(DtEntityIdentifier eid, void* userData);
269 
272  static void nodeRemovedCallback(DtEntityIdentifier eid, void* userData);
273 
276  static void childAddedCallback(DtEntityIdentifier eid, void* userData);
277 
280  static void childRemovedCallback(DtEntityIdentifier eid, void* userData);
281 
282 private:
283 
286 
288  DtAggregateSpatialModel& operator=(const DtAggregateSpatialModel& orig);
289 
290 protected:
291 
292  typedef std::map<DtEntityIdentifier, DtAggregateNodePtr> DtAggregateNodeMap;
293 
297 
300 
302 
307 
311 
319 };
320 
321 #endif

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)