VR-Forces 4.10 Class Documentation
 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;
23 
25 {
26  Q_OBJECT
27 
28 protected:
29  typedef std::map<DtString, DtRangeProbEntry*> ProbabilitiesMap;
31  {
34  };
35 
36  typedef std::vector<AngleOfIncidence> AngleOfIncidenceVector;
37 
38  typedef std::map<DtString, AngleOfIncidenceVector> FacesMap;
39 
40  struct Power
41  {
45  };
46 
47  typedef std::map<DtString, Power> Powers;
48 
49 public:
50 
53 
56 
58 
59  virtual void setEnabled(bool);
60 
61 protected:
62  virtual void damageTableChanged();
63  virtual void setFromParameters(const std::vector<DtReaderWriter*>& parentRw);
64  virtual void setFromParameters(const std::vector<DtComponentSystemDefinition*>& rws);
65  virtual void createControls(QWidget* widget);
66  virtual double minimumRange(DtDetectionPrbRangeLookupEntry* entry) const;
67  virtual double maximumRange(DtDetectionPrbRangeCalcEntry* entry) const;
68  virtual void clearGraphData();
69 
70  virtual void setupDamageValue(const DtRwDamageByMunitionPowerMap&);
71  virtual QString damageTypeTitle(const DtString&) const;
72 
73  virtual DtDamageProbabilityTable* selectedDamageTable() const;
74  virtual void selectFace(const DtString&, bool andUpdateGraph);
75 
76  virtual bool setupForFace(const DtString&);
77 
78  virtual Power createPowerStructure(const DtDamageProbabilityTable*);
79  virtual ProbabilitiesMap createPowerStructure(const DtDmgAngleOfIncidenceLookupTable*);
80  virtual ProbabilitiesMap createPowerStructure(const DtDmgAngleOfIncidenceCalcTable*);
81  virtual AngleOfIncidenceVector createPowerStructure(DtDmgSurfaceEntry*);
82  virtual void clearAnglesOfIncidence();
83  virtual void changeHitPercentage();
84  virtual void processUiEvent(const DtUiElementEvent& e);
85  virtual void addGraphDataCanvas();
86 
87  virtual void copyAnglesOfIncidence(const AngleOfIncidenceVector& source, AngleOfIncidenceVector& destination) const;
88  virtual void clearAnglesOfIncidence(AngleOfIncidenceVector& destination) const;
89 
90  virtual void setupGraphDataFor(const DtString&);
91  virtual void setupForAnglesOfIncidence(const AngleOfIncidenceVector&);
92 
93  virtual void createDamageSurfaceEntry(const AngleOfIncidenceVector&, DtDmgSurfaceEntry&) const;
94  virtual void createDamageProbabilityTable(const DtString& selectedPower, DtDamageProbabilityTable& table) const;
95  virtual void addLookupTableToSurface(const AngleOfIncidence&, DtDmgSurfaceEntry&) const;
96  virtual void addCoefficientTableToSurface(const AngleOfIncidence&, DtDmgSurfaceEntry&) const;
97 
98  virtual bool isSupportedDamageType(const DtString&) const;
99 
100  virtual QListWidgetItem* selectedLine() const;
101  virtual QListWidgetItem* selectedPowerType() const;
102  virtual DtString selectedPower() const;
103  virtual void resetGraphData();
104 
105  virtual bool compareAnglesOfIncidence(const AngleOfIncidenceVector& lhs, const AngleOfIncidenceVector& rhs) const;
106  virtual bool compareProbabilities(const ProbabilitiesMap& lhs, const ProbabilitiesMap& rhs) const;
107  virtual void plotLineSelected();
108  virtual int selectedRow() const;
109  virtual int changeRangeForColumn(const DtString& et, int column, double toRange);
110  virtual int changeRangeFor(const DtString& et, double fromRange, double toRange);
111  virtual void addNewRangeEntry(double range);
112  virtual bool addNewCoefficientEntry();
113 
114  virtual void removeRange();
115 
118  virtual void updateData();
119  virtual void updateReaderWriterData();
120 
121  virtual DtString getFaceToCopy(const QString& message, const DtString& skipFace = "") const;
122  virtual void setAllToFace(const DtString& power, const DtString& face);
123 
126  virtual DtDamageProbabilityTable* createEmptyDamageLookupTable() const;
127 
130  virtual DtDamageProbabilityTable* createEmptyDamageCalcTable() const;
131 
133  virtual DtDmgSurfaceEntry* createEmptyDamageLookupSurface(const DtString& surface) const;
134 
136  virtual DtDmgSurfaceEntry* createEmptyDamageCalcSurface(const DtString& surface) const;
137 
138  virtual void changeEquation();
139  virtual void setDamageTableToCurrentPower(const DtDamageProbabilityTable* tbl);
140  virtual void setDamageTableToPower(const DtString& selectedP, const DtDamageProbabilityTable* tbl);
141  virtual void setupDamageFor(const DtString& selectedP);
142  virtual void selectPower(const DtString& selectedP);
143  virtual bool multiLinesPerGraph() const;
144 
145 protected slots:
146  virtual void selectDamageTableEntry();
147  virtual void faceApplicationChanged();
148  virtual void clearPowerEntry();
149  virtual void copyFace();
150  virtual void addAngleOfIncidence();
151  virtual void removeAngleOfIncidence();
152  virtual void editAngleOfIncidence();
153  virtual void onCopyPower();
154  virtual void onFaceSelected(const DtString&);
155  virtual void setupForAngleOfIncidence(double angle);
156  virtual void onAssignAsDefender();
157  virtual void onAddPower();
158 
159 public:
164  QListWidget* myDamageTableEntry;
169 
170  QWidget* myFaceCanvas;
172  QVBoxLayout* myFaceCanvasLayout;
173  QRadioButton* myApplyToAllFaces;
174  QRadioButton* myApplyToSpecificFaces;
176 
185 
187 
188 protected:
190  static std::map<DtString, DtString> theSelections;
191 
192  struct KillData
193  {
194  QString title;
195  bool humanOnly;
196  };
197 
198  std::map<DtString, KillData> myKillTypes;
199 };
QHBoxLayout * myDamageTableEntryTypeLayout
Definition: uiDamageTableConfigurationWidget.h:162
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:175
QLabel * myFaceCanvasLabel
Definition: uiDamageTableConfigurationWidget.h:171
QRadioButton * myApplyToSpecificFaces
Definition: uiDamageTableConfigurationWidget.h:174
virtual double maximumRange(DtDetectionPrbRangeCalcEntry *entry) const
ProbabilitiesMap probabilities
Definition: uiDamageTableConfigurationWidget.h:33
DtDmgAngleOfIncidenceLookupTable is the derived form of DtDmgAngleOfIncidenceTable that has a DtPrbSt...
Definition: dmgAngleOfIncidenceLookupTable.h:27
DtAngleOfIncidenceSelectionWidget * myAngleOfIncidenceSelectionWidget
Definition: uiDamageTableConfigurationWidget.h:179
QPushButton * myAssignAsDefender
Definition: uiDamageTableConfigurationWidget.h:168
Definition: angleOfIncidenceSelectionWidget.h:18
Definition: uiDamageTableConfigurationWidget.h:30
bool allCouldBeTheSame
Definition: uiDamageTableConfigurationWidget.h:44
FacesMap faces
Definition: uiDamageTableConfigurationWidget.h:42
QLabel * myAngleOfIncidenceLabel
Definition: uiDamageTableConfigurationWidget.h:184
std::map< DtString, DtRangeProbEntry * > ProbabilitiesMap
Definition: uiDamageTableConfigurationWidget.h:29
QPushButton * myRemovePowerEntry
Definition: uiDamageTableConfigurationWidget.h:167
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:47
QListWidget * myDamageTableEntry
Definition: uiDamageTableConfigurationWidget.h:164
static std::map< DtString, DtString > theSelections
Definition: uiDamageTableConfigurationWidget.h:190
QPushButton * myCopyPowerEntry
Definition: uiDamageTableConfigurationWidget.h:166
QRadioButton * myApplyToAllFaces
Definition: uiDamageTableConfigurationWidget.h:173
virtual void setFromParameters(const std::vector< DtReaderWriter * > &parentRw)
std::map< DtString, AngleOfIncidenceVector > FacesMap
Definition: uiDamageTableConfigurationWidget.h:38
static DtUiElement * CreatorFunction(makVrv::DtDe &)
QHBoxLayout * myAnglesOfIncidenceButtonsLayout
Definition: uiDamageTableConfigurationWidget.h:180
Definition: uiDamageTableConfigurationWidget.h:40
Definition: faceSelectionWidget.h:27
QWidget * myDamageTableCanvas
Definition: uiDamageTableConfigurationWidget.h:160
QPushButton * myCopyFace
Definition: uiDamageTableConfigurationWidget.h:186
virtual int changeRangeForColumn(const DtString &et, int column, double toRange)
virtual bool multiLinesPerGraph() const
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
std::vector< AngleOfIncidence > AngleOfIncidenceVector
Definition: uiDamageTableConfigurationWidget.h:36
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
QPushButton * myRemoveAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:182
QVBoxLayout * myDamageTableEntryLayout
Definition: uiDamageTableConfigurationWidget.h:161
const char * source
Definition: lz4.h:442
Definition: uiDamageTableConfigurationWidget.h:24
Definition: uiHitProbabilityConfigurationWidget.h:59
QPushButton * myEditAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:183
double angleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:32
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:195
QLabel * myDamageTableEntryTypeLabel
Definition: uiDamageTableConfigurationWidget.h:163
DtDmgAngleOfIncidenceCalcTable is the derived form of DtDmgAngleOfIncidenceTable that has a DtPrbCoef...
Definition: dmgAngleOfIncidenceCalcTable.h:27
QPushButton * myAddAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:181
virtual QListWidgetItem * selectedLine() const
QWidget * myAnglesOfIncidenceCanvas
Definition: uiDamageTableConfigurationWidget.h:177
QPushButton * myAddPowerEntry
Definition: uiDamageTableConfigurationWidget.h:165
Powers myPowers
Definition: uiDamageTableConfigurationWidget.h:189
virtual double minimumRange(DtDetectionPrbRangeLookupEntry *entry) const
The DtUiElement class is the base for which all UI elements are defined.
Definition: uiElement.h:95
bool allAreTheSame
Definition: uiDamageTableConfigurationWidget.h:43
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QVBoxLayout * myAnglesOfIncidenceLayout
Definition: uiDamageTableConfigurationWidget.h:178
QWidget * myFaceCanvas
Definition: uiDamageTableConfigurationWidget.h:170
virtual void processUiEvent(const DtUiElementEvent &e)
Process ui event. Default does nothing.
std::map< DtString, KillData > myKillTypes
Definition: uiDamageTableConfigurationWidget.h:198
Definition: uiDamageTableConfigurationWidget.h:192
QString title
Definition: uiDamageTableConfigurationWidget.h:194
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:172
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:32
Base class of the ui element class chain.
Definition: uiElement.h:172

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)