VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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) const;
81 
84  virtual int lookupPromotionIndexByName(const DtUUID& subordinate) const;
85 
89  virtual void queryAll(DtFormationQueryResultList& resultList) const;
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 const DtFormationRecord* lookupFormationRecord(int positionIndex) const;
121 
122  virtual DtVector lookupFollowOffset(const DtUUID& subordinate) const;
123 
124  virtual DtUUID lookupLeader(const DtUUID& subordinate) const;
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  mutable std::map<int, const 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 
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Definition: formationState.h:38
DtBoost::shared_ptr< const DtOrgViewManagedObjectList > DtOrgViewManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: orgViewManagedObjectList.h:34
DtRwVrfObjectReferenceList myEntityList
Definition: formationState.h:144
Instances of DtFormation are a list of DtFormationEntry objects which make up an aggregate formation...
Definition: formation.h:26
bool myCallbacksAreEnabled
Definition: formationState.h:154
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtFormationStateCallbackFcn myCallbackFunction
Definition: formationState.h:33
void(* DtFormationStateCallbackFcn)(const DtFormationState &formationState, void *usr)
Callback function definition for callbacks registered on changes to the data in DtFormationState.
Definition: formationState.h:27
void * myUserData
Definition: formationState.h:34
std::map< DtUUID, DtVector > myEntityToPositionMap
Definition: formationState.h:146
std::vector< DtFormationStateCallbackInfo > myFormationStateChangedCallbackList
List of DtFormationStateCallbackFcns.
Definition: formationState.h:152
Container used in callback lists.
Definition: formationState.h:31
Definition: formationQueryResult.h:18
class DtFormationRecord:
Definition: formationRecord.h:22
std::map< int, const DtFormationRecord * > myPositionIndexToFormationRecordMap
Definition: formationState.h:145
std::map< DtUUID, int > myEntityToPositionIndexMap
Definition: formationState.h:148
std::map< int, DtUUID > myPositionIndexToEntityMap
Definition: formationState.h:147
If you use a list of object names to archive which objects are part of a controller (or any object) u...
Definition: vrfObjectReference.h:305
Instances of DtFormationQueryResultList are lists of DtFormationRequeryResult pointers.
Definition: formationQueryResultList.h:25
void print(double **a, int r, int c, char *str)

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)