VR-Forces 4.3.1 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 
72  {
73  public:
74  typedef std::map<int, std::vector<DtSimTaskMessageType> > DtTaskMap;
75  typedef std::map<int, std::vector<DtSetMessageType> > DtSetMap;
76  typedef std::vector<makVrv::DtSimEntry*> SimEntries;
77 
78  public:
80  virtual ~DtVrfTaskSetManager();
81 
83  static DtVrfTaskSetManager& instance(makVrv::DtDe& de);
84 
85  public:
88  virtual int menuIdForTaskType(DtSimTaskMessageType) const;
89 
92  virtual int menuIdForSetType(DtSetMessageType) const;
93 
95  virtual void requestInformationFor(const std::string& name, makVrv::DtUniqueID id);
96  virtual void requestInformationFor(const std::vector<std::pair<DtString, makVrv::DtUniqueID> >& names);
97 
99  virtual void updateAvailableTaskSetInformation(const makVrv::DtSimEntry* type);
100  virtual void updateAvailableTaskSetInformation(const SimEntries&);
101  virtual void updateAvailableTaskSetInformation(const std::string& name);
102  virtual void updateAvailableTaskSetInformation(makVrv::DtElementID id);
103 
105  virtual void clearInformationFor(makVrv::DtUniqueID id, bool request = false);
106  virtual void clearInformationFor(const std::vector<makVrv::DtUniqueID>& ids, bool request = false);
107 
109  virtual bool hasTaskSetInformationFor(const makVrv::DtUniqueID&) const;
110 
113  virtual bool hasTaskSetInformationFor(const std::string&) const;
114 
116  virtual std::string diGuyAnimationForKeyword(const std::string& kw) const;
117 
118  virtual void setSupportedTasks(const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true);
119  virtual void setSupportedSets(const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true);
120  virtual void setSupportingTasks(const makVrv::DtUniqueID&, const std::map<int, std::vector<DtSimTaskMessageType> >&, bool signal = true);
121 
122  virtual std::vector<DtSimTaskMessageType> availableTasks(const makVrv::DtUniqueID&) const;
123  virtual std::vector<DtSetMessageType> availableSets(const makVrv::DtUniqueID&) const;
124  virtual std::vector<std::string> availableSupportingTasks(const makVrv::DtUniqueID&, int type) const;
125  virtual DtTasksAndSets::AvailableSupportingTasks availableSupportingTasks(const makVrv::DtUniqueID&) const;
126 
127  virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
128  bool noTaskSetValueMeansAll = true);
129  virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
130  bool noTaskSetValueMeansAll = true);
131  virtual void available(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
132  bool noTaskSetValueMeansAll = true);
133  virtual std::vector<int> supportedMenuTasks() const;
134  virtual std::vector<int> supportedMenuSets() const;
135 
138  virtual int lookupTask(const DtSimTaskMessageType type) const;
139 
142  virtual int lookupSet(const DtSetMessageType type) const;
143 
144  boost::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
145  boost::signal<void (makVrv::DtUniqueID)> signal_supportingTaskInformationChanged;
146  boost::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
147  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
148  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
149  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged;
150 
152  boost::signal<void ()> signal_allPendingRequestsResolved;
153 
155  virtual bool hasPendingRequests() const;
156 
158  virtual void clearInformationForForce(int);
159 
161  virtual bool isAvailableTaskMenuItem(int) const;
162  virtual bool isAvailableVrfTaskItem(const DtSimTaskMessageType&) const;
163 
165  virtual bool isAvailableSetMenuItem(int) const;
166  virtual bool isAvailableVrfSetItem(const DtSetMessageType&) const;
167 
168  virtual bool hasDIGuyInformationFor(const makVrv::DtUniqueID&) const;
169  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor(const makVrv::DtUniqueID&);
170 
171  virtual void setDIGuyAppearances(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
172  virtual void setDIGuyAnimations(const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true);
173  virtual void setDIGuyHandItems(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
174 
175 
177  virtual void clearAllInformation();
178 
179  virtual DtTasksAndSets* informationFor(const makVrv::DtUniqueID&);
180 
182  virtual void addAvailableSet(int menuItem, const DtSetMessageType& setType);
183  virtual void addAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
184 
186  virtual void addAvailableSetForSingleSelection(int menuItem, const DtSetMessageType& setType);
187 
189  virtual void addAvailableTaskForSingleSelection(int menuItem, const DtSimTaskMessageType& taskType);
190 
192  virtual void setSetIsSingleSelection(int, bool);
193  virtual bool setIsSingleSelection(int) const;
194 
196  virtual void setTaskIsSingleSelection(int, bool);
197  virtual bool taskIsSingleSelection(int) const;
198 
200  virtual void removeAvailableSet(int menuItem, const DtSetMessageType& setType);
201  virtual void removeAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
202 
203  virtual void requestDIGuyAppearancesAndAnimations(const std::string& name);
204  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& name);
205 
207  virtual int nextAvailableId() const;
208 
210  virtual bool isAvailableTask(makVrv::DtUniqueID id, DtSimTaskMessageType) const;
211 
213  virtual bool isAvailableSet(makVrv::DtUniqueID id, DtSetMessageType) const;
214 
215  protected:
217  virtual void requestTaskSetInformationFor(const std::string&);
218  virtual void requestTaskSetInformationFor(const std::vector<DtString>&);
219  virtual void processTaskAndSetResponse(DtSimMessage*);
220 
222  virtual void processDIGuyResponse(DtSimMessage*);
223 
225  virtual void initMenuMappings();
226 
227  virtual bool needsUpdateForForce(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv);
228 
229  virtual bool isAvailableMenuItem(int menu, const DtTaskMap&) const;
230  virtual bool isAvailableMenuItem(int menu, const DtSetMap& m) const;
231  virtual bool isAvailableVrfItem(const DtSimTaskMessageType& item, const DtTaskMap&) const;
232  virtual bool isAvailableVrfItem(const DtSetMessageType& item, const DtSetMap&) const;
233 
235  virtual void mergeMenuItems(const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
236  std::vector<int>& results);
237 
238  virtual void mergeMenuItems(const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
239  std::vector<int>& results);
240 
241  protected:
242  virtual void slot_postInitialize(makVrv::DtDe& de);
243  virtual void slot_objectRemoved(makVrv::DtSimObjectEntry&);
244  virtual void requestNextSetOfNames();
245 
246  protected:
247  typedef std::map<int, bool> SingleSelectionMap;
248 
249  std::map<makVrv::DtUniqueID, int> myForceMap;
250  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
251  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
252  std::map<std::string, makVrv::DtUniqueID> myPendingRequests;
253  std::map<std::string, makVrv::DtUniqueID> myPendingDIGuyRequests;
254  std::map<DtString, bool> myRequestingNames;
255 
257 
262 
264 
265  std::map<DtString, DtString> myDiGuyAnimations;
266  };
267 }

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)