VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
disaggregatedFormationController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
12 
13 #pragma once
14 
15 #include <vlutil/vlConfig.h>
16 #include <vector>
17 
20 
22 class DtSimMessage;
23 class DtFormationState;
26 class DtFormation;
28 class DtSetDataRequest;
29 class DtSetDataManager;
30 class DtFormationPSR;
33 
63 {
64 private:
71 
72 public:
73 
77  DtVrfObject* owner,
78  DtSimManager* simManager,
79  DtComponentDescriptor* desc = 0,
80  DtReaderWriterRegistry* parentRegistry = 0);
81 
83 
90  virtual bool init();
91 
94  virtual void tick();
95 
98  virtual const char* type() const;
99 
110  virtual void setRadio(DtSimRadio * radio);
111 
117  static void setFormationCallback(DtSimMessage * msg, void * usr);
118 
124  static void setFormationTypeCallback(DtSimMessage * msg, void * usr);
125 
131  static void setHeadingCallback(DtSimMessage * msg, void * usr);
132 
138  static void setLocationCallback(DtSimMessage * msg, void * usr);
139 
145  static void snapIntoFormationCallback(DtSimMessage * msg, void * usr);
146 
152  static void subordinatesChangedCallback(const DtUUID& subordinate, void* usr);
153 
159  static void nodeAddedCallback(const DtUUID& subordinate, void* userData);
160  virtual void processNodeAddedCallback(const DtUUID& subordinate);
161 
163  virtual void enable();
164 
166  virtual void disable();
167 
168 public:
169 
177  static void onTaskNotifyCallback(const DtSimTask & task,
178  const DtSimComponent &notifier, void* usr);
179 
183  static DtSimComponent * creator(const DtString& name,
184  DtVrfObject* owner,
185  DtSimManager* simManager,
186  DtComponentDescriptor* desc = 0,
187  DtReaderWriterRegistry* parentRegistry = 0);
188 
189 protected:
190 
194  virtual bool formationUpdateIsNeeded() const;
195 
201  virtual void processSetFormation(DtSimMessage * msg);
202 
209  virtual void processSetFormationType(DtSimMessage * msg);
210 
216  virtual void processSetHeading(DtSimMessage * msg);
217 
223  virtual void processSetLocation(DtSimMessage * msg);
224 
229  virtual void processSnapIntoFormation(DtSimMessage * msg);
230 
239  virtual void processSubordinatesChanged(const DtUUID& subordinate);
240 
259  virtual void snapIntoFormation(const DtString& formation,
260  const DtVector& location, double heading, bool applyHeading);
261 
270  virtual void getCurrentFormation(DtFormation& formation);
271 
277  virtual DtOrgViewManagedObjectListConstPtr generateListOfSubordinatesEligibleForFormation();
278 
284  virtual std::list<int> generateFormationPositions(DtOrgViewManagedObjectListConstPtr& entityInFormation);
285 
288  virtual int findPositionInVector(const std::vector<DtEntityIdentifier> subordinateList,
289  const DtEntityIdentifier& entityId) const;
290 
302  virtual void generateFormationAtPositionAndOrientation(const DtVector& geocentricOrigin,
303  const DtTaitBryan& geocentricOrientation, std::vector<DtVector> geocentricPositions,
304  DtFormation& formation);
305 
310  virtual void generateWorkingFormation(DtFormation& formation);
311 
314  virtual void updateFormationState();
315 
317  virtual void registerWithOrgManager();
318 
320  virtual void unregisterWithOrgManager();
321 
326  virtual void sendRequestToSelf(const DtSetDataRequest& request) const;
327 
334  virtual void sendRequestToSubordinate(const DtSetDataRequest& request,
335  const DtUUID& subordinate) const;
336 
342  virtual bool createPSR();
343 
352  virtual void processOnTaskNotifyCallback(const DtSimTask & task,
353  const DtSimComponent &notifier);
354 
355  static void requestAvailableFormationsCallback(const DtVrfObjectMessage* msg, void* usr);
356  virtual void processRequestAvailableFormations(const DtVrfObjectMessage* msg);
357 
360  virtual void addSetDataCallbacks();
361 
364  void removeSetDataCallbacks();
365 
366 protected:
367 
370 
374 
378 
385 
389 
393 
397 
403 
406 
408 
411 };
412 
417 {
418 private:
425 
426 public:
427 
431  DtVrfObject* owner,
432  DtSimManager* simManager,
433  DtComponentDescriptor* desc = 0,
434  DtReaderWriterRegistry* parentRegistry = 0);
435 
437 
440  virtual const char* type() const;
441 
442 
445  virtual void addSetDataCallbacks();
446 
449  void removeSetDataCallbacks();
450 
454  static DtSimComponent * creator(const DtString& name,
455  DtVrfObject* owner,
456  DtSimManager* simManager,
457  DtComponentDescriptor* desc = 0,
458  DtReaderWriterRegistry* parentRegistry = 0);
459 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)