VR-Forces 4.8 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/signals2.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 
125  virtual DtSetMessageType setMessageType(int) const;
126 
128  virtual DtSimTaskMessageType taskMessageType(int) const;
129 
131  virtual std::vector<DtString> taskGroupsForTask(const DtEntityType& et, const DtSimTaskMessageType& taskType) const;
132 
133  virtual void setSupportedTasks(const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true);
134  virtual void setSupportedSets(const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true);
135  virtual void setSupportingTasks(const makVrv::DtUniqueID&, const std::map<int, std::vector<DtSimTaskMessageType> >&, bool signal = true);
136 
137  virtual std::vector<DtSimTaskMessageType> availableTasks(const makVrv::DtUniqueID&) const;
138  virtual std::vector<DtSetMessageType> availableSets(const makVrv::DtUniqueID&) const;
139  virtual std::vector<DtSimTaskMessageType> availableSupportingTasks(const makVrv::DtUniqueID&, int type) const;
140  virtual DtTasksAndSets::AvailableSupportingTasks availableSupportingTasks(const makVrv::DtUniqueID&) const;
141 
142  virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
143  bool noTaskSetValueMeansAll = true);
144  virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
145  bool noTaskSetValueMeansAll = true);
146  virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
147  bool noTaskSetValueMeansAll = true);
148  virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
149  bool noTaskSetValueMeansAll = true);
150  virtual void available(const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
151  bool noTaskSetValueMeansAll = true);
152  virtual void available(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
153  bool noTaskSetValueMeansAll = true);
154  virtual std::vector<int> supportedMenuTasks() const;
155  virtual std::vector<int> supportedMenuSets() const;
156 
159  virtual int lookupTask(const DtSimTaskMessageType& type) const;
160 
163  virtual int lookupSet(const DtSetMessageType& type) const;
164 
167  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
168  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportingTaskInformationChanged;
169  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
170  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
171  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
172  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged;
173  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged;
174  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged;
175  boost::signals2::signal<void ()> signal_taskSetInformationCleared;
177 
179  boost::signals2::signal<void ()> signal_allPendingRequestsResolved;
180 
182  virtual bool hasPendingRequests() const;
183 
185  virtual bool hasPendingRequest(makVrv::DtUniqueID) const;
186 
188  virtual void clearInformationForForce(int);
189 
191  virtual bool isAvailableTaskMenuItem(int) const;
192  virtual bool isAvailableVrfTaskItem(const DtSimTaskMessageType&) const;
193 
195  virtual bool isAvailableSetMenuItem(int) const;
196  virtual bool isAvailableVrfSetItem(const DtSetMessageType&) const;
197 
198  virtual bool hasDIGuyInformationFor(const makVrv::DtUniqueID&) const;
199  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor(const makVrv::DtUniqueID&);
200 
201  virtual void setDIGuyAppearances(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
202  virtual void setDIGuyAnimations(const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true);
203  virtual void setDIGuyHandItems(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
204  virtual void setDIGuyGestures(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
205  virtual void setDIGuyHeads(const makVrv::DtUniqueID&, const DtString& appearance, const std::vector<DtString>&, bool signal = true);
206 
208  virtual void clearAllInformation();
209 
210  virtual DtTasksAndSets* informationFor(const makVrv::DtUniqueID&);
211 
213  virtual void addAvailableSet(int menuItem, const DtSetMessageType& setType);
214  virtual void addAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
215 
217  virtual void addAvailableSetForSingleSelection(int menuItem, const DtSetMessageType& setType);
218 
220  virtual void addAvailableTaskForSingleSelection(int menuItem, const DtSimTaskMessageType& taskType);
221 
223  virtual void setSetIsSingleSelection(int, bool);
224  virtual bool setIsSingleSelection(int) const;
225 
227  virtual void setTaskIsSingleSelection(int, bool);
228  virtual bool taskIsSingleSelection(int) const;
229 
231  virtual void removeAvailableSet(int menuItem, const DtSetMessageType& setType);
232  virtual void removeAvailableTask(int menuItem, const DtSimTaskMessageType& taskType);
233 
234  virtual void requestDIGuyAppearancesAndAnimations(const DtUUID&);
235  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtUUID>&);
236 
238  virtual int nextAvailableId() const;
239 
241  virtual bool isAvailableTask(makVrv::DtUniqueID id, DtSimTaskMessageType) const;
242 
244  virtual bool isAvailableSet(makVrv::DtUniqueID id, DtSetMessageType) const;
245 
246  protected:
248  virtual void requestTaskSetInformationFor(const DtUUID&);
249  virtual void requestTaskSetInformationFor(const std::vector<DtUUID>&);
250  virtual void requestTaskSetInformationFor(const std::vector<DtString>&);
251  virtual void processTaskAndSetResponse(DtSimMessage*);
252 
254  virtual void processDIGuyResponse(DtSimMessage*);
255 
257  virtual void initMenuMappings();
258 
259  virtual bool needsUpdateForForce(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv);
260 
261  virtual bool isAvailableMenuItem(int menu, const DtTaskMap&) const;
262  virtual bool isAvailableMenuItem(int menu, const DtSetMap& m) const;
263  virtual bool isAvailableVrfItem(const DtSimTaskMessageType& item, const DtTaskMap&) const;
264  virtual bool isAvailableVrfItem(const DtSetMessageType& item, const DtSetMap&) const;
265 
267  virtual void mergeMenuItems(const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
268  std::vector<int>& results);
269 
270  virtual void mergeMenuItems(const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
271  std::vector<int>& results);
272 
273  protected:
274  virtual void slot_postInitialize(makVrv::DtDe& de);
275  virtual void slot_objectRemoved(makVrv::DtSimObjectEntry&);
276  virtual void requestNextSetOfNames();
277 
278  protected:
279  typedef std::map<int, bool> SingleSelectionMap;
280 
281  std::map<makVrv::DtUniqueID, int> myForceMap;
282  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
283  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
284 
285  typedef std::map<int, std::set<DtUUID> > PendingNameGroupRequests;
286  typedef std::map<DtUUID, std::pair<makVrv::DtUniqueID, int> > PendingRequests;
287 
290 
293 
294  typedef std::map<DtUUID, bool> RequestingNames;
296 
298 
303 
305 
306  std::map<DtString, DtString> myDiGuyAnimations;
307  };
308 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Definition: vrfTaskSetManager.h:40
std::map< int, std::vector< DtSetMessageType > > DtSetMap
Definition: vrfTaskSetManager.h:80
std::map< DtString, std::vector< DtString > > mySupportedHeads
Each supported appearance maps to a set of head.
Definition: vrfTaskSetManager.h:69
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged
Definition: vrfTaskSetManager.h:170
Virtual base class.
Definition: DtVirtualBaseClass.h:22
std::vector< DtString > mySupportedGestures
Definition: vrfTaskSetManager.h:67
std::map< DtUUID, bool > RequestingNames
Definition: vrfTaskSetManager.h:294
AvailableSupportingTasks myAvailableSupportingTasks
Definition: vrfTaskSetManager.h:57
makVrv::DtDe & myDe
Definition: vrfTaskSetManager.h:304
DtTasksAndSets(const DtTasksAndSets &orig)
Definition: vrfTaskSetManager.h:47
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged
Definition: vrfTaskSetManager.h:171
PendingRequests myPendingRequests
Definition: vrfTaskSetManager.h:291
std::map< int, bool > SingleSelectionMap
Definition: vrfTaskSetManager.h:279
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedTaskInformationChanged
Definition: vrfTaskSetManager.h:167
std::map< makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations * > myDIGuyTaskSetCharacterInfo
Definition: vrfTaskSetManager.h:283
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
boost::signals2::signal< void()> signal_allPendingRequestsResolved
Signal sent when all pending task/set requests are resolved.
Definition: vrfTaskSetManager.h:179
A DtSimEntry is a container of DtSimState&#39;s and represents the total state of an simulation object...
Definition: DtSimEntry.h:31
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportingTaskInformationChanged
Definition: vrfTaskSetManager.h:168
DtTasksAndSets()
Definition: vrfTaskSetManager.h:43
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:26
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged
Definition: vrfTaskSetManager.h:174
std::map< int, SupportingTasks > AvailableSupportingTasks
Definition: vrfTaskSetManager.h:56
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
PendingNameGroupRequests myPendingNameGroupRequests
Definition: vrfTaskSetManager.h:288
std::vector< DtSetMessageType > mySupportedSets
Definition: vrfTaskSetManager.h:53
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
SingleSelectionMap mySingleSelectionSetMap
Definition: vrfTaskSetManager.h:301
std::map< DtString, DtString > myDiGuyAnimations
Definition: vrfTaskSetManager.h:306
int myPendingGroupRequest
Definition: vrfTaskSetManager.h:289
std::map< int, std::set< DtUUID > > PendingNameGroupRequests
Definition: vrfTaskSetManager.h:285
Contains makVrv::DtVirtualBaseClass class.
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:25
File: simMsg.h.
Definition: simMessage.h:35
DtSetMap mySetMenuMap
Stores menu items mapped to their corresponding task/set ID.
Definition: vrfTaskSetManager.h:299
DtTaskMap myTaskMenuMap
Definition: vrfTaskSetManager.h:300
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged
Definition: vrfTaskSetManager.h:173
std::vector< DtSimTaskMessageType > SupportingTasks
Definition: vrfTaskSetManager.h:55
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedSetInformationChanged
Definition: vrfTaskSetManager.h:169
std::vector< DtString > mySupportedAppearances
Definition: vrfTaskSetManager.h:64
Contains makVrv::DtEntityState class.
Define constants for types of tasks, sets, admin messages, reports, and sim commands (all sent via ra...
DtIfDiGuyAppearAndAnimationsResponse.
Definition: ifDiGuyAppearAndAnimationsResponse.h:21
AlternateNamesList mySupportedTaskableAnimations
Definition: vrfTaskSetManager.h:65
DtIfCapableTaskAndSetResponse.
Definition: ifCapableTaskAndSetResponse.h:25
This class contains sets of possible options for each DI-Guy character type.
Definition: vrfTaskSetManager.h:61
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
SingleSelectionMap mySingleSelectionTaskMap
Definition: vrfTaskSetManager.h:302
std::map< DtUUID, std::pair< makVrv::DtUniqueID, int > > PendingRequests
Definition: vrfTaskSetManager.h:286
std::map< makVrv::DtUniqueID, int > myForceMap
Definition: vrfTaskSetManager.h:281
PendingRequests myPendingDIGuyRequests
Definition: vrfTaskSetManager.h:292
Contains makVrv::DtUniqueID type.
std::vector< DtString > mySupportedHandItems
Definition: vrfTaskSetManager.h:66
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::vector< makVrv::DtSimEntry * > SimEntries
Definition: vrfTaskSetManager.h:81
RequestingNames myRequestingNames
Definition: vrfTaskSetManager.h:295
std::map< int, std::vector< DtSimTaskMessageType > > DtTaskMap
Definition: vrfTaskSetManager.h:79
boost::signals2::signal< void()> signal_taskSetInformationCleared
Definition: vrfTaskSetManager.h:175
This class will maintain a list of all available task and sets for a particular object in the scenari...
Definition: vrfTaskSetManager.h:76
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged
Definition: vrfTaskSetManager.h:172
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
std::map< makVrv::DtUniqueID, DtTasksAndSets > myTaskSetInformation
Definition: vrfTaskSetManager.h:282

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)