COMPASSi/trunk/code/inc/DataManager/Infrastructure.Data/DataContainer/StabCalculationData.h

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