VR-Forces 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  virtual void updateGraphLabel();
146 
147 protected slots:
148  virtual void selectDamageTableEntry();
149  virtual void faceApplicationChanged();
150  virtual void clearPowerEntry();
151  virtual void copyFace();
152  virtual void addAngleOfIncidence();
153  virtual void removeAngleOfIncidence();
154  virtual void editAngleOfIncidence();
155  virtual void onCopyPower();
156  virtual void onFaceSelected(const DtString&);
157  virtual void setupForAngleOfIncidence(double angle);
158  virtual void onAssignAsDefender();
159  virtual void onAddPower();
160 
161 public:
166  QListWidget* myDamageTableEntry;
171 
172  QWidget* myFaceCanvas;
174  QVBoxLayout* myFaceCanvasLayout;
175  QRadioButton* myApplyToAllFaces;
176  QRadioButton* myApplyToSpecificFaces;
178 
187 
189 
190 protected:
192  static std::map<DtString, DtString> theSelections;
193 
194  struct KillData
195  {
196  QString title;
197  bool humanOnly;
198  };
199 
200  std::map<DtString, KillData> myKillTypes;
201 };
QHBoxLayout * myDamageTableEntryTypeLayout
Definition: uiDamageTableConfigurationWidget.h:164
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:177
QLabel * myFaceCanvasLabel
Definition: uiDamageTableConfigurationWidget.h:173
QRadioButton * myApplyToSpecificFaces
Definition: uiDamageTableConfigurationWidget.h:176
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:181
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:186
QToolButton * myEditAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:185
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:166
static std::map< DtString, DtString > theSelections
Definition: uiDamageTableConfigurationWidget.h:192
QRadioButton * myApplyToAllFaces
Definition: uiDamageTableConfigurationWidget.h:175
QToolButton * myRemovePowerEntry
Definition: uiDamageTableConfigurationWidget.h:169
virtual void setFromParameters(const std::vector< DtReaderWriter * > &parentRw)
std::map< DtString, AngleOfIncidenceVector > FacesMap
Definition: uiDamageTableConfigurationWidget.h:39
QToolButton * myAssignAsDefender
Definition: uiDamageTableConfigurationWidget.h:170
static DtUiElement * CreatorFunction(makVrv::DtDe &)
QHBoxLayout * myAnglesOfIncidenceButtonsLayout
Definition: uiDamageTableConfigurationWidget.h:182
Definition: uiDamageTableConfigurationWidget.h:41
Definition: faceSelectionWidget.h:27
QWidget * myDamageTableCanvas
Definition: uiDamageTableConfigurationWidget.h:162
virtual int changeRangeForColumn(const DtString &et, int column, double toRange)
virtual bool multiLinesPerGraph() const
QToolButton * myCopyPowerEntry
Definition: uiDamageTableConfigurationWidget.h:168
QToolButton * myCopyFace
Definition: uiDamageTableConfigurationWidget.h:188
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:163
QToolButton * myRemoveAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:184
const char * source
Definition: lz4.h:442
Definition: uiDamageTableConfigurationWidget.h:25
Definition: uiHitProbabilityConfigurationWidget.h:74
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:197
QLabel * myDamageTableEntryTypeLabel
Definition: uiDamageTableConfigurationWidget.h:165
DtDmgAngleOfIncidenceCalcTable is the derived form of DtDmgAngleOfIncidenceTable that has a DtPrbCoef...
Definition: dmgAngleOfIncidenceCalcTable.h:27
virtual QListWidgetItem * selectedLine() const
QWidget * myAnglesOfIncidenceCanvas
Definition: uiDamageTableConfigurationWidget.h:179
QToolButton * myAddAngleOfIncidence
Definition: uiDamageTableConfigurationWidget.h:183
Powers myPowers
Definition: uiDamageTableConfigurationWidget.h:191
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:72
QVBoxLayout * myAnglesOfIncidenceLayout
Definition: uiDamageTableConfigurationWidget.h:180
QWidget * myFaceCanvas
Definition: uiDamageTableConfigurationWidget.h:172
virtual void processUiEvent(const DtUiElementEvent &e)
Process ui event. Default does nothing.
std::map< DtString, KillData > myKillTypes
Definition: uiDamageTableConfigurationWidget.h:200
Definition: uiDamageTableConfigurationWidget.h:194
QString title
Definition: uiDamageTableConfigurationWidget.h:196
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:174
QToolButton * myAddPowerEntry
Definition: uiDamageTableConfigurationWidget.h:167
#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: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)