VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
uiDetonationParametersConfigurationWidget.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2018 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #pragma once
7 
11 
12 #include <QtGui/QColor>
13 #include <QtCore/QPointF>
14 #include <QtCore/QVector>
15 
16 class DtPlotPicker;
17 class QwtPlot;
18 class QwtPlotCurve;
19 class QFrame;
20 class QTableWidget;
21 class QPushButton;
22 class QVBoxLayout;
23 class QHBoxLayout;
24 class QToolButton;
25 class DtRangeProbEntry;
26 class DtEntityType;
27 class QDoubleValidator;
28 class DtRwReal;
29 class QLabel;
30 class QComboBox;
31 class QLineEdit;
32 class QListWidget;
41 class QListWidgetItem;
42 
44 {
45  Q_OBJECT
46 public:
47 
50 
53 
55 
56  virtual void setEnabled(bool) override;
57 
58  static QString axisTitle(const DtString&);
59 
60 protected:
61  virtual void detonationPowerChanged();
62  virtual void createControls(QWidget* parent) override;
63  virtual void setFromParameters(const std::vector<DtReaderWriter*>& parentRw) override;
64  virtual void setupFromPowerEntry(DtMunitionDetonationPowerEntry*);
65  virtual void setupPowerDeterminant(DtPowerRangeDeterminant*);
66 
67  virtual void setupPowerDeterminant(DtPowerDirectDeterminant*);
68  virtual void setupGraphDataFor(DtPowerDirectDeterminant*);
69  virtual void updateDataFor(DtPowerDirectDeterminant*, QLineEdit*);
70 
71  virtual void setupPowerDeterminant(DtPowerRangeCoefficientsDeterminant*);
72  virtual void setupGraphDataFor(DtPowerRangeCoefficientsDeterminant*);
73  virtual void removeSelectedColumn(DtPowerRangeCoefficientsDeterminant*);
74  virtual void addRangeTo(DtPowerRangeCoefficientsDeterminant*);
75  virtual void updateDataFor(DtPowerRangeCoefficientsDeterminant*, QLineEdit*);
76 
77  virtual void setupPowerDeterminant(DtPowerRangeEquivalentTntDeterminant*);
78  virtual void setupGraphDataFor(DtPowerRangeEquivalentTntDeterminant*);
79  virtual void updateDataFor(DtPowerRangeEquivalentTntDeterminant*, QLineEdit*);
80  virtual void processUiEvent(const DtUiElementEvent& e) override;
81 
82  virtual void setupPowerDeterminant(DtPowerRangeListDeterminant*);
83  virtual void setupGraphDataFor(DtPowerRangeListDeterminant*);
84  virtual void removeSelectedColumn(DtPowerRangeListDeterminant*);
85  virtual void addRangeTo(DtPowerRangeListDeterminant*);
86  virtual void updateDataFor(DtPowerRangeListDeterminant*, QLineEdit*);
87  virtual QListWidgetItem* addNewDeterminant(DtPowerRangeDeterminant* prd);
88 
89  virtual void setupPowerDeterminant(DtPowerRangeDeterminantList*);
90 
91  virtual QString currentText() const;
92  virtual DtString currentPower() const;
93  virtual DtString currentDeterminant() const;
94  virtual DtPowerRangeDeterminant* currentPowerDeterminant() const;
95 
96  virtual bool eventFilter(QObject*, QEvent*) override;
97  virtual void cellEntered(QObject* e);
98 
99  virtual void moveRange();
100  virtual void wheelMove(double delta);
101 
102  virtual DtPowerRangeDeterminant* getPowerAndDeterminant(DtString& power, DtString& determinant) const;
103 
105  virtual double adjustPower(DtPowerRangeDeterminant* prd, double power, bool toDisplay = true) const;
106  virtual double getProbability(double range, DtPowerRangeListDeterminant* entry) const;
107  virtual int changeRangeForColumn(int column, double toRange);
108 
109  virtual void replotGraph();
110 
111 protected slots:
112  virtual void sectionDoubleClicked(int);
113  virtual void legendClicked(const QVariant&, int);
114  virtual void selectCurve(const QPointF&);
115  virtual void selectPowerLine();
116  virtual void changeCellValue();
117 
118  virtual void onAddPower();
119  virtual void onRemovePower();
120  virtual void onEditPower();
121 
122  virtual void graphDataSelectionChanged();
123 
124  virtual void addRange();
125  virtual void editRange();
126  virtual void removeRange();
127  virtual void onCopyPower();
128  virtual void onAssignAsAttacker();
129 
130  virtual void updateTabVisibility();
131 
132 public:
133  QwtPlot* myGraph;
134  QWidget* myPowerCanvas;
136  QwtPlotCurve* myPlotLine;
137  QHBoxLayout* myButtonLayout;
138  QVBoxLayout* myPowerListLayout;
144  QDoubleValidator* myRangeValidator;
145  QDoubleValidator* myCoefficientValidator;
147  QListWidget* myPowerList;
149  QHBoxLayout* mySingleLineLayout;
152  QHBoxLayout* myTableButtons;
153  QWidget* myDataCanvas;
154  QVBoxLayout* myDataLayout;
159  QWidget* myButtonLine;
160 
161  static QColor thePlotLineColor;
162 
163 protected:
168  std::vector<int> myRangeColumns;
169 };
DtRangeProbEntry is an abstract class whose deriving classes will have one of the two forms of DtPrbD...
Definition: rangeProbEntry.h:19
QLabel * myComboLabel
Definition: uiDetonationParametersConfigurationWidget.h:146
QToolButton * myEditRange
Definition: uiDetonationParametersConfigurationWidget.h:156
QVBoxLayout * myPowerListLayout
Definition: uiDetonationParametersConfigurationWidget.h:138
QHBoxLayout * mySingleLineLayout
Definition: uiDetonationParametersConfigurationWidget.h:149
virtual void createControls(QWidget *parent)
If additional widgets or connections need to be made do it here. The parent is the myWidget member...
virtual void setFromParameters(DtReaderWriter *parentRw)
Calls setFromParameters with std::vector of parameter.
QToolButton * myRemovePower
Definition: uiDetonationParametersConfigurationWidget.h:140
QDoubleValidator * myCoefficientValidator
Definition: uiDetonationParametersConfigurationWidget.h:145
QToolButton * myRemoveRange
Definition: uiDetonationParametersConfigurationWidget.h:157
virtual void processUiEvent(const DtUiElementEvent &)
Process ui event. Default does nothing.
Definition: uiElement.h:236
QHBoxLayout * myButtonLayout
Definition: uiDetonationParametersConfigurationWidget.h:137
QDoubleValidator * myRangeValidator
Definition: uiDetonationParametersConfigurationWidget.h:144
boost::function< DtUiElement *(makVrv::DtDe &)> CreatorFunction
Definition: uiElement.h:190
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: powerRangeListDeterminant.h:17
A readable/writable object that indicates the power of a detonation of a given type as a function of ...
Definition: powerRangeCoefficientsDeterminant.h:53
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 * mySingleLineLabel
Definition: uiDetonationParametersConfigurationWidget.h:151
QListWidget * myPowerList
Definition: uiDetonationParametersConfigurationWidget.h:147
QWidget * myDataCanvas
Definition: uiDetonationParametersConfigurationWidget.h:153
QVBoxLayout * myDataLayout
Definition: uiDetonationParametersConfigurationWidget.h:154
A readable/writable list of detonation powers listed by type.
Definition: powerRangeDeterminantList.h:18
Add the ability to set decimals to cursor text.
Definition: plotPicker.h:10
QToolButton * myAssignAsAttacker
Definition: uiDetonationParametersConfigurationWidget.h:143
bool myIgnoreNextMouseMove
Definition: uiDetonationParametersConfigurationWidget.h:166
QLineEdit * mySingleLineEdit
Definition: uiDetonationParametersConfigurationWidget.h:150
bool myCanMoveWithMouse
Definition: uiDetonationParametersConfigurationWidget.h:165
QWidget * myPowerCanvas
Definition: uiDetonationParametersConfigurationWidget.h:134
DtMunitionDetonationPowerEntry.
Definition: munitionDetonationPowerEntry.h:19
QwtPlot * myGraph
Definition: uiDetonationParametersConfigurationWidget.h:133
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
virtual void setEnabled(bool)
If this item is not enabled it cannot be modified.
QToolButton * myAddRange
Definition: uiDetonationParametersConfigurationWidget.h:155
A readable/writable object that indicates the power of a detonation of a given type directly at the p...
Definition: powerDirectDeterminant.h:17
QToolButton * myEditPower
Definition: uiDetonationParametersConfigurationWidget.h:141
QHBoxLayout * myTableButtons
Definition: uiDetonationParametersConfigurationWidget.h:152
The DtUiElement class is the base for which all UI elements are defined. If you wish to create a new ...
Definition: uiElement.h:97
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
QWidget * mySingleLineCanvas
Definition: uiDetonationParametersConfigurationWidget.h:148
QTableWidget * myGraphData
Definition: uiDetonationParametersConfigurationWidget.h:158
A readable/writable object that indicates the power of a detonation of a given type as a function of ...
Definition: powerRangeEquivalentTntDeterminant.h:20
DtPlotPicker * myPlotPicker
Definition: uiDetonationParametersConfigurationWidget.h:135
QToolButton * myAddPower
Definition: uiDetonationParametersConfigurationWidget.h:139
Definition: uiDetonationParametersConfigurationWidget.h:43
QWidget * myButtonLine
Definition: uiDetonationParametersConfigurationWidget.h:159
QToolButton * myCopyPower
Definition: uiDetonationParametersConfigurationWidget.h:142
bool myMoveRange
Definition: uiDetonationParametersConfigurationWidget.h:167
QwtPlotCurve * myPlotLine
Definition: uiDetonationParametersConfigurationWidget.h:136
std::vector< int > myRangeColumns
Definition: uiDetonationParametersConfigurationWidget.h:168
int mySelectedRange
Definition: uiDetonationParametersConfigurationWidget.h:164
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
Base class of the ui element class chain. Properties available through designer for all ui elements a...
Definition: uiElement.h:185
static QColor thePlotLineColor
Definition: uiDetonationParametersConfigurationWidget.h:161

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)