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>
15 
18 
20 #include <vrvCore/DtUniqueID.h>
22 
23 namespace makVrv
24 {
25  class DtDe;
26 }
27 
28 class DtSimMessage;
31 
32 namespace makVrf
33 {
34 
36  {
37  public:
38 
40  {
41  }
42 
44  : mySupportedTasks( orig.mySupportedTasks )
45  , mySupportedSets( orig.mySupportedSets )
46  {
47  }
48 
49  std::vector<DtSimTaskMessageType> mySupportedTasks;
50  std::vector<DtSetMessageType> mySupportedSets;
51 
52  typedef std::vector<DtSimTaskMessageType> SupportingTasks;
53  typedef std::map<int,SupportingTasks> AvailableSupportingTasks;
55 
56  };
57 
58 
61  {
62  public:
63  std::vector<DtString> mySupportedAppearances;
65  std::vector<DtString> mySupportedHandItems;
66  std::vector<DtString> mySupportedGestures;
68  std::map<DtString, std::vector<DtString> > mySupportedHeads;
69  };
70 
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::set<makVrv::DtUniqueID> SimEntries;
87 
88  public:
89 
91  virtual ~DtVrfTaskSetManager() override;
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 bool supportsOneClick(int iAction) const;
107 
109  virtual void requestInformationFor( const DtUUID&, makVrv::DtUniqueID id );
110  virtual void requestInformationFor( const std::vector<std::pair<DtUUID, makVrv::DtUniqueID> >& names );
111  virtual void requestInformationFor( makVrv::DtUniqueID id );
112 
114  virtual void updateAvailableTaskSetInformation( const std::set<makVrv::DtUniqueID>& );
115  virtual void updateAvailableTaskSetInformation( const DtUUID& );
116  virtual void updateAvailableTaskSetInformation( makVrv::DtElementID id );
117 
119  virtual void clearInformationFor( makVrv::DtUniqueID id, bool request = false );
120  virtual void clearInformationFor( const std::vector<makVrv::DtUniqueID>& ids, bool request = false );
121 
123  virtual bool hasTaskSetInformationFor( const makVrv::DtUniqueID& ) const;
124 
127  virtual bool hasTaskSetInformationFor( const DtUUID& ) const;
128 
130  virtual std::string diGuyAnimationForKeyword( const std::string& kw ) const;
131 
133  virtual DtSetMessageType setMessageType( int ) const;
134 
136  virtual DtSimTaskMessageType taskMessageType( int ) const;
137 
139  virtual std::vector<DtString> taskGroupsForTask( const DtEntityType& et, const DtSimTaskMessageType& taskType ) const;
140 
141  virtual void setSupportedTasks( const makVrv::DtUniqueID&, const std::vector<DtSimTaskMessageType>&, bool signal = true );
142  virtual void setSupportedSets( const makVrv::DtUniqueID&, const std::vector<DtSetMessageType>&, bool signal = true );
143  virtual void setSupportingTasks( const makVrv::DtUniqueID&, const std::map<int, std::vector<DtSimTaskMessageType> >&, bool signal = true );
144 
145  virtual std::vector<DtSimTaskMessageType> availableTasks( const makVrv::DtUniqueID& ) const;
146  virtual std::vector<DtSetMessageType> availableSets( const makVrv::DtUniqueID& ) const;
147  virtual std::vector<DtSimTaskMessageType> availableSupportingTasks( const makVrv::DtUniqueID&, int type ) const;
148  virtual DtTasksAndSets::AvailableSupportingTasks availableSupportingTasks( const makVrv::DtUniqueID& ) const;
149 
150  virtual void availableTasks( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
151  bool noTaskSetValueMeansAll = true );
152  virtual void availableTasks( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
153  bool noTaskSetValueMeansAll = true );
154  virtual void availableSets( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
155  bool noTaskSetValueMeansAll = true );
156  virtual void availableSets( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
157  bool noTaskSetValueMeansAll = true );
158  virtual void available( const makVrv::DtSelectionManager::IdSet&, std::set<int>& available,
159  bool noTaskSetValueMeansAll = true );
160  virtual void available( const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available,
161  bool noTaskSetValueMeansAll = true );
162  virtual std::vector<int> supportedMenuTasks() const;
163  virtual std::vector<int> supportedMenuSets() const;
164 
167  virtual int lookupTask( const DtSimTaskMessageType& type ) const;
168 
171  virtual int lookupSet( const DtSetMessageType& type ) const;
172 
175  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
176  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportingTaskInformationChanged;
177  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
178  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
179  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
180  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHandItemInformationChanged;
181  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyGestureInformationChanged;
182  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyHeadInformationChanged;
183  boost::signals2::signal<void ()> signal_taskSetInformationCleared;
185 
187  boost::signals2::signal<void ()> signal_allPendingRequestsResolved;
188 
190  virtual bool hasPendingRequests() const;
191 
193  virtual bool hasPendingRequest( makVrv::DtUniqueID ) const;
194 
196  virtual void clearInformationForForce( int );
197 
199  virtual bool isAvailableTaskMenuItem( int ) const;
200  virtual bool isAvailableVrfTaskItem( const DtSimTaskMessageType& ) const;
201 
203  virtual bool isAvailableSetMenuItem( int ) const;
204  virtual bool isAvailableVrfSetItem( const DtSetMessageType& ) const;
205 
206  virtual bool hasDIGuyInformationFor( const makVrv::DtUniqueID& ) const;
207  virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor( const makVrv::DtUniqueID& );
208 
209  virtual void setDIGuyAppearances( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
210  virtual void setDIGuyAnimations( const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true );
211  virtual void setDIGuyHandItems( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
212  virtual void setDIGuyGestures( const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true );
213  virtual void setDIGuyHeads( const makVrv::DtUniqueID&, const DtString& appearance, const std::vector<DtString>&, bool signal = true );
214 
216  virtual void clearAllInformation();
217 
218  virtual DtTasksAndSets* informationFor( const makVrv::DtUniqueID& );
219 
221  virtual void addAvailableSet( int menuItem, const DtSetMessageType& setType );
222  virtual void addAvailableTask( int menuItem, const DtSimTaskMessageType& taskType );
223 
225  virtual void addAvailableSetForSingleSelection( int menuItem, const DtSetMessageType& setType );
226 
228  virtual void addAvailableTaskForSingleSelection( int menuItem, const DtSimTaskMessageType& taskType );
229 
231  virtual void setSetIsSingleSelection( int, bool );
232  virtual bool setIsSingleSelection( int ) const;
233 
235  virtual void setTaskIsSingleSelection( int, bool );
236  virtual bool taskIsSingleSelection( int ) const;
237 
239  virtual void removeAvailableSet( int menuItem, const DtSetMessageType& setType );
240  virtual void removeAvailableTask( int menuItem, const DtSimTaskMessageType& taskType );
241 
242  virtual void requestDIGuyAppearancesAndAnimations( const DtUUID& );
243  virtual void requestDIGuyAppearancesAndAnimations( const std::vector<DtUUID>& );
244 
246  virtual int nextAvailableId() const;
247 
249  virtual bool isAvailableTask( makVrv::DtUniqueID id, DtSimTaskMessageType ) const;
250 
252  virtual bool isAvailableSet( makVrv::DtUniqueID id, DtSetMessageType ) const;
253 
254  protected:
255 
256  virtual bool processDiGuyAppearancesAndAnimationsLocally(const std::vector<DtUUID>& names);
257  virtual void processDiGuyResponse(const DtIfDiGuyAppearAndAnimationsResponse& msg);
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( DtSimObjectReference );
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:35
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:68
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:178
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:66
std::map< DtUUID, bool > RequestingNames
Definition: vrfTaskSetManager.h:306
AvailableSupportingTasks myAvailableSupportingTasks
Definition: vrfTaskSetManager.h:54
makVrv::DtDe & myDe
Definition: vrfTaskSetManager.h:316
DtTasksAndSets(const DtTasksAndSets &orig)
Definition: vrfTaskSetManager.h:43
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:179
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:175
std::map< makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations * > myDIGuyTaskSetCharacterInfo
Definition: vrfTaskSetManager.h:295
void slot_postInitialize(makVrv::DtDe &de)
Contains makVrv:DtSelectionManager class.
boost::signals2::signal< void()> signal_allPendingRequestsResolved
Signal sent when all pending task/set requests are resolved.
Definition: vrfTaskSetManager.h:187
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:176
DtTasksAndSets()
Definition: vrfTaskSetManager.h:39
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:182
#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:50
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.
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:181
std::vector< DtSimTaskMessageType > SupportingTasks
Definition: vrfTaskSetManager.h:52
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:177
std::vector< DtString > mySupportedAppearances
Definition: vrfTaskSetManager.h:63
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:53
This message contains lists of the DIGuy appearances and taskable animations that a particular entity...
Definition: ifDiGuyAppearAndAnimationsResponse.h:20
AlternateNamesList mySupportedTaskableAnimations
Definition: vrfTaskSetManager.h:64
DtIfCapableTaskAndSetResponse.
Definition: ifCapableTaskAndSetResponse.h:25
This class contains sets of possible options for each DI-Guy character type.
Definition: vrfTaskSetManager.h:60
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::vector< DtSimTaskMessageType > mySupportedTasks
Definition: vrfTaskSetManager.h:49
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:65
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:76
RequestingNames myRequestingNames
Definition: vrfTaskSetManager.h:307
std::map< int, std::vector< DtSimTaskMessageType > > DtTaskMap
Definition: vrfTaskSetManager.h:84
boost::signals2::signal< void()> signal_taskSetInformationCleared
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:183
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
Signals sent when task/set information about a particular object has been received/changed.
Definition: vrfTaskSetManager.h:180
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
std::map< makVrv::DtUniqueID, DtTasksAndSets > myTaskSetInformation
Definition: vrfTaskSetManager.h:294
std::set< makVrv::DtUniqueID > SimEntries
Definition: vrfTaskSetManager.h:86

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)