VR-Forces 4.3.1 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) 2004 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: formationState.h,v $ $Revision: 1.23 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef DtFormationState_H_
13 #define DtFormationState_H_
14 
16 #include <vlutil/vlString.h>
17 #include <vector>
18 #include <map>
20 
21 class DtFormation;
22 class DtFormationRecord;
24 class DtFormationState;
25 class DtVrfObject;
27 
31  const DtFormationState& formationState, void* usr);
32 
35 {
37  void* myUserData;
38 };
39 
42 {
43 public:
44 
46 
48 
49  DtFormationState& operator=(const DtFormationState& orig);
50 
51  virtual ~DtFormationState();
52 
54  virtual void setFormation(const DtFormation& formation);
55  virtual void setFormation(const std::vector<DtFormationRecord*>& formation);
56 
58  virtual void addFormationRecord(const DtFormationRecord& formationRecord,
59  int positionIndex);
60 
62  virtual void removeFormationRecord(int positionIndex);
63 
66  virtual void setEntityList(const std::vector<DtString>& entityList);
67 
68  virtual void setEntityListAndFormation(const std::vector<DtString>& entityList,
69  const DtFormation& formation, const std::list<int>& formationPositions);
70 
73  virtual void setEntityListAndFormation(DtOrgViewManagedObjectListConstPtr entityList,
74  const DtFormation& formation, const std::list<int>& formationPositions);
75 
77  virtual const std::vector<DtString>& entityList() const;
78 
80  virtual void clearEntityList();
81 
83  virtual bool lookup(const DtString& objectName, DtFormationQueryResult& result);
84 
87  virtual int lookupPromotionIndexByName(const DtString& objectName) const;
88 
92  virtual void queryAll(DtFormationQueryResultList& resultList);
93 
96  virtual DtString formationLeader() const;
97 
99  virtual double formationHalfLength() const;
100 
102  virtual void print();
103 
105  virtual void addFormationStateChangedCallback(
106  DtFormationStateCallbackFcn fcn, void* userData);
107 
109  virtual void removeFormationStateChangedCallback(
110  DtFormationStateCallbackFcn fcn, void* userData);
111 
114  virtual void enableFormationCallbacks();
115  virtual void disableFormationCallbacks();
116 
119  virtual bool isAvailableForFormation(const DtVrfObject*) const;
120 
121 protected:
122 
123  virtual DtFormationRecord* lookupFormationRecord(int positionIndex);
124 
125  virtual DtVector lookupFollowOffset(const DtString& entity);
126 
127  virtual DtString lookupLeader(const DtString& entity);
128 
129  virtual void rebuildEntityToPositionMap();
130 
133  virtual DtFormationRecord* generateAdditionalFormationRecord(int positionIndex) const;
134 
137  void emptyPositionIndexToFormationRecordMap();
138 
141  virtual DtVector positionOffsetForPositionIndex(int positionIndex);
142 
143  virtual void invokeFormationStateChangedCallbacks() const;
144 
145 protected:
146 
147  std::vector<DtString> myEntityList;
148  std::map<int, DtFormationRecord*> myPositionIndexToFormationRecordMap;
149  std::map<DtString, DtVector> myEntityToPositionMap;
150  std::map<int, DtString> myPositionIndexToEntityMap;
151  std::map<DtString, int> myEntityToPositionIndexMap;
155  std::vector<DtFormationStateCallbackInfo> myFormationStateChangedCallbackList;
156 
158 };
159 
160 #endif
161 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)