VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 
23 #include <boost/signal.hpp>
26 
27 namespace makVrv
28 {
29  class DtDe;
30  class DtSimEntry;
31  class DtSimObjectEntry;
32 }
33 
34 class DtSimMessage;
37 
38 namespace makVrf
39 {
41  {
42  public:
44  {
45  };
46 
48  mySupportedTasks(orig.mySupportedTasks), mySupportedSets(orig.mySupportedSets)
49  {
50  };
51 
52  std::vector<DtSimTaskMessageType> mySupportedTasks;
53  std::vector<DtSetMessageType> mySupportedSets;
54 
55  typedef std::vector<DtSimTaskMessageType> SupportingTasks;
56  typedef std::map<int, SupportingTasks> AvailableSupportingTasks;
58  };
59 
62  {
63  public:
64  std::vector<DtString> mySupportedAppearances;
66  std::vector<DtString> mySupportedHandItems;
67  std::vector<DtString> mySupportedGestures;
69  std::map<DtString, std::vector<DtString> > mySupportedHeads;
70  };
71 
77  {
78  public:
79  typedef std::map<int, std::vector<DtSimTaskMessageType> > DtTaskMap;
80  typedef std::map<int, std::vector<DtSetMessageType> > DtSetMap;
81  typedef std::vector<makVrv::DtSimEntry*> SimEntries;
82 
83  public:
85  virtual ~DtVrfTaskSetManager();
86 
88  static DtVrfTaskSetManager& instance(makVrv::DtDe& de);
89 
90  public:
93  virtual int menuIdForTaskType(DtSimTaskMessageType) const;
94 
97  virtual int menuIdForSetType(DtSetMessageType) const;
98 
100  virtual void requestInformationFor(const DtUUID&, makVrv::DtUniqueID id);
101  virtual void requestInformationFor(const std::vector<std::pair<DtUUID, makVrv::DtUniqueID> >& names);
102  virtual void requestInformationFor(makVrv::DtUniqueID id);
103 
105  virtual void updateAvailableTaskSetInformation(const makVrv::DtSimEntry* type);
106  virtual void updateAvailableTaskSetInformation(const SimEntries&);
107  virtual void updateAvailableTaskSetInformation(const DtUUID&);
108  virtual void updateAvailableTaskSetInformation(makVrv::DtElementID id);
109 
111  virtual void clearInformationFor(makVrv::DtUniqueID id, bool request = false);
112  virtual void clearInformationFor(const std::vector<makVrv::DtUniqueID>& ids, bool request = false);
113 
115  virtual bool hasTaskSetInformationFor(const makVrv::DtUniqueID&) const;
116 
119  virtual bool hasTaskSetInformationFor(const DtUUID&) const;
120 
122  virtual std::string diGuyAnimationForKeyword(const std::string& kw) const;
123 
124  virtual void setSupportedTasks(const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true);
125  virtual void setSupportedSets(const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true);
126  virtual void setSupportingTasks(const makVrv::DtUniqueID&, const std::map<int, std::vector<DtSimTaskMessageType> >&, bool signal = true);
127 
128  virtual std::vector<DtSimTaskMessageType> availableTasks(const makVrv::DtUniqueID&) const;
129  virtual std::vector<DtSetMessageType> availableSets(const makVrv::DtUniqueID&) const;
130  virtual std::vector<DtSimTaskMessageType> availableSupportingTasks(const makVrv::DtUniqueID&, int type) const;
131  virtual DtTasksAndSets::AvailableSupportingTasks availableSupportingTasks(const makVrv::DtUniqueID&) const;
132 
133  virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
134  bool noTaskSetValueMeansAll = true);
135  virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
136  bool noTaskSetValueMeansAll = true);
137  virtual void available(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
138  bool noTaskSetValueMeansAll = true);
139  virtual std::vector<int> supportedMenuTasks() const;
140  virtual std::vector<int> supportedMenuSets() const;
141 
144  virtual int lookupTask(const DtSimTaskMessageType& type) const;
145 
148  virtual int lookupSet(const DtSetMessageType& type) const;
149 
152  boost::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
153  boost::signal<void (makVrv::DtUniqueID)> signal_supportingTaskInformationChanged;
154  boost::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
155  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
156  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
157  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged;
158  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged;
159  boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged;
160  boost::signal<void ()> signal_taskSetInformationCleared;
162 
164  boost::signal<void ()> signal_allPendingRequestsResolved;
165 
167  virtual bool hasPendingRequests() const;
168 
170  virtual bool hasPendingRequest(makVrv::DtUniqueID) const;
171 
173  virtual void clearInformationForForce(int);
174 
176  virtual bool isAvailableTaskMenuItem(int) const;
177  virtual bool isAvailableVrfTaskItem(const DtSimTaskMessageType&) const;
178 
180  virtual bool isAvailableSetMenuItem(int) const;
181  virtual bool isAvailableVrfSetItem(const DtSetMessageType&) const;
182 
183  virtual bool hasDIGuyInformationFor(const makVrv::DtUniqueID&) const;
184  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor(const makVrv::DtUniqueID&);
185 
186  virtual void setDIGuyAppearances(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
187  virtual void setDIGuyAnimations(const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true);
188  virtual void setDIGuyHandItems(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
189  virtual void setDIGuyGestures(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
190  virtual void setDIGuyHeads(const makVrv::DtUniqueID&, const DtString& appearance, const std::vector<DtString>&, bool signal = true);
191 
193  virtual void clearAllInformation();
194 
195  virtual DtTasksAndSets* informationFor(const makVrv::DtUniqueID&);
196 
198  virtual void addAvailableSet(int menuItem, const DtSetMessageType& setType);
199  virtual void addAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
200 
202  virtual void addAvailableSetForSingleSelection(int menuItem, const DtSetMessageType& setType);
203 
205  virtual void addAvailableTaskForSingleSelection(int menuItem, const DtSimTaskMessageType& taskType);
206 
208  virtual void setSetIsSingleSelection(int, bool);
209  virtual bool setIsSingleSelection(int) const;
210 
212  virtual void setTaskIsSingleSelection(int, bool);
213  virtual bool taskIsSingleSelection(int) const;
214 
216  virtual void removeAvailableSet(int menuItem, const DtSetMessageType& setType);
217  virtual void removeAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
218 
219  virtual void requestDIGuyAppearancesAndAnimations(const DtUUID&);
220  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtUUID>&);
221 
223  virtual int nextAvailableId() const;
224 
226  virtual bool isAvailableTask(makVrv::DtUniqueID id, DtSimTaskMessageType) const;
227 
229  virtual bool isAvailableSet(makVrv::DtUniqueID id, DtSetMessageType) const;
230 
231  protected:
233  virtual void requestTaskSetInformationFor(const DtUUID&);
234  virtual void requestTaskSetInformationFor(const std::vector<DtUUID>&);
235  virtual void requestTaskSetInformationFor(const std::vector<DtString>&);
236  virtual void processTaskAndSetResponse(DtSimMessage*);
237 
239  virtual void processDIGuyResponse(DtSimMessage*);
240 
242  virtual void initMenuMappings();
243 
244  virtual bool needsUpdateForForce(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv);
245 
246  virtual bool isAvailableMenuItem(int menu, const DtTaskMap&) const;
247  virtual bool isAvailableMenuItem(int menu, const DtSetMap& m) const;
248  virtual bool isAvailableVrfItem(const DtSimTaskMessageType& item, const DtTaskMap&) const;
249  virtual bool isAvailableVrfItem(const DtSetMessageType& item, const DtSetMap&) const;
250 
252  virtual void mergeMenuItems(const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
253  std::vector<int>& results);
254 
255  virtual void mergeMenuItems(const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
256  std::vector<int>& results);
257 
258  protected:
259  virtual void slot_postInitialize(makVrv::DtDe& de);
260  virtual void slot_objectRemoved(makVrv::DtSimObjectEntry&);
261  virtual void requestNextSetOfNames();
262 
263  protected:
264  typedef std::map<int, bool> SingleSelectionMap;
265 
266  std::map<makVrv::DtUniqueID, int> myForceMap;
267  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
268  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
269 
270  typedef std::map<int, std::set<DtUUID> > PendingNameGroupRequests;
271  typedef std::map<DtUUID, std::pair<makVrv::DtUniqueID, int> > PendingRequests;
272 
275 
278 
279  typedef std::map<DtUUID, bool> RequestingNames;
281 
283 
288 
290 
291  std::map<DtString, DtString> myDiGuyAnimations;
292  };
293 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)