#ifndef STABCALCULATIONDATA_H #define STABCALCULATIONDATA_H #include "../StabCalculation/StabCalculation.h" #include #include "Serialization.h" #include "DataBlock.h" class StabCalculationData : public Serialization { public: StabCalculationData() { } ~StabCalculationData() { } void addHydroBInfo(BInf& info); BInf* FindByParamID(std::string strParamID); int fromXml(const pugi::xml_node node); int toXml(pugi::xml_node node, QString outFilePath); 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& 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 m_vXLabelData; std::map m_vStationLabelData; std::map m_vWaterlineLabelData; std::map m_vButtocklineLabelData; StabilityCalDataBlock m_StabilityCal; QMap m_DataRows; std::vector m_ModuleNames; QMap m_childModules; std::vector 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