VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
uiDamageTableConfigurationWidget.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 
8 #if !defined(Q_MOC_RUN)
10 #include <QtWidgets/QPushButton>
12 #endif
13 
14 class QListWidget;
19 class DtDmgSurfaceEntry;
20 class QRadioButton;
21 class QToolButton;
24 
26 {
27  Q_OBJECT
28 
29 protected:
30  typedef std::map<DtString, DtRangeProbEntry*> ProbabilitiesMap;
32  {
35  };
36 
37  typedef std::vector<AngleOfIncidence> AngleOfIncidenceVector;
38 
39  typedef std::map<DtString, AngleOfIncidenceVector> FacesMap;
40 
41  struct Power
42  {
46  };
47 
48  typedef std::map<DtString, Power> Powers;
49 
50 public:
51 
54 
57 
59 
60  virtual void setEnabled(bool);
61 
62 protected:
63  virtual void damageTableChanged();
64  virtual void setFromParameters(const std::vector<DtReaderWriter*>& parentRw);
65  virtual void setFromParameters(const std::vector<DtComponentSystemDefinition*>& rws);
66  virtual void createControls(QWidget* widget);
67  virtual double minimumRange(DtDetectionPrbRangeLookupEntry* entry) const;
68  virtual double maximumRange(DtDetectionPrbRangeCalcEntry* entry) const;
69  virtual void clearGraphData();
70 
71  virtual void setupDamageValue(const DtRwDamageByMunitionPowerMap&);
72  virtual QString damageTypeTitle(const DtString&) const;
73 
74  virtual DtDamageProbabilityTable* selectedDamageTable() const;
75  virtual void selectFace(const DtString&, bool andUpdateGraph);
76 
77  virtual bool setupForFace(const DtString&);
78 
79  virtual Power createPowerStructure(const DtDamageProbabilityTable*);
80  virtual ProbabilitiesMap createPowerStructure(const DtDmgAngleOfIncidenceLookupTable*);
81  virtual ProbabilitiesMap createPowerStructure(const DtDmgAngleOfIncidenceCalcTable*);
82  virtual AngleOfIncidenceVector createPowerStructure(DtDmgSurfaceEntry*);
83  virtual void clearAnglesOfIncidence();
84  virtual void changeHitPercentage();
85  virtual void processUiEvent(const DtUiElementEvent& e);
86  virtual void addGraphDataCanvas();
87 
88  virtual void copyAnglesOfIncidence(const AngleOfIncidenceVector& source, AngleOfIncidenceVector& destination) const;
89  virtual void clearAnglesOfIncidence(AngleOfIncidenceVector& destination) const;
90 
91  virtual void setupGraphDataFor(const DtString&);
92  virtual void setupForAnglesOfIncidence(const AngleOfIncidenceVector&);
93 
94  virtual void createDamageSurfaceEntry(const AngleOfIncidenceVector&, DtDmgSurfaceEntry&) const;
95  virtual void createDamageProbabilityTable(const DtString& selectedPower, DtDamageProbabilityTable& table) const;
96  virtual void addLookupTableToSurface(const AngleOfIncidence&, DtDmgSurfaceEntry&) const;
97  virtual void addCoefficientTableToSurface(const AngleOfIncidence&, DtDmgSurfaceEntry&) const;
98 
99  virtual bool isSupportedDamageType(const DtString&) const;
100 
101  virtual QListWidgetItem* selectedLine() const;
102  virtual QListWidgetItem* selectedPowerType() const;
103  virtual DtString selectedPower() const;
104  virtual void resetGraphData();
105 
106  virtual bool compareAnglesOfIncidence(const AngleOfIncidenceVector& lhs, const AngleOfIncidenceVector& rhs) const;
107  virtual bool compareProbabilities(const ProbabilitiesMap& lhs, const ProbabilitiesMap& rhs) const;
108  virtual void plotLineSelected();
109  virtual int selectedRow() const;
110  virtual int changeRangeForColumn(const DtString& et, int column, double toRange);
111  virtual int changeRangeFor(const DtString& et, double fromRange, double toRange);
112  virtual void addNewRangeEntry(double range);
113  virtual bool addNewCoefficientEntry();
114 
115  virtual void removeRange();
116 
119  virtual void updateData();
120  virtual void updateReaderWriterData();
121 
122  virtual DtString getFaceToCopy(const QString& message, const DtString& skipFace = "") const;
123  virtual void setAllToFace(const DtString& power, const DtString& face);
124 
127  virtual DtDamageProbabilityTable* createEmptyDamageLookupTable() const;
128 
131  virtual DtDamageProbabilityTable* createEmptyDamageCalcTable() const;
132 
134  virtual DtDmgSurfaceEntry* createEmptyDamageLookupSurface(const DtString& surface) const;
135 
137  virtual DtDmgSurfaceEntry* createEmptyDamageCalcSurface(const DtString& surface) const;
138 
139  virtual void changeEquation();
140  virtual void setDamageTableToCurrentPower(const DtDamageProbabilityTable* tbl);
141  virtual void setDamageTableToPower(const DtString& selectedP, const DtDamageProbabilityTable* tbl);
142  virtual void setupDamageFor(const DtString& selectedP);
143  virtual void selectPower(const DtString& selectedP);
144  virtual bool multiLinesPerGraph() const;
145 
146 protected slots:
147  virtual void selectDamageTableEntry();
148  virtual void faceApplicationChanged();
149  virtual void clearPowerEntry();
150  virtual void copyFace();
151  virtual void addAngleOfIncidence();
152  virtual void removeAngleOfIncidence();
153  virtual void editAngleOfIncidence();
154  virtual void onCopyPower();
155  virtual void onFaceSelected(const DtString&);
156  virtual void setupForAngleOfIncidence(double angle);
157  virtual void onAssignAsDefender();
158  virtual void onAddPower();
159 
160 public:
165  QListWidget* myDamageTableEntry;
170 
171  QWidget* myFaceCanvas;
173  QVBoxLayout* myFaceCanvasLayout;
174  QRadioButton* myApplyToAllFaces;
175  QRadioButton* myApplyToSpecificFaces;
177 
186 
188 
189 protected:
191  static std::map<DtString, DtString> theSelections;
192 
193  struct KillData
194  {
195  QString title;
196  bool humanOnly;
197  };
198 
199  std::map<DtString, KillData> myKillTypes;
200 };
QHBoxLayout * myDamageTableEntryTypeLayout
Definition: uiDamageTableConfigurationWidget.h:163
virtual void createControls(QWidget *parent)
If additional widgets or connections need to be made do it here. The parent is the myWidget member...
DtFaceSelectionWidget * myFaceSelectionWidget
Definition: uiDamageTableConfigurationWidget.h:176
QLabel * myFaceCanvasLabel
Definition: uiDamageTableConfigurationWidget.h:172
QRadioButton * myApplyToSpecificFaces
Definition: uiDamageTableConfigurationWidget.h:175
virtual double maximumRange(DtDetectionPrbRangeCalcEntry *entry) const
ProbabilitiesMap probabilities
Definition: uiDamageTableConfigurationWidget.h:34
DtDmgAngleOfIncidenceLookupTable is the derived form of DtDmgAngleOfIncidenceTable that has a DtPrbSt...
Definition: dmgAngleOfIncidenceLookupTable.h:27
DtAngleOfIncidenceSelectionWidget * myAngleOfIncidenceSelectionWidget
Definition: uiDamageTableConfigurationWidget.h:180
Definition: angleOfIncidenceSelectionWidget.h:18
Definition: uiDamageTableConfigurationWidget.h:31
bool allCouldBeTheSame
Definition: uiDamageTableConfigurationWidget.h:45
FacesMap faces
Definition: uiDamageTableConfigurationWidget.h:43
QLabel * myAngleOfIncidenceLabel
Definition: uiDamageTableConfigurationWidget.h:185
QToolButton * myEditAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:184
std::map< DtString, DtRangeProbEntry * > ProbabilitiesMap
Definition: uiDamageTableConfigurationWidget.h:30
DtDmgAngleOfIncidenceTable is an abstract class whose deriving classes will have one of the two forms...
Definition: dmgAngleOfIncidenceTable.h:29
virtual void setEnabled(bool)
If this item is not enabled it cannot be modified.
std::map< DtString, Power > Powers
Definition: uiDamageTableConfigurationWidget.h:48
QListWidget * myDamageTableEntry
Definition: uiDamageTableConfigurationWidget.h:165
static std::map< DtString, DtString > theSelections
Definition: uiDamageTableConfigurationWidget.h:191
QRadioButton * myApplyToAllFaces
Definition: uiDamageTableConfigurationWidget.h:174
QToolButton * myRemovePowerEntry
Definition: uiDamageTableConfigurationWidget.h:168
virtual void setFromParameters(const std::vector< DtReaderWriter * > &parentRw)
std::map< DtString, AngleOfIncidenceVector > FacesMap
Definition: uiDamageTableConfigurationWidget.h:39
QToolButton * myAssignAsDefender
Definition: uiDamageTableConfigurationWidget.h:169
static DtUiElement * CreatorFunction(makVrv::DtDe &)
QHBoxLayout * myAnglesOfIncidenceButtonsLayout
Definition: uiDamageTableConfigurationWidget.h:181
Definition: uiDamageTableConfigurationWidget.h:41
Definition: faceSelectionWidget.h:27
QWidget * myDamageTableCanvas
Definition: uiDamageTableConfigurationWidget.h:161
virtual int changeRangeForColumn(const DtString &et, int column, double toRange)
virtual bool multiLinesPerGraph() const
QToolButton * myCopyPowerEntry
Definition: uiDamageTableConfigurationWidget.h:167
QToolButton * myCopyFace
Definition: uiDamageTableConfigurationWidget.h:187
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
std::vector< AngleOfIncidence > AngleOfIncidenceVector
Definition: uiDamageTableConfigurationWidget.h:37
virtual void setupGraphDataFor(DtDetectionPrbRangeLookupEntry *, const DtString &key, int row=0)
DtDetectionPrbRangeCalcEntry is the derived form of DtRangeProbEntry that has a DtPrbCoefficientsDete...
Definition: detectionPrbRangeCalcEntry.h:23
DtDamageProbabilityTable.
Definition: damageProbabilityTable.h:20
QVBoxLayout * myDamageTableEntryLayout
Definition: uiDamageTableConfigurationWidget.h:162
QToolButton * myRemoveAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:183
const char * source
Definition: lz4.h:442
Definition: uiDamageTableConfigurationWidget.h:25
Definition: uiHitProbabilityConfigurationWidget.h:60
double angleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:33
DtDmgSurfaceEntry is a readable/writable list of angle of incidence tables; the name of the list is a...
Definition: dmgSurfaceEntry.h:29
bool humanOnly
Definition: uiDamageTableConfigurationWidget.h:196
QLabel * myDamageTableEntryTypeLabel
Definition: uiDamageTableConfigurationWidget.h:164
DtDmgAngleOfIncidenceCalcTable is the derived form of DtDmgAngleOfIncidenceTable that has a DtPrbCoef...
Definition: dmgAngleOfIncidenceCalcTable.h:27
virtual QListWidgetItem * selectedLine() const
QWidget * myAnglesOfIncidenceCanvas
Definition: uiDamageTableConfigurationWidget.h:178
QToolButton * myAddAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:182
Powers myPowers
Definition: uiDamageTableConfigurationWidget.h:190
virtual double minimumRange(DtDetectionPrbRangeLookupEntry *entry) const
The DtUiElement class is the base for which all UI elements are defined. If you wish to create a new ...
Definition: uiElement.h:97
bool allAreTheSame
Definition: uiDamageTableConfigurationWidget.h:44
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:70
QVBoxLayout * myAnglesOfIncidenceLayout
Definition: uiDamageTableConfigurationWidget.h:179
QWidget * myFaceCanvas
Definition: uiDamageTableConfigurationWidget.h:171
virtual void processUiEvent(const DtUiElementEvent &e)
Process ui event. Default does nothing.
std::map< DtString, KillData > myKillTypes
Definition: uiDamageTableConfigurationWidget.h:199
Definition: uiDamageTableConfigurationWidget.h:193
QString title
Definition: uiDamageTableConfigurationWidget.h:195
DtDetectionPrbRangeLookupEntry is the derived form of DtRangeProbEntry that has a DtPrbStepFunctionDe...
Definition: detectionPrbRangeLookupEntry.h:23
virtual int changeRangeFor(const DtString &et, double fromRange, double toRange)
QVBoxLayout * myFaceCanvasLayout
Definition: uiDamageTableConfigurationWidget.h:173
QToolButton * myAddPowerEntry
Definition: uiDamageTableConfigurationWidget.h:166
#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:180

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)