VR-Forces 4.7 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 
9 #include <QtWidgets/QPushButton>
11 
12 class QListWidget;
17 class DtDmgSurfaceEntry;
18 class QRadioButton;
21 
23 {
24  Q_OBJECT
25 
26 protected:
27  typedef std::map<DtString, DtRangeProbEntry*> ProbabilitiesMap;
29  {
32  };
33 
34  typedef std::vector<AngleOfIncidence> AngleOfIncidenceVector;
35 
36  typedef std::map<DtString, AngleOfIncidenceVector> FacesMap;
37 
38  struct Power
39  {
43  };
44 
45  typedef std::map<DtString, Power> Powers;
46 
47 public:
48 
51 
54 
56 
57  virtual void setEnabled(bool);
58 
59 protected:
60  virtual void damageTableChanged();
61  virtual void setFromParameters(const std::vector<DtReaderWriter*>& parentRw);
62  virtual void setFromParameters(const std::vector<DtComponentSystemDefinition*>& rws);
63  virtual void createControls(QWidget* widget);
64  virtual double minimumRange(DtDetectionPrbRangeLookupEntry* entry) const;
65  virtual double maximumRange(DtDetectionPrbRangeCalcEntry* entry) const;
66  virtual void clearGraphData();
67 
68  virtual void setupDamageValue(const DtRwDamageByMunitionPowerMap&);
69  virtual QString damageTypeTitle(const DtString&) const;
70 
71  virtual DtDamageProbabilityTable* selectedDamageTable() const;
72  virtual void selectFace(const DtString&, bool andUpdateGraph);
73 
74  virtual bool setupForFace(const DtString&);
75 
76  virtual Power createPowerStructure(const DtDamageProbabilityTable*);
77  virtual ProbabilitiesMap createPowerStructure(const DtDmgAngleOfIncidenceLookupTable*);
78  virtual ProbabilitiesMap createPowerStructure(const DtDmgAngleOfIncidenceCalcTable*);
79  virtual AngleOfIncidenceVector createPowerStructure(DtDmgSurfaceEntry*);
80  virtual void clearAnglesOfIncidence();
81  virtual void changeHitPercentage();
82  virtual void processUiEvent(const DtUiElementEvent& e);
83  virtual void addGraphDataCanvas();
84 
85  virtual void copyAnglesOfIncidence(const AngleOfIncidenceVector& source, AngleOfIncidenceVector& destination) const;
86  virtual void clearAnglesOfIncidence(AngleOfIncidenceVector& destination) const;
87 
88  virtual void setupGraphDataFor(const DtString&);
89  virtual void setupForAnglesOfIncidence(const AngleOfIncidenceVector&);
90 
91  virtual void createDamageSurfaceEntry(const AngleOfIncidenceVector&, DtDmgSurfaceEntry&) const;
92  virtual void createDamageProbabilityTable(const DtString& selectedPower, DtDamageProbabilityTable& table) const;
93  virtual void addLookupTableToSurface(const AngleOfIncidence&, DtDmgSurfaceEntry&) const;
94  virtual void addCoefficientTableToSurface(const AngleOfIncidence&, DtDmgSurfaceEntry&) const;
95 
96  virtual bool isSupportedDamageType(const DtString&) const;
97 
98  virtual QListWidgetItem* selectedLine() const;
99  virtual QListWidgetItem* selectedPowerType() const;
100  virtual DtString selectedPower() const;
101  virtual void resetGraphData();
102 
103  virtual bool compareAnglesOfIncidence(const AngleOfIncidenceVector& lhs, const AngleOfIncidenceVector& rhs) const;
104  virtual bool compareProbabilities(const ProbabilitiesMap& lhs, const ProbabilitiesMap& rhs) const;
105  virtual void plotLineSelected();
106  virtual int selectedRow() const;
107  virtual int changeRangeForColumn(const DtString& et, int column, double toRange);
108  virtual int changeRangeFor(const DtString& et, double fromRange, double toRange);
109  virtual void addNewRangeEntry(int range);
110  virtual bool addNewCoefficientEntry();
111 
112  virtual void removeRange();
113 
116  virtual void updateData();
117  virtual void updateReaderWriterData();
118 
119  virtual DtString getFaceToCopy(const QString& message, const DtString& skipFace = "") const;
120  virtual void setAllToFace(const DtString& power, const DtString& face);
121 
124  virtual DtDamageProbabilityTable* createEmptyDamageLookupTable() const;
125 
128  virtual DtDamageProbabilityTable* createEmptyDamageCalcTable() const;
129 
131  virtual DtDmgSurfaceEntry* createEmptyDamageLookupSurface(const DtString& surface) const;
132 
134  virtual DtDmgSurfaceEntry* createEmptyDamageCalcSurface(const DtString& surface) const;
135 
136  virtual void changeEquation();
137  virtual void setDamageTableToCurrentPower(const DtDamageProbabilityTable* tbl);
138  virtual void setDamageTableToPower(const DtString& selectedP, const DtDamageProbabilityTable* tbl);
139  virtual void setupDamageFor(const DtString& selectedP);
140  virtual void selectPower(const DtString& selectedP);
141 
142 protected slots:
143  virtual void selectDamageTableEntry();
144  virtual void faceApplicationChanged();
145  virtual void clearPowerEntry();
146  virtual void copyFace();
147  virtual void addAngleOfIncidence();
148  virtual void removeAngleOfIncidence();
149  virtual void editAngleOfIncidence();
150  virtual void onCopyPower();
151  virtual void onFaceSelected(const DtString&);
152  virtual void setupForAngleOfIncidence(double angle);
153  virtual void onAssignAsDefender();
154  virtual void onAddPower();
155 
156 public:
161  QListWidget* myDamageTableEntry;
166 
167  QWidget* myFaceCanvas;
169  QVBoxLayout* myFaceCanvasLayout;
170  QRadioButton* myApplyToAllFaces;
171  QRadioButton* myApplyToSpecificFaces;
173 
182 
184 
185 protected:
187  static std::map<DtString, DtString> theSelections;
188 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)