VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
powerAndDeterminantDialog.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
12 #include <vlutil/vlString.h>
14 
15 #include <QtWidgets/QDialog>
16 
17 class QHBoxLayout;
18 class QVBoxLayout;
19 class QGridLayout;
20 class QPushButton;
21 class QLabel;
22 class QLineEdit;
23 class QListWidget;
24 class QRadioButton;
26 class QDoubleValidator;
28 
32 {
33  Q_OBJECT
34 
35 public:
36  DtDeterminant(makVrv::DtDe&, QWidget* parent, const DtPowerRangeDeterminant* = 0);
37  virtual ~DtDeterminant() override;
38 
39  virtual bool isValid() const = 0;
40  virtual void setLabel(const QString&) {};
41  virtual void setup(const DtString& power) {};
42  virtual DtPowerRangeDeterminant* determinant(const DtString& power) const = 0;
43 
44 signals:
45  void revalidate();
46 
47 public:
48  QVBoxLayout* myLayout;
49 
50 protected:
52  QDoubleValidator* myRangeValidator;
53 };
54 
56 {
57  Q_OBJECT
58 
59 public:
60  DtDirectDeterminant(makVrv::DtDe&, QWidget* parent, const DtPowerRangeDeterminant* = 0);
61  virtual ~DtDirectDeterminant() override;
62 
63  virtual bool isValid() const override;
64  virtual DtPowerRangeDeterminant* determinant(const DtString& power) const override;
65 
66 public:
67  QHBoxLayout* myDataLayout;
70 };
71 
73 {
74  Q_OBJECT
75 
76 public:
77  DtRangeListDeterminant(makVrv::DtDe&, QWidget* parent, const DtPowerRangeDeterminant* = 0);
78  virtual ~DtRangeListDeterminant() override;
79 
80  virtual bool isValid() const override;
81  virtual void setLabel(const QString&) override;
82  virtual void setup(const DtString& power) override;
83  virtual DtPowerRangeDeterminant* determinant(const DtString& power) const override;
84 
85 public:
86  QGridLayout* myDataLayout;
91  QDoubleValidator* myPowerValidator;
92 };
93 
95 {
96  Q_OBJECT
97 
98 public:
100  virtual ~DtRangeCoefficientDeterminant() override;
101  virtual DtPowerRangeDeterminant* determinant(const DtString& power) const override;
102  virtual void setup(const DtString& power) override;
103 };
104 
106 {
107  Q_OBJECT
108 
109 public:
110  DtEquivalentTNTDeterminant(makVrv::DtDe&, QWidget* parent, const DtPowerRangeDeterminant* = 0);
111  virtual ~DtEquivalentTNTDeterminant() override;
112 
113  virtual bool isValid() const override;
114  virtual DtPowerRangeDeterminant* determinant(const DtString& power) const override;
115 
116 public:
117  QHBoxLayout* myDataLayout;
120 };
121 
125 {
126  Q_OBJECT
127 
128 public:
129  DtPowerAndDeterminantDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = Qt::Tool);
130  virtual ~DtPowerAndDeterminantDialog() override;
131 
132  virtual void init(DtMunitionDetonationPowerEntry* = 0, const DtString& initialPower = "",
133  const DtString& initialDeterminant = "");
134 
135  virtual DtString selectedPower() const;
136  virtual DtString selectedDeterminant() const;
137 
139  virtual DtPowerRangeDeterminant* determinant() const;
140 
141 protected:
142  virtual void selectDeterminant(const DtString&);
143  virtual void selectDeterminantBasedOnCurrentPower();
144  virtual QString determinantsTitle(const DtString& det, const DtString& power) const;
145  virtual DtDeterminant* determinantFor(const DtString&) const;
146  virtual void createDirectDeterminant(const DtPowerRangeDeterminant* = 0);
147  virtual void createRangeListDeterminant(const DtPowerRangeDeterminant* = 0);
148  virtual void createRangeCoefficientDeterminant(const DtPowerRangeDeterminant* = 0);
149  virtual void createEquivalentTNTDeterminant(const DtPowerRangeDeterminant* = 0);
150 
151 protected slots:
152  virtual void powerTypeChanged();
153  virtual bool determinantTypeChanged();
154  virtual void updateOKButton();
155 
156 public:
157  QVBoxLayout* myMainLayout;
158  QHBoxLayout* myButtonLayout;
161 
163  QListWidget* myPowers;
164 
167 
170 
171  typedef std::map<DtString, QRadioButton*> DeterminantsButtons;
173 
174  typedef std::map<DtString, DtDeterminant*> Determinants;
176 
177 protected:
181  std::map<DtString, std::map<DtString, QString> > myDeterminantTitles;
182 };
183 
186 {
187 public:
190 
192  virtual ~DtPowerAndDeterminantDialogCreator() override;
193 
196 
198  static void registerInstance(makVrv::DtDe&, DtPowerAndDeterminantDialogCreator*);
199 
201  virtual DtPowerAndDeterminantDialog* create(QWidget* parent);
202 
203 protected:
205 };
QLabel * myLargestPowerLabel
Definition: powerAndDeterminantDialog.h:89
Definition: powerAndDeterminantDialog.h:72
QLineEdit * mySmallestRange
Definition: powerAndDeterminantDialog.h:88
std::map< DtString, DtDeterminant * > Determinants
Definition: powerAndDeterminantDialog.h:174
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: powerAndDeterminantDialog.h:94
std::map< DtString, QRadioButton * > DeterminantsButtons
Definition: powerAndDeterminantDialog.h:171
QHBoxLayout * myDataLayout
Definition: powerAndDeterminantDialog.h:117
QWidget * myDeterminantsCanvas
Definition: powerAndDeterminantDialog.h:165
virtual void setup(const DtString &power) override
makVrv::DtDe & myDe
Definition: powerAndDeterminantDialog.h:51
QLineEdit * myEquivalentTNTLineEdit
Definition: powerAndDeterminantDialog.h:119
QDoubleValidator * myPowerValidator
Definition: powerAndDeterminantDialog.h:91
The main dialog that allows the user to pick a power and determinant. Call the rangeDeterminant() met...
Definition: powerAndDeterminantDialog.h:124
QVBoxLayout * myMainLayout
Definition: powerAndDeterminantDialog.h:157
DtDeterminant * myCurrentDeterminant
Definition: powerAndDeterminantDialog.h:180
Creator for the dialog.
Definition: powerAndDeterminantDialog.h:185
DeterminantsButtons myDeterminantsButtons
Definition: powerAndDeterminantDialog.h:172
QListWidget * myPowers
Definition: powerAndDeterminantDialog.h:163
virtual bool isValid() const =0
QLabel * mySmallestRangeLabel
Definition: powerAndDeterminantDialog.h:87
makVrv::DtDe & myDe
Definition: powerAndDeterminantDialog.h:204
A readable/writable object that indicates the power of a detonation of a given type, potentially at different ranges from the point of impact.
Definition: powerRangeDeterminant.h:17
QLabel * myPowersLabel
Definition: powerAndDeterminantDialog.h:162
QGridLayout * myDataLayout
Definition: powerAndDeterminantDialog.h:86
QHBoxLayout * myDataLayout
Definition: powerAndDeterminantDialog.h:67
Contains makVrv::DtVirtualBaseClass class.
QDoubleValidator * myRangeValidator
Definition: powerAndDeterminantDialog.h:52
QPushButton * myCancelButton
Definition: powerAndDeterminantDialog.h:160
QLineEdit * myLargestPower
Definition: powerAndDeterminantDialog.h:90
virtual DtPowerRangeDeterminant * determinant(const DtString &power) const =0
These classes will determine the layout of the data entry for the determinant and whether or not it i...
Definition: powerAndDeterminantDialog.h:31
QLabel * myDirectLabel
Definition: powerAndDeterminantDialog.h:68
QLabel * myEquivalentTNTLabel
Definition: powerAndDeterminantDialog.h:118
virtual void setLabel(const QString &)
Definition: powerAndDeterminantDialog.h:40
DtMunitionDetonationPowerEntry.
Definition: munitionDetonationPowerEntry.h:19
QHBoxLayout * myButtonLayout
Definition: powerAndDeterminantDialog.h:158
Definition: powerAndDeterminantDialog.h:55
Determinants myDeterminants
Definition: powerAndDeterminantDialog.h:175
QWidget * myDeterminantValueCanvas
Definition: powerAndDeterminantDialog.h:168
QVBoxLayout * myLayout
Definition: powerAndDeterminantDialog.h:48
DtMunitionDetonationPowerEntry * myPowerEntry
Definition: powerAndDeterminantDialog.h:179
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
QVBoxLayout * myDeterminantValueCanvasLayout
Definition: powerAndDeterminantDialog.h:169
virtual void setup(const DtString &power)
Definition: powerAndDeterminantDialog.h:41
virtual DtPowerRangeDeterminant * determinant(const DtString &power) const override
QLineEdit * myDirectLineEdit
Definition: powerAndDeterminantDialog.h:69
QPushButton * myOKButton
Definition: powerAndDeterminantDialog.h:159
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
Definition: powerAndDeterminantDialog.h:105
makVrv::DtDe & myDe
Definition: powerAndDeterminantDialog.h:178
std::map< DtString, std::map< DtString, QString > > myDeterminantTitles
Definition: powerAndDeterminantDialog.h:181
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
QVBoxLayout * myDeterminantsCanvasLayout
Definition: powerAndDeterminantDialog.h:166

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)