VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfSyncMatrixManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
15 #include <vrfutil/rwUUID.h>
16 #include <vrvCore/DtEntityState.h>
17 #include <vrvCore/DtStateView.h>
22 
26 
27 #include <vrvUtil/signalslib.h>
28 
29 #include <vlpi/simulationAddress.h>
30 #endif
31 #include <boost/signals2.hpp>
32 
33 #include <QtCore/QObject>
34 
35 namespace makVrv
36 {
37  class DtDe;
38 }
39 
40 class QWidget;
41 class DtSimMessage;
42 class DtSimulationAddress;
43 class DtVrfObjectMessage;
44 
45 namespace makVrf
46 {
47  class DtSyncMatrixDialogInterface;
48  class DtVrfBackendState;
49 
51  {
52  Q_OBJECT
53 
54  public:
55 
57  {
58  SyncMatrixWithPhases(const DtString name = ""):myName(name) {}
59  SyncMatrixWithPhases(const SyncMatrixWithPhases& orig):myName(orig.myName), myPhases(orig.myPhases), myPlansStatus(orig.myPlansStatus),mySimulationAddress(orig.mySimulationAddress) {}
60 
66  DtSimulationAddress mySimulationAddress;
67  };
68 
69  typedef std::map<DtUUID, SyncMatrixWithPhases> SyncMatrices;
70 
71  typedef std::set<makVrv::DtUniqueID> ObjectsMonitoring;
72 
75 
77  virtual ~DtVrfSyncMatrixManager();
78 
80  static DtVrfSyncMatrixManager& instance(makVrv::DtDe& de);
81 
83  virtual void show(QWidget* parent, const DtUUID& forUUID = DtUUID::nullUUID());
84 
85  virtual void requestSyncMatrices();
86 
87  virtual const SyncMatrices& syncMatrices() const;
88 
89  virtual void setSelectedSyncMatrix(const DtUUID& uuid);
90  virtual const DtUUID& selectedSyncMatrix();
91 
92  virtual void requestNewSyncMatrix(const QString& name ="");
93  virtual void requestSyncMatrixRename(const DtUUID& uuid, const QString& name);
94  virtual void requestSyncMatrixRemove(const DtUUID& uuid);
95 
96  virtual void requestSyncMatrixPhaseRemove(const DtUUID& uuid, const QString& phaseName);
97  virtual const DtRwSyncMatrixPlan* syncMatrixPlan(const DtUUID& syncMatrixUUUD, const DtUUID& uuid, const QString& phaseName) const;
98 
99  virtual void requestNewSyncMatrixObjects(const DtUUID& syncMatrix, const std::vector<DtUUID>& objects);
100  virtual void requestSyncMatrixObjectRemove(const DtUUID& syncMatrix, const DtUUID& object);
101 
102  virtual void requestSyncMatrixPlan(const DtUUID& syncMatrix, const DtUUID& object,
103  const QString& phaseName);
104 
105  virtual void removeSyncMatrixPlan(const DtUUID& syncMatrix, const DtUUID& object,
106  const QString& phaseName);
107 
108  virtual void activateSyncMatrixPlan(const DtUUID& syncMatrix, const DtUUID& object,
109  const QString& phaseName, bool activate);
110 
111  virtual void setSyncMatrixPhaseInfo(const DtUUID& syncMatrix,
112  const QString& currentName, int phaseIndex,
113  const QString& requestedName, bool endConditionSpecified,
114  const DtSimCondExpr* endCondition = NULL);
115 
116  virtual bool objectExistsInMatrix(const SyncMatrixWithPhases& syncMatrix, const DtUUID& object) const;
117  virtual bool objectExistsInMatrix(const DtUUID& syncMatrix, const DtUUID& object) const;
118 
120  virtual bool objectExistsInMatrix(const DtUUID& object) const;
121 
123  virtual QString findFirstSyncMatrixFor(const DtUUID&) const;
124 
125  virtual void copyPlanToClipboard(const DtUUID& syncMatrix, const DtUUID& object, const QString& phaseName);
126  virtual void copyPlanFromClipboard(const DtUUID& syncMatrix, const DtUUID& object, const QString& phaseName);
127 
128  boost::signals2::signal<void()> signal_clearSyncMatrices;
129  boost::signals2::signal<void()> signal_syncMatrixManagerChanged;
130  boost::signals2::signal<void(const DtUUID&, const DtString&)> signal_receivedRenameSyncMatrix;
131  boost::signals2::signal<void(const DtUUID&)> signal_receivedRemoveSyncMatrix;
132  boost::signals2::signal<void(bool)> signal_enableAddAndRenameSyncMatrix;
133  boost::signals2::signal<void(const DtUUID&)> signal_syncMatrixPhaseUpdate;
134  boost::signals2::signal<void(const DtUUID&)> signal_receivedSyncMatrixInfo;
135  boost::signals2::signal<void(const DtUUID&)> signal_receivedSyncMatrixObjectsList;
136  boost::signals2::signal<void(const DtUUID&, const DtString&, const DtString&, bool)> signal_receivedMoveToPhase;
137  boost::signals2::signal<void(const DtUUID&, const DtString&, const DtRwSyncMatrixPlan*, bool, bool)> signal_receivedPlanStatus;
138 
139  boost::signals2::signal<void(const DtUUID&, const DtUUID&)> signal_syncMatrixObjectUpdated;
140  boost::signals2::signal<void(const DtUUID&, const DtString&)> signal_syncMatrixObjectRenamed;
141 
142  protected:
143  virtual DtSyncMatrixDialogInterface* createSyncMatrixDialog(QWidget* parent);
144 
145  virtual void sessionStatusChanged(bool status);
146  virtual void backendUpdated(int flags);
147 
148  virtual void clearAllSyncMatrices();
149 
150  virtual makVrv::DtUniqueID registerToObjectUpdate(makVrv::DtUniqueID id);
151  virtual void unregisterToObjectUpdate(makVrv::DtUniqueID id);
152 
153  virtual void registerListToObjectUpdates(const DtRwSyncMatrixObjectList& objectList);
154  virtual void registerToObjectUpdateInHierarchy(makVrv::DtUniqueID id);
155  virtual void resetObjectUpdateMonitors();
156 
157  virtual void processSyncMatrixListResponse(DtSimMessage* msg);
158  virtual void processSyncMatrixRenameResponse(DtSimMessage* msg);
159  virtual void processSyncMatrixRemoveResponse(DtSimMessage* msg);
160  virtual void processSyncMatrixRemovePhaseResponse(DtSimMessage* msg);
161  virtual void processSyncMatrixInfoResponse(DtSimMessage* msg);
162  virtual void processSyncMatrixObjectsListResponse(DtSimMessage* msg);
163  virtual void processSyncMatrixPhaseInfoResponse(DtSimMessage* msg);
164  virtual void processSyncMatrixCurrentPhase(DtSimMessage* msg);
165  virtual void processSyncMatrixPlansStatus(DtSimMessage* msg);
166  virtual void receivedPlanCallbackForCopy(DtSimMessage* msg);
167 
168  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
169  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
170  virtual void slot_onObjectNameChanged(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s, const std::string& newName);
171 
172  virtual void backendRemoved(const DtVrfBackendState&);
173  virtual void hierarchyItemsModified(const makVrv::DtElementAttributeManager::EntryAttributesList& l);
174  virtual bool isInterestedIn(makVrv::DtUniqueID id, makVrv::DtUniqueID& actualId) const;
175 
176  protected:
177 
184  boost::signals2::connection myHierarchyModifiedConnection;
185 
189  };
190 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Definition: vrfBackendState.h:69
class DtRwSyncMatrixPlan:
Definition: rwSyncMatrixPlan.h:23
SyncMatrixWithPhases(const SyncMatrixWithPhases &orig)
Definition: vrfSyncMatrixManager.h:59
DtString myName
Definition: vrfSyncMatrixManager.h:61
ObjectsMonitoring myObjectsMonitoring
Definition: vrfSyncMatrixManager.h:183
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(const DtUUID &, const DtString &, const DtRwSyncMatrixPlan *, bool, bool)> signal_receivedPlanStatus
Definition: vrfSyncMatrixManager.h:137
boost::signals2::signal< void(const DtUUID &, const DtUUID &)> signal_syncMatrixObjectUpdated
Definition: vrfSyncMatrixManager.h:139
boost::signals2::signal< void()> signal_syncMatrixManagerChanged
Definition: vrfSyncMatrixManager.h:129
Definition: vrfSyncMatrixManager.h:56
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
DtUUID mySelectedSyncMatrix
Definition: vrfSyncMatrixManager.h:182
boost::signals2::signal< void(const DtUUID &, const DtString &, const DtString &, bool)> signal_receivedMoveToPhase
Definition: vrfSyncMatrixManager.h:136
boost::signals2::signal< void(const DtUUID &, const DtString &)> signal_syncMatrixObjectRenamed
Definition: vrfSyncMatrixManager.h:140
makVrv::DtDe & myDe
Definition: vrfSyncMatrixManager.h:178
Contains makVrv::DtStateView class.
DtUUID myWaitingForCopyObject
Definition: vrfSyncMatrixManager.h:186
boost::signals2::signal< void(const DtUUID &, const DtString &)> signal_receivedRenameSyncMatrix
Definition: vrfSyncMatrixManager.h:130
SyncMatrixWithPhases(const DtString name="")
Definition: vrfSyncMatrixManager.h:58
boost::signals2::signal< void(const DtUUID &)> signal_syncMatrixPhaseUpdate
Definition: vrfSyncMatrixManager.h:133
QString myWaitingForCopyPhase
Definition: vrfSyncMatrixManager.h:188
Contains the DtUUID class declaration.
boost::signals2::signal< void()> signal_clearSyncMatrices
Definition: vrfSyncMatrixManager.h:128
Definition: vrfSyncMatrixManager.h:50
DtRwSyncMatrixObjectList myObjects
Definition: vrfSyncMatrixManager.h:63
std::set< makVrv::DtUniqueID > ObjectsMonitoring
Definition: vrfSyncMatrixManager.h:71
boost::signals2::signal< void(bool)> signal_enableAddAndRenameSyncMatrix
Definition: vrfSyncMatrixManager.h:132
static const DtUUID & nullUUID()
DtUUID myWaitingForCopyMatrix
Definition: vrfSyncMatrixManager.h:187
boost::signals2::connection myHierarchyModifiedConnection
Definition: vrfSyncMatrixManager.h:184
Contains makVrv::DtVirtualBaseClass class.
DtRwSyncMatrixPhaseList myPhases
Definition: vrfSyncMatrixManager.h:64
File: simMsg.h.
Definition: simMessage.h:35
boost::signals2::signal< void(const DtUUID &)> signal_receivedRemoveSyncMatrix
Definition: vrfSyncMatrixManager.h:131
DtString myCurrentPhase
Definition: vrfSyncMatrixManager.h:62
DtSimulationAddress mySimulationAddress
Definition: vrfSyncMatrixManager.h:66
This list stores entries of DtRwSyncMatrixPlan.
Definition: rwSyncMatrixObjectList.h:17
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:44
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtVrlinkSimulatedEntityState class.
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
std::map< DtUUID, SyncMatrixWithPhases > SyncMatrices
Definition: vrfSyncMatrixManager.h:69
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:53
Definition: rwSyncMatrixPhaseList.h:17
Base class to provide boost signal/slot management.
Definition: syncMatrixDialogInterface.h:31
boost::signals2::signal< void(const DtUUID &)> signal_receivedSyncMatrixObjectsList
Definition: vrfSyncMatrixManager.h:135
Contains the DtElementAttributeManager class declaration.
boost::signals2::signal< void(const DtUUID &)> signal_receivedSyncMatrixInfo
Definition: vrfSyncMatrixManager.h:134
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
DtRwSyncMatrixPlanList myPlansStatus
Definition: vrfSyncMatrixManager.h:65
makVrv::DtSignalConnectionManager myConnections
Definition: vrfSyncMatrixManager.h:181
SyncMatrices mySyncMatrices
Definition: vrfSyncMatrixManager.h:180
This list stores entries of DtRwSyncMatrixPlan.
Definition: rwSyncMatrixPlanList.h:17
DtSyncMatrixDialogInterface * mySyncMatrixDialog
Definition: vrfSyncMatrixManager.h:179

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)