// 总纵强度计算输入 结构定义,StrengthSet.xsd表中的相关xml结构在c++中的自定义 // 包含 1、梁端横剖面 2、船体梁外载 3、船体有限梁 4、总强度校核 的相关结构体 #ifndef STRENGTH_CAL_H #define STRENGTH_CAL_H #include "nlohmann/json.hpp" // #include "ModelDS.hxx" #include "StrengthSet.hxx" // class... namespace strength_set { class JsonSection { public: static nlohmann::json to_json(const Section &obj); static Section from_json(const nlohmann::json &j); }; class JsonSecNode { public: static nlohmann::json to_json(const SecNode &obj); static SecNode from_json(const nlohmann::json &j); }; class JsonSecPlate { public: static nlohmann::json to_json(const SecPlate &obj); static SecPlate from_json(const nlohmann::json &j); }; class JsonSecOpenroom { public: static nlohmann::json to_json(const SecOpenroom &obj); static SecOpenroom from_json(const nlohmann::json &j); }; class JsonSecCloseroom { public: static nlohmann::json to_json(const SecCloseroom &obj); static SecCloseroom from_json(const nlohmann::json &j); }; class JsonSecShell { public: static nlohmann::json to_json(const SecShell &obj); static SecShell from_json(const nlohmann::json &j); }; class JsonSubnode { public: static nlohmann::json to_json(const Subnode &obj); static Subnode from_json(const nlohmann::json &j); }; class JsonMat { public: static nlohmann::json to_json(const Mat &obj); static Mat from_json(const nlohmann::json &j); }; class JsonSubgirder { public: static nlohmann::json to_json(const Subgirder &obj); static Subgirder from_json(const nlohmann::json &j); }; class JsonAttach { public: static nlohmann::json to_json(const Attach &obj); static Attach from_json(const nlohmann::json &j); }; class JsonGirder { public: static nlohmann::json to_json(const Girder &obj); static Girder from_json(const nlohmann::json &j); }; class JsonLoads { public: static nlohmann::json to_json(const Loads &obj); static Loads from_json(const nlohmann::json &j); }; class JsonOffset { public: static nlohmann::json to_json(const Offset &obj); static Offset from_json(const nlohmann::json &j); }; class JsonWL { public: static nlohmann::json to_json(const WL &obj); static WL from_json(const nlohmann::json &j); }; class JsonBonjean { public: static nlohmann::json to_json(const Bonjean &obj); static Bonjean from_json(const nlohmann::json &j); }; class JsonKL { public: static nlohmann::json to_json(const KL &obj); static KL from_json(const nlohmann::json &j); }; class JsonLoadCase { public: static nlohmann::json to_json(const LoadCase &obj); static LoadCase from_json(const nlohmann::json &j); }; class JsonStWeight { public: static nlohmann::json to_json(const StWeight &obj); static StWeight from_json(const nlohmann::json &j); }; class JsonItemWeight { public: static nlohmann::json to_json(const ItemWeight &obj); static ItemWeight from_json(const nlohmann::json &j); }; class JsonMTC { public: static nlohmann::json to_json(const MTC &obj); static MTC from_json(const nlohmann::json &j); }; class JsonLiftedCargo { public: static nlohmann::json to_json(const LiftedCargo &obj); static LiftedCargo from_json(const nlohmann::json &j); }; class JsonChkSubgirder { public: static nlohmann::json to_json(const ChkSubgirder &obj); static ChkSubgirder from_json(const nlohmann::json &j); }; class JsonChkPlate { public: static nlohmann::json to_json(const ChkPlate &obj); static ChkPlate from_json(const nlohmann::json &j); }; class JsonChkLongitudinal { public: static nlohmann::json to_json(const ChkLongitudinal &obj); static ChkLongitudinal from_json(const nlohmann::json &j); }; class JsonStaticLoad { public: static nlohmann::json to_json(const StaticLoad &obj); static StaticLoad from_json(const nlohmann::json &j); }; class JsonAllowLoad { public: static nlohmann::json to_json(const AllowLoad &obj); static AllowLoad from_json(const nlohmann::json &j); }; class JsonAddtionalLoad { public: // 从 AddtionalLoad 生成 JSON(静态方法) static nlohmann::json to_json(const AddtionalLoad &obj); // 从 JSON 构造 AddtionalLoad(静态工厂) static AddtionalLoad from_json(const nlohmann::json &j); }; class JsonProjectInfo { public: static nlohmann::json to_json(const ProjectInfo &obj); static ProjectInfo from_json(const nlohmann::json &j); }; class JsonPub { public: static nlohmann::json to_json(const Pub &obj); static Pub from_json(const nlohmann::json &j); }; } #endif