103 lines
2.4 KiB
C++
103 lines
2.4 KiB
C++
#ifndef STABCALCULATIONDATA_H
|
|
#define STABCALCULATIONDATA_H
|
|
|
|
#include "../StabCalculation/StabCalculation.h"
|
|
#include <QMap>
|
|
#include "Serialization.h"
|
|
#include "DataBlock.h"
|
|
|
|
class StabCalculationData : public Serialization
|
|
{
|
|
public:
|
|
|
|
StabCalculationData()
|
|
{
|
|
|
|
}
|
|
~StabCalculationData()
|
|
{
|
|
for (auto it = m_DataRows.begin(); it != m_DataRows.end(); ++it) {
|
|
delete it.value();
|
|
}
|
|
m_DataRows.clear();
|
|
|
|
for (auto it = m_childModules.begin(); it != m_childModules.end(); ++it) {
|
|
delete it.value();
|
|
}
|
|
m_childModules.clear();
|
|
|
|
}
|
|
|
|
void addHydroBInfo(BInf& info);
|
|
BInf* FindByParamID(std::string strParamID);
|
|
int fromXml(const pugi::xml_node node);
|
|
int toXml(pugi::xml_node node);
|
|
|
|
void AddXLabelRow(XLabel& data);
|
|
void AddStationLabelRow(StationLabel& data);
|
|
void AddWaterlineLabelRow(WaterlineLabel& data);
|
|
void AddButtocklineLabelRow(ButtocklineLabel& data);
|
|
|
|
void saveStabCalcData(QString path);
|
|
|
|
void updateData()
|
|
{
|
|
m_CalcBaseData.updateData();
|
|
}
|
|
|
|
std::vector<std::string>& getAnalyseNameList();
|
|
|
|
QString getDataRowValue(const QString& key);
|
|
void addOrUpdateDataRow(const QString& key, QString value = "", QString caption = "", QString remark = "");
|
|
bool createDataRow(const QString& key, QString value = "", QString caption = "", QString remark = "");
|
|
bool isEmpty();
|
|
bool CreateChildModulus(const QString& key, QString caption = "", QString remark = "");
|
|
|
|
const StabCalcBaseData& getCalcBaseData()
|
|
{
|
|
return m_CalcBaseData;
|
|
}
|
|
|
|
|
|
|
|
std::map<std::string,XLabel> m_vXLabelData;
|
|
|
|
std::map<std::string, StationLabel> m_vStationLabelData;
|
|
|
|
std::map<std::string, WaterlineLabel> m_vWaterlineLabelData;
|
|
std::map<std::string, ButtocklineLabel> m_vButtocklineLabelData;
|
|
|
|
|
|
|
|
StabilityCalDataBlock m_StabilityCal;
|
|
QMap<QString, DataRowInf*> m_DataRows;
|
|
std::vector<std::string> m_ModuleNames;
|
|
|
|
QMap<QString, DataRowInf*> m_childModules;
|
|
std::vector<std::string> m_childModuleNames;
|
|
|
|
|
|
StabCalcBaseData m_CalcBaseData;
|
|
// 静水力
|
|
Hydro m_Hydro;
|
|
|
|
//舱容
|
|
TankCap m_TankCap;
|
|
|
|
//完整稳性
|
|
Intact m_Intact;
|
|
|
|
//许用重心高度
|
|
AllowKG m_AllowKG;
|
|
|
|
//破损稳性
|
|
Damage m_Damage;
|
|
|
|
//概率破损
|
|
DamageProb m_DamageProb;
|
|
|
|
//倾斜试验
|
|
Inclining m_Inclining;
|
|
};
|
|
|
|
#endif |