COMPASSi/trunk/code/inc/DataManager/Infrastructure.Data/StructureCalculation/StrengthCalculation.h

248 lines
5.3 KiB
C
Raw Permalink Normal View History

2025-06-25 15:06:42 +08:00
// 总纵强度计算输入 结构定义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