VR-Forces 4.10 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) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 
17 
19 #include <vrvCore/DtUniqueID.h>
21 #include <vrvCore/DtStateView.h>
22 #include <vrvCore/DtEntityState.h>
23 
24 #include <vrvUtil/signalslib.h>
25 
26 namespace makVrv
27 {
28  class DtDe;
29  class DtSimEntry;
30  class DtSimObjectEntry;
31 }
32 
33 class DtSimMessage;
36 
37 namespace makVrf
38 {
39 
41  {
42  public:
43 
45  {
46  }
47 
49  : mySupportedTasks( orig.mySupportedTasks )
50  , mySupportedSets( orig.mySupportedSets )
51  {
52  }
53 
54  std::vector<DtSimTaskMessageType> mySupportedTasks;
55  std::vector<DtSetMessageType> mySupportedSets;
56 
57  typedef std::vector<DtSimTaskMessageType> SupportingTasks;
58  typedef std::map<int,SupportingTasks> AvailableSupportingTasks;
60 
61  };
62 
63 
66  {
67  public:
68  std::vector<DtString> mySupportedAppearances;
70  std::vector<DtString> mySupportedHandItems;
71  std::vector<DtString> mySupportedGestures;
73  std::map<DtString, std::vector<DtString> > mySupportedHeads;
74  };
75 
81  {
82  public:
83 
84  typedef std::map<int, std::vector<DtSimTaskMessageType> > DtTaskMap;
85  typedef std::map<int, std::vector<DtSetMessageType> > DtSetMap;
86  typedef std::vector<makVrv::DtSimEntry*> SimEntries;
87 
88  public:
89 
91  virtual ~DtVrfTaskSetManager();
92 
94  static DtVrfTaskSetManager& instance( makVrv::DtDe& de );
95 
96  public:
99  virtual int menuIdForTaskType( DtSimTaskMessageType ) const;
100 
103  virtual int menuIdForSetType( DtSetMessageType ) const;
104 
106  virtual void requestInformationFor( const DtUUID&, makVrv::DtUniqueID id );
107  virtual void requestInformationFor( const std::vector<std::pair<DtUUID, makVrv::DtUniqueID> >& names );
108  virtual void requestInformationFor( makVrv::DtUniqueID id );
109 
111  virtual void updateAvailableTaskSetInformation( const makVrv::DtSimEntry* type );
112  virtual void updateAvailableTaskSetInformation( const SimEntries& );
113  virtual void updateAvailableTaskSetInformation( const DtUUID& );
114  virtual void updateAvailableTaskSetInformation( makVrv::DtElementID id );
115 
117  virtual void clearInformationFor( makVrv::DtUniqueID id, bool request = false );
118  virtual void clearInformationFor( const std::vector<makVrv::DtUniqueID>& ids, bool request = false );
119 
121  virtual bool hasTaskSetInformationFor( const makVrv::DtUniqueID& ) const;
122 
125  virtual bool hasTaskSetInformationFor( const DtUUID& ) const;
126 
128  virtual std::string diGuyAnimationForKeyword( const std::string& kw ) const;
129 
131  virtual DtSetMessageType setMessageType( int ) const;
132 
134  virtual DtSimTaskMessageType taskMessageType( int ) const;
135 
137  virtual std::vector<DtString> taskGroupsForTask( const DtEntityType& et, const DtSimTaskMessageType& taskType ) const;
138 
139  virtual void setSupportedTasks( const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true );
140  virtual void setSupportedSets( const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true );
141  virtual void setSupportingTasks( const makVrv::DtUniqueID&, const std::map<int, std::vector<DtSimTaskMessageType> >&, bool signal = true );
142 
143  virtual std::vector<DtSimTaskMessageType> availableTasks( const makVrv::DtUniqueID& ) const;
144  virtual std::vector<DtSetMessageType> availableSets( const makVrv::DtUniqueID& ) const;
145  virtual std::vector<DtSimTaskMessageType> availableSupportingTasks( const makVrv::DtUniqueID&, int type ) const;
146  virtual DtTasksAndSets::AvailableSupportingTasks availableSupportingTasks( const makVrv::DtUniqueID& ) const;
147 
148  virtual void availableTasks( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
149  bool noTaskSetValueMeansAll = true );
150  virtual void availableTasks( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
151  bool noTaskSetValueMeansAll = true );
152  virtual void availableSets( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
153  bool noTaskSetValueMeansAll = true );
154  virtual void availableSets( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
155  bool noTaskSetValueMeansAll = true );
156  virtual void available( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
157  bool noTaskSetValueMeansAll = true );
158  virtual void available( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
159  bool noTaskSetValueMeansAll = true );
160  virtual std::vector<int> supportedMenuTasks() const;
161  virtual std::vector<int> supportedMenuSets() const;
162 
165  virtual int lookupTask( const DtSimTaskMessageType& type ) const;
166 
169  virtual int lookupSet( const DtSetMessageType& type ) const;
170 
173  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
174  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportingTaskInformationChanged;
175  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
176  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
177  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
178  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged;
179  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged;
180  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged;
181  boost::signals2::signal<void ()> signal_taskSetInformationCleared;
183 
185  boost::signals2::signal<void ()> signal_allPendingRequestsResolved;
186 
188  virtual bool hasPendingRequests() const;
189 
191  virtual bool hasPendingRequest( makVrv::DtUniqueID ) const;
192 
194  virtual void clearInformationForForce( int );
195 
197  virtual bool isAvailableTaskMenuItem( int ) const;
198  virtual bool isAvailableVrfTaskItem( const DtSimTaskMessageType& ) const;
199 
201  virtual bool isAvailableSetMenuItem( int ) const;
202  virtual bool isAvailableVrfSetItem( const DtSetMessageType& ) const;
203 
204  virtual bool hasDIGuyInformationFor( const makVrv::DtUniqueID& ) const;
205  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor( const makVrv::DtUniqueID& );
206 
207  virtual void setDIGuyAppearances( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
208  virtual void setDIGuyAnimations( const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true );
209  virtual void setDIGuyHandItems( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
210  virtual void setDIGuyGestures( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
211  virtual void setDIGuyHeads( const makVrv::DtUniqueID&, const DtString& appearance, const std::vector<DtString>&, bool signal = true );
212 
214  virtual void clearAllInformation();
215 
216  virtual DtTasksAndSets* informationFor( const makVrv::DtUniqueID& );
217 
219  virtual void addAvailableSet( int menuItem, const DtSetMessageType& setType );
220  virtual void addAvailableTask( int menuItem, const DtSimTaskMessageType& taskType );
221 
223  virtual void addAvailableSetForSingleSelection( int menuItem, const DtSetMessageType& setType );
224 
226  virtual void addAvailableTaskForSingleSelection( int menuItem, const DtSimTaskMessageType& taskType );
227 
229  virtual void setSetIsSingleSelection( int, bool );
230  virtual bool setIsSingleSelection( int ) const;
231 
233  virtual void setTaskIsSingleSelection( int, bool );
234  virtual bool taskIsSingleSelection( int ) const;
235 
237  virtual void removeAvailableSet( int menuItem, const DtSetMessageType& setType );
238  virtual void removeAvailableTask( int menuItem, const DtSimTaskMessageType& taskType );
239 
240  virtual void requestDIGuyAppearancesAndAnimations( const DtUUID& );
241  virtual void requestDIGuyAppearancesAndAnimations( const std::vector<DtUUID>& );
242 
244  virtual int nextAvailableId() const;
245 
247  virtual bool isAvailableTask( makVrv::DtUniqueID id, DtSimTaskMessageType ) const;
248 
250  virtual bool isAvailableSet( makVrv::DtUniqueID id, DtSetMessageType ) const;
251 
252  protected:
253 
255  virtual void requestTaskSetInformationFor( const DtUUID& );
256  virtual void requestTaskSetInformationFor( const std::vector<DtUUID>& );
257  virtual void requestTaskSetInformationFor( const std::vector<DtString>& );
258  virtual void processTaskAndSetResponse( DtSimMessage* );
259 
261  virtual void processDIGuyResponse( DtSimMessage* );
262 
264  virtual void initMenuMappings();
265 
266  virtual bool needsUpdateForForce( const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv );
267 
268  virtual bool isAvailableMenuItem( int menu, const DtTaskMap& ) const;
269  virtual bool isAvailableMenuItem( int menu, const DtSetMap& m ) const;
270  virtual bool isAvailableVrfItem( const DtSimTaskMessageType& item, const DtTaskMap& ) const;
271  virtual bool isAvailableVrfItem( const DtSetMessageType& item, const DtSetMap& ) const;
272 
274  virtual void mergeMenuItems( const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
275  std::vector<int>& results );
276 
277  virtual void mergeMenuItems( const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
278  std::vector<int>& results );
279 
280  protected:
281  virtual void slot_postInitialize( makVrv::DtDe& de );
282  virtual void slot_objectRemoved( makVrv::DtSimObjectEntry& );
283  virtual void requestNextSetOfNames();
284 
285  protected:
286  typedef std::map<int, bool> SingleSelectionMap;
287 
288  std::map<makVrv::DtUniqueID, int> myForceMap;
289  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
290  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
291 
292  typedef std::map<int, std::set<DtUUID> > PendingNameGroupRequests;
293  typedef std::map<DtUUID, std::pair<makVrv::DtUniqueID, int> > PendingRequests;
294 
297 
300 
301  typedef std::map<DtUUID, bool> RequestingNames;
303 
305 
310 
312 
313  std::map<DtString, DtString> myDiGuyAnimations;
314 
315  };
316 
317 }
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:85
std::map< DtString, std::vector< DtString > > mySupportedHeads
Each supported appearance maps to a set of head.
Definition: vrfTaskSetManager.h:73
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged
Definition: vrfTaskSetManager.h:176
Virtual base class.
Definition: DtVirtualBaseClass.h:19
std::vector< DtString > mySupportedGestures
Definition: vrfTaskSetManager.h:71
std::map< DtUUID, bool > RequestingNames
Definition: vrfTaskSetManager.h:301
AvailableSupportingTasks myAvailableSupportingTasks
Definition: vrfTaskSetManager.h:59
makVrv::DtDe & myDe
Definition: vrfTaskSetManager.h:311
DtTasksAndSets(const DtTasksAndSets &orig)
Definition: vrfTaskSetManager.h:48
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged
Definition: vrfTaskSetManager.h:177
PendingRequests myPendingRequests
Definition: vrfTaskSetManager.h:298
std::map< int, bool > SingleSelectionMap
Definition: vrfTaskSetManager.h:286
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedTaskInformationChanged
Definition: vrfTaskSetManager.h:173
std::map< makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations * > myDIGuyTaskSetCharacterInfo
Definition: vrfTaskSetManager.h:290
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:185
A DtSimEntry is a container of DtSimState&#39;s and represents the total state of an simulation object...
Definition: DtSimEntry.h:27
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportingTaskInformationChanged
Definition: vrfTaskSetManager.h:174
DtTasksAndSets()
Definition: vrfTaskSetManager.h:44
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:29
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged
Definition: vrfTaskSetManager.h:180
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
PendingNameGroupRequests myPendingNameGroupRequests
Definition: vrfTaskSetManager.h:295
std::vector< DtSetMessageType > mySupportedSets
Definition: vrfTaskSetManager.h:55
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
SingleSelectionMap mySingleSelectionSetMap
Definition: vrfTaskSetManager.h:308
Contains the DtDiGuyCharacterData class declaration.
std::map< DtString, DtString > myDiGuyAnimations
Definition: vrfTaskSetManager.h:313
int myPendingGroupRequest
Definition: vrfTaskSetManager.h:296
std::map< int, std::set< DtUUID > > PendingNameGroupRequests
Definition: vrfTaskSetManager.h:292
Contains makVrv::DtVirtualBaseClass class.
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
File: simMsg.h.
Definition: simMessage.h:35
DtSetMap mySetMenuMap
Stores menu items mapped to their corresponding task/set ID.
Definition: vrfTaskSetManager.h:306
DtTaskMap myTaskMenuMap
Definition: vrfTaskSetManager.h:307
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged
Definition: vrfTaskSetManager.h:179
std::vector< DtSimTaskMessageType > SupportingTasks
Definition: vrfTaskSetManager.h:57
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedSetInformationChanged
Definition: vrfTaskSetManager.h:175
std::vector< DtString > mySupportedAppearances
Definition: vrfTaskSetManager.h:68
Contains makVrv::DtEntityState class.
Define constants for types of tasks, sets, admin messages, reports, and sim commands (all sent via ra...
std::map< int, SupportingTasks > AvailableSupportingTasks
Definition: vrfTaskSetManager.h:58
This message contains lists of the DIGuy appearances and taskable animations that a particular entity...
Definition: ifDiGuyAppearAndAnimationsResponse.h:20
AlternateNamesList mySupportedTaskableAnimations
Definition: vrfTaskSetManager.h:69
DtIfCapableTaskAndSetResponse.
Definition: ifCapableTaskAndSetResponse.h:25
This class contains sets of possible options for each DI-Guy character type.
Definition: vrfTaskSetManager.h:65
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::vector< DtSimTaskMessageType > mySupportedTasks
Definition: vrfTaskSetManager.h:54
SingleSelectionMap mySingleSelectionTaskMap
Definition: vrfTaskSetManager.h:309
std::map< DtUUID, std::pair< makVrv::DtUniqueID, int > > PendingRequests
Definition: vrfTaskSetManager.h:293
std::map< makVrv::DtUniqueID, int > myForceMap
Definition: vrfTaskSetManager.h:288
PendingRequests myPendingDIGuyRequests
Definition: vrfTaskSetManager.h:299
Contains makVrv::DtUniqueID type.
std::vector< DtString > mySupportedHandItems
Definition: vrfTaskSetManager.h:70
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::vector< makVrv::DtSimEntry * > SimEntries
Definition: vrfTaskSetManager.h:86
RequestingNames myRequestingNames
Definition: vrfTaskSetManager.h:302
std::map< int, std::vector< DtSimTaskMessageType > > DtTaskMap
Definition: vrfTaskSetManager.h:84
boost::signals2::signal< void()> signal_taskSetInformationCleared
Definition: vrfTaskSetManager.h:181
This class will maintain a list of all available task and sets for a particular object in the scenari...
Definition: vrfTaskSetManager.h:80
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged
Definition: vrfTaskSetManager.h:178
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
std::map< makVrv::DtUniqueID, DtTasksAndSets > myTaskSetInformation
Definition: vrfTaskSetManager.h:289

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)