VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
manualDistributionWidget.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2023 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
13 #include <QtWidgets/QDialog>
15 #include <vrvCore/DtEntityState.h>
16 #include <vrvCore/DtForceManager.h>
17 #include <QtGui/QPixmap>
18 #include <vrfutil/rwUUID.h>
19 #endif
20 
21 #include <vrvCore/DtSimEntry.h>
22 #include <vrvCore/DtStateView.h>
23 #include <vlpi/simulationAddress.h>
24 
25 class DtAddressMap;
26 class DtList;
27 class DtVrfFileParser;
28 class QTreeWidget;
29 class QPushButton;
30 class QHBoxLayout;
32 class QComboBox;
33 class QTreeWidgetItem;
34 class QLabel;
35 class QCheckBox;
36 
37 namespace makVrv
38 {
39  class DtDe;
40 }
41 
42 namespace makVrf
43 {
44  class DtVrfBackendState;
45  class DtObjectListViewItem;
46  class DtLoadBalancingExtensionWidget;
47  class DtLoadBalancerSelectionWidget;
48  class DtSearchWidget;
49 
53  {
54 
55  Q_OBJECT
56  Q_PROPERTY(QColor backendColor1 MEMBER myBackendColor1 USER true)
57  Q_PROPERTY(QColor backendColor2 MEMBER myBackendColor2 USER true)
58  Q_PROPERTY(QColor backendColor3 MEMBER myBackendColor3 USER true)
59  Q_PROPERTY(QColor backendColor4 MEMBER myBackendColor4 USER true)
60  Q_PROPERTY(QColor backendColor5 MEMBER myBackendColor5 USER true)
61  Q_PROPERTY(QColor backendColor6 MEMBER myBackendColor6 USER true)
62  Q_PROPERTY(QColor backendColor7 MEMBER myBackendColor7 USER true)
63  Q_PROPERTY(QColor backendColor8 MEMBER myBackendColor8 USER true)
64  Q_PROPERTY(QColor backendColor9 MEMBER myBackendColor9 USER true)
65 
66  public:
67 
69  DtManualDistributionWidget(makVrv::DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& flags = Qt::Tool);
70 
72  virtual ~DtManualDistributionWidget();
73 
74  virtual bool init(DtAddressMap* map, const DtVrfFileParser* parser, const DtList* backends);
75 
76  virtual void setBackendColors(const QVariantList&);
77  virtual QVariantList getBackendColors() const;
78 
79  protected slots:
80  virtual void applyLoadBalance();
81  virtual void chooseBackend(QTreeWidgetItem*, QMouseEvent*, int);
82  virtual void revertBackends();
83  virtual void executeTextFilter();
84  virtual void changeObjectView();
85 
86  protected:
87  virtual makVrv::DtVrlinkSimulatedBaseState* stateFromBindings(const DtRwVariableBindings&) const;
88  virtual void loadBalancingValidityChanged();
89  virtual bool itemHasSubordinates(QTreeWidgetItem*) const;
90 
91  virtual void initConnections();
92  virtual void initObjectsList(DtAddressMap* map, const DtVrfFileParser* parser);
93 
94  virtual void slot_backendDiscovered(const DtVrfBackendState&);
95  virtual void slot_backendRemoved(const DtVrfBackendState&);
96  virtual QVariant entityType(const DtObjectListViewItem*) const;
97  virtual bool sortByEntityType(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
98  virtual bool sortByForceType(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
99  virtual bool simulationAddressSort(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
100  virtual QVariant parentName(const DtObjectListViewItem*) const;
101  virtual void setItemToAddress(DtObjectListViewItem* item, const QString& address);
102  virtual void setAllChildrenToAddress(DtObjectListViewItem* item, const QString& address);
103 
104  virtual void accept() override;
105  virtual void reject() override;
106 
107  virtual void initBackendLoads();
108  virtual void updateBackendLoads();
109  virtual void setBackendForSubordinatesOf(const DtUUID&, const QString& address);
110  virtual void initControls();
111  virtual void initTrees();
112  virtual const QPixmap& colorPixmapForAddress(const DtSimulationAddress&);
113  virtual void initTreeAsFlatList();
114  virtual void initTreeAsHierarchy();
115  virtual void clearForceNodes();
116  virtual DtObjectListViewItem* createForceNode(int force);
117 
118  virtual void reworkForceManager(const DtVrfFileParser*);
119  virtual void restoreForceManager();
120  virtual void processForceHostilityFile(const DtFilename&);
121 
122  public:
123  QTreeWidget* myObjects;
124  QHBoxLayout* myButtonLayout;
125  QPushButton* myOKButton;
126  QPushButton* myCancelButton;
127 
128  QTreeWidget* myBackendLoad;
129  QLabel* myBackendLoadLabel;
130 
131  DtLoadBalancerSelectionWidget* myLoadBalancerSelectionWidget;
132  QHBoxLayout* myLoadBalancingLayout;
133  QPushButton* myApplyLoadBalancingOption;
134  QPushButton* myRevertLoadBalancingOption;
135  DtSearchWidget* mySearchWidget;
136  QCheckBox* myShowAsHierarchy = nullptr;
137  QHBoxLayout* mySearchLayout = nullptr;
138 
139  protected:
140  makVrv::DtDe& myDe;
141  makVrv::DtSignalConnectionManager myConnectionManager;
142  int myObjectViewId = 0;
143  const DtVrfFileParser* myParser = nullptr;
144  DtAddressMap* myObjectMap = nullptr;
145  QString myRightClickChosenBackend;
146  std::set<std::string> myInitialMappedBackends;
147  QColor myBackendColor1;
148  QColor myBackendColor2;
149  QColor myBackendColor3;
150  QColor myBackendColor4;
151  QColor myBackendColor5;
152  QColor myBackendColor6;
153  QColor myBackendColor7;
154  QColor myBackendColor8;
155  QColor myBackendColor9;
156 
158  {
161  : view(v), entry(e), item(i) {}
162 
164  makVrv::DtSimEntry* entry = nullptr;
165  DtObjectListViewItem* item = nullptr;
166  };
167 
168  typedef std::map<makVrv::DtUniqueID, ObjectStateData> ObjectStateDataMap;
171 
172  typedef std::map<DtUUID, ObjectStateData> ObjectStateDataMapByUUID;
174 
175  typedef std::map<DtSimulationAddress, QPixmap> ColorByAddress;
177 
178  QVariantList myBackendColors;
179 
180  struct ForceInfo
181  {
182  std::string myForceName;
186  };
187 
188  typedef std::map<int, ForceInfo> ForceInfoMap;
190  };
191 
193  {
194  public:
196 
197  virtual DtManualDistributionWidget* create(QWidget* parent = 0, const Qt::WindowFlags& flags = Qt::Tool);
198 
199  protected:
201  };
202 }
Definition: manualDistributionWidget.h:180
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Definition: vrfBackendState.h:69
Widget for allowing the user to select which entities are placed onto which back-end.
Definition: manualDistributionWidget.h:52
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
Widget to select load balancing schemes give the selection mode.
Definition: loadBalancerSelectionWidget.h:36
Definition: manualDistributionWidget.h:157
makVrv::DtForceManager::RGBAColor myForcePrimaryColor
Definition: manualDistributionWidget.h:184
Definition: DtForceManager.h:44
Contains makVrv::DtStateView class.
ObjectStateDataMap myObjectStateData
Definition: manualDistributionWidget.h:169
A DtSimEntry is a container of DtSimState&#39;s and represents the total state of an simulation object...
Definition: DtSimEntry.h:27
Definition: manualDistributionWidget.h:192
Contains the DtUUID class declaration.
bool myIncludeInDialogs
Definition: manualDistributionWidget.h:185
ForceInfoMap myForceInfoMap
Definition: manualDistributionWidget.h:189
ObjectStateData()
Definition: manualDistributionWidget.h:159
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
std::map< DtSimulationAddress, QPixmap > ColorByAddress
Definition: manualDistributionWidget.h:175
Definition: addressMap.h:24
Contains makVrv::DtSimEntry class.
std::string myForceName
Definition: manualDistributionWidget.h:182
ObjectStateDataMapByUUID myObjectStateDataByUUID
Definition: manualDistributionWidget.h:173
QVariantList myBackendColors
Definition: manualDistributionWidget.h:178
Contains makVrv::DtVrlinkSimulatedEntityState class.
ColorByAddress myColorByAddress
Definition: manualDistributionWidget.h:176
makVrv::DtDe & myDe
Definition: manualDistributionWidget.h:200
Contains makVrv::DtForceManager class.
std::map< makVrv::DtUniqueID, ObjectStateData > ObjectStateDataMap
Definition: manualDistributionWidget.h:168
std::map< DtUUID, ObjectStateData > ObjectStateDataMapByUUID
Definition: manualDistributionWidget.h:172
ObjectStateDataMap myForceNodes
Definition: manualDistributionWidget.h:170
Base class to provide boost signal/slot management.
Definition: searchWidget.h:22
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
ObjectStateData(makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > *v, makVrv::DtSimEntry *e, DtObjectListViewItem *i)
Definition: manualDistributionWidget.h:160
std::map< int, ForceInfo > ForceInfoMap
Definition: manualDistributionWidget.h:188
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
Definition: vrfFileParser.h:30
This tree widget item can be used in any tree that wants to display an icon next to the name of an ob...
Definition: objectListViewItem.h:55
makVrv::DtForceManager::RGBAColor myForceColor
Definition: manualDistributionWidget.h:183

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)