VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
formationState.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
12 #include <vlutil/vlString.h>
13 #include <vector>
14 #include <map>
17 
18 class DtFormation;
19 class DtFormationRecord;
21 class DtFormationState;
22 class DtVrfObject;
24 
28  const DtFormationState& formationState, void* usr);
29 
32 {
34  void* myUserData;
35 };
36 
39 {
40 public:
41 
43 
45 
46  DtFormationState& operator=(const DtFormationState& orig);
47 
48  virtual ~DtFormationState();
49 
51  virtual void setFormation(const DtFormation& formation);
52  virtual void setFormation(const std::vector<DtFormationRecord*>& formation);
53 
55  virtual void addFormationRecord(const DtFormationRecord& formationRecord,
56  int positionIndex);
57 
59  virtual void removeFormationRecord(int positionIndex);
60 
63  virtual void setEntityList(const std::vector<DtUUID>& entityList);
64 
65  virtual void setEntityListAndFormation(const std::vector<DtUUID>& entityList,
66  const DtFormation& formation, const std::list<int>& formationPositions);
67 
70  virtual void setEntityListAndFormation(DtOrgViewManagedObjectListConstPtr entityList,
71  const DtFormation& formation, const std::list<int>& formationPositions);
72 
74  virtual const DtRwVrfObjectReferenceList& entityList() const;
75 
77  virtual void clearEntityList();
78 
80  virtual bool lookup(const DtUUID& subordinate, DtFormationQueryResult& result);
81 
84  virtual int lookupPromotionIndexByName(const DtUUID& subordinate) const;
85 
89  virtual void queryAll(DtFormationQueryResultList& resultList);
90 
93  virtual DtUUID formationLeader() const;
94 
96  virtual double formationHalfLength() const;
97 
99  virtual void print();
100 
102  virtual void addFormationStateChangedCallback(
103  DtFormationStateCallbackFcn fcn, void* userData);
104 
106  virtual void removeFormationStateChangedCallback(
107  DtFormationStateCallbackFcn fcn, void* userData);
108 
111  virtual void enableFormationCallbacks();
112  virtual void disableFormationCallbacks();
113 
116  virtual bool isAvailableForFormation(const DtVrfObject*) const;
117 
118 protected:
119 
120  virtual DtFormationRecord* lookupFormationRecord(int positionIndex);
121 
122  virtual DtVector lookupFollowOffset(const DtUUID& subordinate);
123 
124  virtual DtUUID lookupLeader(const DtUUID& subordinate);
125 
126  virtual void rebuildEntityToPositionMap();
127 
130  virtual DtFormationRecord* generateAdditionalFormationRecord(int positionIndex) const;
131 
134  void emptyPositionIndexToFormationRecordMap();
135 
138  virtual DtVector positionOffsetForPositionIndex(int positionIndex);
139 
140  virtual void invokeFormationStateChangedCallbacks() const;
141 
142 protected:
143 
145  std::map<int, DtFormationRecord*> myPositionIndexToFormationRecordMap;
146  std::map<DtUUID, DtVector> myEntityToPositionMap;
147  std::map<int, DtUUID> myPositionIndexToEntityMap;
148  std::map<DtUUID, int> myEntityToPositionIndexMap;
152  std::vector<DtFormationStateCallbackInfo> myFormationStateChangedCallbackList;
153 
155 };
156 

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)