VR-Forces Developer's Guide
 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 
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 
86  {
87  public:
88 
89  typedef std::map<int, std::vector<DtSimTaskMessageType> > DtTaskMap;
90  typedef std::map<int, std::vector<DtSetMessageType> > DtSetMap;
91  typedef std::vector<makVrv::DtSimEntry*> SimEntries;
92 
93  public:
94 
96  virtual ~DtVrfTaskSetManager();
97 
99  static DtVrfTaskSetManager& instance( makVrv::DtDe& de );
100 
101  public:
104  virtual int menuIdForTaskType( DtSimTaskMessageType ) const;
105 
108  virtual int menuIdForSetType( DtSetMessageType ) const;
109 
111  virtual void requestInformationFor( const DtUUID&, makVrv::DtUniqueID id );
112  virtual void requestInformationFor( const std::vector<std::pair<DtUUID, makVrv::DtUniqueID> >& names );
113  virtual void requestInformationFor( makVrv::DtUniqueID id );
114 
116  virtual void updateAvailableTaskSetInformation( const makVrv::DtSimEntry* type );
117  virtual void updateAvailableTaskSetInformation( const std::set<makVrv::DtUniqueID>& );
118  virtual void updateAvailableTaskSetInformation( const DtUUID& );
119  virtual void updateAvailableTaskSetInformation( makVrv::DtElementID id );
120 
122  virtual void clearInformationFor( makVrv::DtUniqueID id, bool request = false );
123  virtual void clearInformationFor( const std::vector<makVrv::DtUniqueID>& ids, bool request = false );
124 
126  virtual bool hasTaskSetInformationFor( const makVrv::DtUniqueID& ) const;
127 
130  virtual bool hasTaskSetInformationFor( const DtUUID& ) const;
131 
133  virtual std::string diGuyAnimationForKeyword( const std::string& kw ) const;
134 
136  virtual DtSetMessageType setMessageType( int ) const;
137 
139  virtual DtSimTaskMessageType taskMessageType( int ) const;
140 
142  virtual std::vector<DtString> taskGroupsForTask( const DtEntityType& et, const DtSimTaskMessageType& taskType ) const;
143 
144  virtual void setSupportedTasks( const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true );
145  virtual void setSupportedSets( const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true );
146  virtual void setSupportingTasks( const makVrv::DtUniqueID&, const std::map<int, std::vector<DtSimTaskMessageType> >&, bool signal = true );
147 
148  virtual std::vector<DtSimTaskMessageType> availableTasks( const makVrv::DtUniqueID& ) const;
149  virtual std::vector<DtSetMessageType> availableSets( const makVrv::DtUniqueID& ) const;
150  virtual std::vector<DtSimTaskMessageType> availableSupportingTasks( const makVrv::DtUniqueID&, int type ) const;
151  virtual DtTasksAndSets::AvailableSupportingTasks availableSupportingTasks( const makVrv::DtUniqueID& ) const;
152 
153  virtual void availableTasks( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
154  bool noTaskSetValueMeansAll = true );
155  virtual void availableTasks( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
156  bool noTaskSetValueMeansAll = true );
157  virtual void availableSets( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
158  bool noTaskSetValueMeansAll = true );
159  virtual void availableSets( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
160  bool noTaskSetValueMeansAll = true );
161  virtual void available( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
162  bool noTaskSetValueMeansAll = true );
163  virtual void available( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
164  bool noTaskSetValueMeansAll = true );
165  virtual std::vector<int> supportedMenuTasks() const;
166  virtual std::vector<int> supportedMenuSets() const;
167 
170  virtual int lookupTask( const DtSimTaskMessageType& type ) const;
171 
174  virtual int lookupSet( const DtSetMessageType& type ) const;
175 
178  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
179  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportingTaskInformationChanged;
180  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
181  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
182  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
183  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged;
184  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged;
185  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged;
186  boost::signals2::signal<void ()> signal_taskSetInformationCleared;
188 
190  boost::signals2::signal<void ()> signal_allPendingRequestsResolved;
191 
193  virtual bool hasPendingRequests() const;
194 
196  virtual bool hasPendingRequest( makVrv::DtUniqueID ) const;
197 
199  virtual void clearInformationForForce( int );
200 
202  virtual bool isAvailableTaskMenuItem( int ) const;
203  virtual bool isAvailableVrfTaskItem( const DtSimTaskMessageType& ) const;
204 
206  virtual bool isAvailableSetMenuItem( int ) const;
207  virtual bool isAvailableVrfSetItem( const DtSetMessageType& ) const;
208 
209  virtual bool hasDIGuyInformationFor( const makVrv::DtUniqueID& ) const;
210  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor( const makVrv::DtUniqueID& );
211 
212  virtual void setDIGuyAppearances( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
213  virtual void setDIGuyAnimations( const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true );
214  virtual void setDIGuyHandItems( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
215  virtual void setDIGuyGestures( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
216  virtual void setDIGuyHeads( const makVrv::DtUniqueID&, const DtString& appearance, const std::vector<DtString>&, bool signal = true );
217 
219  virtual void clearAllInformation();
220 
221  virtual DtTasksAndSets* informationFor( const makVrv::DtUniqueID& );
222 
224  virtual void addAvailableSet( int menuItem, const DtSetMessageType& setType );
225  virtual void addAvailableTask( int menuItem, const DtSimTaskMessageType& taskType );
226 
228  virtual void addAvailableSetForSingleSelection( int menuItem, const DtSetMessageType& setType );
229 
231  virtual void addAvailableTaskForSingleSelection( int menuItem, const DtSimTaskMessageType& taskType );
232 
234  virtual void setSetIsSingleSelection( int, bool );
235  virtual bool setIsSingleSelection( int ) const;
236 
238  virtual void setTaskIsSingleSelection( int, bool );
239  virtual bool taskIsSingleSelection( int ) const;
240 
242  virtual void removeAvailableSet( int menuItem, const DtSetMessageType& setType );
243  virtual void removeAvailableTask( int menuItem, const DtSimTaskMessageType& taskType );
244 
245  virtual void requestDIGuyAppearancesAndAnimations( const DtUUID& );
246  virtual void requestDIGuyAppearancesAndAnimations( const std::vector<DtUUID>& );
247 
249  virtual int nextAvailableId() const;
250 
252  virtual bool isAvailableTask( makVrv::DtUniqueID id, DtSimTaskMessageType ) const;
253 
255  virtual bool isAvailableSet( makVrv::DtUniqueID id, DtSetMessageType ) const;
256 
257  protected:
258 
260  virtual void requestTaskSetInformationFor( const DtUUID& );
261  virtual void requestTaskSetInformationFor( const std::vector<DtUUID>& );
262  virtual void requestTaskSetInformationFor( const std::vector<DtString>& );
263  virtual void processTaskAndSetResponse( DtSimMessage* );
264 
266  virtual void processDIGuyResponse( DtSimMessage* );
267 
269  virtual void initMenuMappings();
270 
271  virtual bool needsUpdateForForce(makVrv::DtElementID id);
272 
273  virtual bool isAvailableMenuItem( int menu, const DtTaskMap& ) const;
274  virtual bool isAvailableMenuItem( int menu, const DtSetMap& m ) const;
275  virtual bool isAvailableVrfItem( const DtSimTaskMessageType& item, const DtTaskMap& ) const;
276  virtual bool isAvailableVrfItem( const DtSetMessageType& item, const DtSetMap& ) const;
277 
279  virtual void mergeMenuItems( const std::vector<DtSimTaskMessageType>& entityItems, const DtTaskMap& menuMap,
280  std::vector<int>& results );
281 
282  virtual void mergeMenuItems( const std::vector<DtSetMessageType>& entityItems, const DtSetMap& menuMap,
283  std::vector<int>& results );
284 
285  protected:
286  virtual void slot_postInitialize( makVrv::DtDe& de );
287  virtual void slot_objectRemoved( makVrv::DtSimObjectEntry& );
288  virtual void requestNextSetOfNames();
289 
290  protected:
291  typedef std::map<int, bool> SingleSelectionMap;
292 
293  std::map<makVrv::DtUniqueID, int> myForceMap;
294  std::map<makVrv::DtUniqueID, DtTasksAndSets> myTaskSetInformation;
295  std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
296 
297  typedef std::map<int, std::set<DtUUID> > PendingNameGroupRequests;
298  typedef std::map<DtUUID, std::pair<makVrv::DtUniqueID, int> > PendingRequests;
299 
302 
305 
306  typedef std::map<DtUUID, bool> RequestingNames;
308 
310 
315 
317 
318  std::map<DtString, DtString> myDiGuyAnimations;
319 
320  };
321 
322 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Definition: vrfTaskSetManager.h:40
std::map< int, std::vector< DtSetMessageType > > DtSetMap
Definition: vrfTaskSetManager.h:90
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
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:181
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::vector< DtString > mySupportedGestures
Definition: vrfTaskSetManager.h:71
std::map< DtUUID, bool > RequestingNames
Definition: vrfTaskSetManager.h:306
AvailableSupportingTasks myAvailableSupportingTasks
Definition: vrfTaskSetManager.h:59
makVrv::DtDe & myDe
Definition: vrfTaskSetManager.h:316
DtTasksAndSets(const DtTasksAndSets &orig)
Definition: vrfTaskSetManager.h:48
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:182
PendingRequests myPendingRequests
Definition: vrfTaskSetManager.h:303
std::map< int, bool > SingleSelectionMap
Definition: vrfTaskSetManager.h:291
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedTaskInformationChanged
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:178
std::map< makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations * > myDIGuyTaskSetCharacterInfo
Definition: vrfTaskSetManager.h:295
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:190
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
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:179
DtTasksAndSets()
Definition: vrfTaskSetManager.h:44
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:29
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:185
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
PendingNameGroupRequests myPendingNameGroupRequests
Definition: vrfTaskSetManager.h:300
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:313
Contains the DtDiGuyCharacterData class declaration.
std::map< DtString, DtString > myDiGuyAnimations
Definition: vrfTaskSetManager.h:318
int myPendingGroupRequest
Definition: vrfTaskSetManager.h:301
std::map< int, std::set< DtUUID > > PendingNameGroupRequests
Definition: vrfTaskSetManager.h:297
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:311
DtTaskMap myTaskMenuMap
Definition: vrfTaskSetManager.h:312
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:184
std::vector< DtSimTaskMessageType > SupportingTasks
Definition: vrfTaskSetManager.h:57
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedSetInformationChanged
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:180
std::vector< DtString > mySupportedAppearances
Definition: vrfTaskSetManager.h:68
Contains makVrv::DtVrlinkSimulatedEntityState 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:314
std::map< DtUUID, std::pair< makVrv::DtUniqueID, int > > PendingRequests
Definition: vrfTaskSetManager.h:298
std::map< makVrv::DtUniqueID, int > myForceMap
Definition: vrfTaskSetManager.h:293
PendingRequests myPendingDIGuyRequests
Definition: vrfTaskSetManager.h:304
Contains makVrv::DtUniqueID type.
std::vector< DtString > mySupportedHandItems
Definition: vrfTaskSetManager.h:70
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
std::vector< makVrv::DtSimEntry * > SimEntries
Definition: vrfTaskSetManager.h:91
RequestingNames myRequestingNames
Definition: vrfTaskSetManager.h:307
std::map< int, std::vector< DtSimTaskMessageType > > DtTaskMap
Definition: vrfTaskSetManager.h:89
boost::signals2::signal< void()> signal_taskSetInformationCleared
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:186
This class will maintain a list of all available task and sets for a particular object in the scenari...
Definition: vrfTaskSetManager.h:85
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:183
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
std::map< makVrv::DtUniqueID, DtTasksAndSets > myTaskSetInformation
Definition: vrfTaskSetManager.h:294

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)