VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfTaskSetManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
12 
13 #pragma once
14 
15 #include <vrfGuiCore/vrfGuiCore.h>
16 
18 #include <vrvCore/DtUniqueID.h>
20 #include <vrvCore/DtStateView.h>
21 #include <vrvCore/DtEntityState.h>
22 
25 
26 #include <boost/signal.hpp>
28 
29 namespace makVrv
30 {
31  class DtDe;
32  class DtSimEntry;
33  class DtSimObjectEntry;
34 }
35 
36 class DtSimMessage;
39 
40 namespace makVrf
41 {
43  {
44  public:
46  {
47  };
48 
50  mySupportedTasks(orig.mySupportedTasks), mySupportedSets(orig.mySupportedSets)
51  {
52  };
53 
54  std::vector<DtSimTaskMessageType> mySupportedTasks;
55  std::vector<DtSetMessageType> mySupportedSets;
56 
57  typedef std::vector<std::string> SupportingTasks;
58  typedef std::map<int, SupportingTasks> AvailableSupportingTasks;
60  };
61 
63  {
64  public:
65  std::vector<DtString> mySupportedAppearances;
67  std::vector<DtString> mySupportedHandItems;
68  };
69 
75  {
76  public:
77  typedef std::map<int, std::vector<DtSimTaskMessageType> > DtTaskMap;
78  typedef std::map<int, std::vector<DtSetMessageType> > DtSetMap;
79  typedef std::vector<makVrv::DtSimEntry*> SimEntries;
80 
81  public:
83  virtual ~DtVrfTaskSetManager();
84 
86  static DtVrfTaskSetManager& instance(makVrv::DtDe& de);
87 
88  public:
91  virtual int menuIdForTaskType(DtSimTaskMessageType) const;
92 
95  virtual int menuIdForSetType(DtSetMessageType) const;
96 
98  virtual void requestInformationFor(const DtUUID&, makVrv::DtUniqueID id);
99  virtual void requestInformationFor(const std::vector<std::pair<DtUUID, makVrv::DtUniqueID> >& names);
100 
102  virtual void updateAvailableTaskSetInformation(const makVrv::DtSimEntry* type);
103  virtual void updateAvailableTaskSetInformation(const SimEntries&);
104  virtual void updateAvailableTaskSetInformation(const DtUUID&);
105  virtual void updateAvailableTaskSetInformation(makVrv::DtElementID id);
106 
108  virtual void clearInformationFor(makVrv::DtUniqueID id, bool request = false);
109  virtual void clearInformationFor(const std::vector<makVrv::DtUniqueID>& ids, bool request = false);
110 
112  virtual bool hasTaskSetInformationFor(const makVrv::DtUniqueID&) const;
113 
116  virtual bool hasTaskSetInformationFor(const DtUUID&) const;
117 
119  virtual std::string diGuyAnimationForKeyword(const std::string& kw) const;
120 
121  virtual void setSupportedTasks(const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true);
122  virtual void setSupportedSets(const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true);
123  virtual void setSupportingTasks(const makVrv::DtUniqueID&, const std::map<int, std::vector<DtSimTaskMessageType> >&, bool signal = true);
124 
125  virtual std::vector<DtSimTaskMessageType> availableTasks(const makVrv::DtUniqueID&) const;
126  virtual std::vector<DtSetMessageType> availableSets(const makVrv::DtUniqueID&) const;
127  virtual std::vector<std::string> availableSupportingTasks(const makVrv::DtUniqueID&, int type) const;
128  virtual DtTasksAndSets::AvailableSupportingTasks availableSupportingTasks(const makVrv::DtUniqueID&) const;
129 
130  virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
131  bool noTaskSetValueMeansAll = true);
132  virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
133  bool noTaskSetValueMeansAll = true);
134  virtual void available(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
135  bool noTaskSetValueMeansAll = true);
136  virtual std::vector<int> supportedMenuTasks() const;
137  virtual std::vector<int> supportedMenuSets() const;
138 
141  virtual int lookupTask(const DtSimTaskMessageType type) const;
142 
145  virtual int lookupSet(const DtSetMessageType type) const;
146 
149  boost::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
150  boost::signal<void (makVrv::DtUniqueID)> signal_supportingTaskInformationChanged;
151  boost::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
152  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
153  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
154  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged;
155  boost::signal<void ()> signal_taskSetInformationCleared;
157 
159  boost::signal<void ()> signal_allPendingRequestsResolved;
160 
162  virtual bool hasPendingRequests() const;
163 
165  virtual void clearInformationForForce(int);
166 
168  virtual bool isAvailableTaskMenuItem(int) const;
169  virtual bool isAvailableVrfTaskItem(const DtSimTaskMessageType&) const;
170 
172  virtual bool isAvailableSetMenuItem(int) const;
173  virtual bool isAvailableVrfSetItem(const DtSetMessageType&) const;
174 
175  virtual bool hasDIGuyInformationFor(const makVrv::DtUniqueID&) const;
176  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor(const makVrv::DtUniqueID&);
177 
178  virtual void setDIGuyAppearances(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
179  virtual void setDIGuyAnimations(const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true);
180  virtual void setDIGuyHandItems(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
181 
182 
184  virtual void clearAllInformation();
185 
186  virtual DtTasksAndSets* informationFor(const makVrv::DtUniqueID&);
187 
189  virtual void addAvailableSet(int menuItem, const DtSetMessageType& setType);
190  virtual void addAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
191 
193  virtual void addAvailableSetForSingleSelection(int menuItem, const DtSetMessageType& setType);
194 
196  virtual void addAvailableTaskForSingleSelection(int menuItem, const DtSimTaskMessageType& taskType);
197 
199  virtual void setSetIsSingleSelection(int, bool);
200  virtual bool setIsSingleSelection(int) const;
201 
203  virtual void setTaskIsSingleSelection(int, bool);
204  virtual bool taskIsSingleSelection(int) const;
205 
207  virtual void removeAvailableSet(int menuItem, const DtSetMessageType& setType);
208  virtual void removeAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
209 
210  virtual void requestDIGuyAppearancesAndAnimations(const DtUUID&);
211  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtUUID>&);
212 
214  virtual int nextAvailableId() const;
215 
217  virtual bool isAvailableTask(makVrv::DtUniqueID id, DtSimTaskMessageType) const;
218 
220  virtual bool isAvailableSet(makVrv::DtUniqueID id, DtSetMessageType) const;
221 
222  protected:
224  virtual void requestTaskSetInformationFor(const DtUUID&);
225  virtual void requestTaskSetInformationFor(const std::vector<DtUUID>&);
226  virtual void requestTaskSetInformationFor(const std::vector<DtString>&);
227  virtual void processTaskAndSetResponse(DtSimMessage*);
228 
230  virtual void processDIGuyResponse(DtSimMessage*);
231 
233  virtual void initMenuMappings();
234 
235  virtual bool needsUpdateForForce(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv);
236 
237  virtual bool isAvailableMenuItem(int menu, const DtTaskMap&) const;
238  virtual bool isAvailableMenuItem(int menu, const DtSetMap& m) const;
239  virtual bool isAvailableVrfItem(const DtSimTaskMessageType& item, const DtTaskMap&) const;
240  virtual bool isAvailableVrfItem(const DtSetMessageType& item, const DtSetMap&) const;
241 
243  virtual void mergeMenuItems(const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
244  std::vector<int>& results);
245 
246  virtual void mergeMenuItems(const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
247  std::vector<int>& results);
248 
249  protected:
250  virtual void slot_postInitialize(makVrv::DtDe& de);
251  virtual void slot_objectRemoved(makVrv::DtSimObjectEntry&);
252  virtual void requestNextSetOfNames();
253 
254  protected:
255  typedef std::map<int, bool> SingleSelectionMap;
256 
257  std::map<makVrv::DtUniqueID, int> myForceMap;
258  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
259  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
260 
261  typedef std::map<int, std::set<DtUUID> > PendingNameGroupRequests;
262  typedef std::map<DtUUID, std::pair<makVrv::DtUniqueID, int> > PendingRequests;
263 
266 
269 
270  typedef std::map<DtUUID, bool> RequestingNames;
272 
274 
279 
281 
282  std::map<DtString, DtString> myDiGuyAnimations;
283  };
284 }

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)