445 lines
13 KiB
C++
445 lines
13 KiB
C++
#pragma once
|
||
|
||
// ====================================================================================================
|
||
// ====================================================================================================
|
||
|
||
#include <string>
|
||
#include <vector>
|
||
#include <algorithm>
|
||
#include <cmath>
|
||
#include <stdexcept>
|
||
#include <memory>
|
||
|
||
|
||
class BasicInf
|
||
{
|
||
public:
|
||
BasicInf(bool hasIntact = true, bool hasInclining = true, bool hasDamProb = false);
|
||
|
||
BasicInf();
|
||
|
||
// #region 公共
|
||
std::string ShipName; // 船名
|
||
std::string Design; // 设计单位
|
||
std::string Signature; //计算签名,20170901 added by czb
|
||
std::string CalDate; // 计算日期
|
||
std::string WorkNo; // 控制号,20161209 by czb
|
||
|
||
int Origin = 0; // 原点位置,-1;0;1,船尾、船舯、船首
|
||
int XType = 0; //X坐标类型
|
||
double OrgOff = 0.0; // 船壳模型的原点相对于船中的偏移量
|
||
|
||
/// <summary>
|
||
/// 用户坐标系下的艉垂线坐标
|
||
/// </summary>
|
||
double getXofAP() const;
|
||
|
||
/// <summary>
|
||
/// 用户坐标系下的舯垂线坐标
|
||
/// </summary>
|
||
double getXofMP() const;
|
||
|
||
/// <summary>
|
||
/// 用户坐标系下的艏垂线坐标
|
||
/// </summary>
|
||
double getXofFP() const;
|
||
|
||
/// <summary>
|
||
/// 尾垂线为原点的X坐标,转换为用户坐标(原点由Orgin决定)
|
||
/// </summary>
|
||
double XofAP2User(double x); //20160906新增
|
||
|
||
/// <summary>
|
||
/// 用户指定原点的X坐标(原点由Orgin决定),转换为尾垂线原点的X坐标
|
||
/// </summary>
|
||
double XofUser2AP(double x); //20160906新增
|
||
|
||
/// <summary>
|
||
/// 船舯为原点的X坐标,转换为用户坐标(原点由Orgin决定)
|
||
/// </summary>
|
||
double XofMP2User(double x); //20160906新增
|
||
|
||
/// <summary>
|
||
/// 用户指定原点的X坐标(原点由Orgin决定),转换为船舯原点的坐标
|
||
/// </summary>
|
||
double XofUser2MP(double x); //20160906新增
|
||
|
||
/// <summary>
|
||
/// 肋位表X值
|
||
/// </summary>
|
||
std::vector<double> LabelX;
|
||
bool IsCatamaran = false; // 双体船
|
||
double Lpp = 0.0; // 垂线间长 m ,数据集对象尚未添加相应内容 2016.6.24
|
||
double L = 0.0; // 船长 m
|
||
double B = 0.0; // 船宽 m
|
||
double D = 0.0; // 型深 m
|
||
double d = 0.0; // 吃水 m
|
||
//public double DraftEvalMax; // 最大计算吃水 m
|
||
//public double DraftEvalInterval; // 吃水计算间隔 m
|
||
std::string DraftList; // 计算吃水列表,从小到大排列,分号、冒号、逗号、空格作为分隔符
|
||
std::vector<double> Draft; // 计算吃水列表,从小到大排列
|
||
// #endregion
|
||
|
||
// #region 静水力、完整稳性、破损稳性、许用重心高度
|
||
double Density = 0.0; // 舷外水密度 t/m3
|
||
//public int HullAffect; // 船壳计入方式 ,调整到Shell表格 20161024 by czb
|
||
//public double HullAffectCoef; // 船壳系数/平均板厚 mm ,调整到Shell表格 20161024 by czb
|
||
std::vector<double> Trims; // 静水力计算纵倾数据表,m,0为第一个
|
||
double AngleEvalMax = 0.0; // 角度曲线、稳性曲线最大计算横倾角 deg
|
||
double AngleEvalInterval = 0.0; // 角度曲线、稳性曲线横倾角计算间隔 deg
|
||
// #endregion
|
||
|
||
// #region 完整稳性、破损稳性、许用重心高度
|
||
std::string ShipType; // 船舶类型
|
||
//public int ChildType; // 船舶子类
|
||
bool IsSelfNav = false; // 自航船
|
||
bool IsHighspeed = false; //高速船,20190225增加高速船项 added by czb
|
||
bool IsBox = false; // 箱型船体
|
||
bool IsDoubleDeck = false; // 双甲板船 20201214 by czb 远洋渔船
|
||
/// <summary>
|
||
/// 航区, A、B、C、T(特定航线江海直达)、U(无限/远洋Unrestricted)、G(近海Greater Coastal)、C(沿海Coastal)、S(遮蔽Sheltered)
|
||
/// </summary>
|
||
std::string NavArea; // 航区
|
||
int NavSeg = 0; // 航段
|
||
double Vm = 0.0; // 最大航速 m/s
|
||
bool IsFullWindScale = false; // 非满实受风面积按满实面积取
|
||
//public double FullWindScaleArea; // 非满实面积相对满实面积比值,20160801删除此输入参数
|
||
//public double FullWindScaleMoment; // 非满实面积静矩相对满实面积静矩比值,20160801删除此输入参数
|
||
std::string ProfileYList; // 侧投影计算纵剖面列表,分号、冒号、逗号、空格作为分隔符,20160912新增
|
||
std::vector<double> ProfileY; // 侧投影计算纵剖面列表,20160912新增
|
||
double BilgeKeelArea = 0.0; // 舭龙骨总面积 m2
|
||
int BilgeType = 0; // 舭部型式
|
||
double BilgeC2 = 0.0; // 舭部系数C2
|
||
double BilgeC3 = 0.0; // 舭部系数C3
|
||
double BilgeC4 = 0.0; // 舭部系数C4
|
||
bool HasMudHold = false; // 设有泥舱
|
||
double StaticAngleReq = 0.0; // 正常作业许用极限静倾角 deg
|
||
bool IsStaticAngleReturnTest = false; // 实船试验确定回航极限静倾角, 20190405 added by czb
|
||
double TankCapStep = 0.0; //舱容曲线计算步长 20190601 added by czb
|
||
double RollingPeriod = 0.0; // 渔船横摇周期 20201214 by czb 远洋渔船,如为Double.NaN,则软件自动按法规的近似公式计算
|
||
double RollingAngle = 0.0; // 渔船横摇角 20201214 by czb 远洋渔船
|
||
//public string CriteriaFactor; // 衡准因素
|
||
std::string IntactRemark; // 完整稳性备注,20170601 by czb
|
||
|
||
double Vd = 0.0; // //cqr-20190302 高速船报告输出 代码改1
|
||
// #endregion
|
||
|
||
// #region 概率破损稳性 //20210803 by czb
|
||
double Ls_p = 0.0; //分舱长度
|
||
double Xa_p = 0.0; //分舱长度尾端点X坐标
|
||
double Bs_p = 0.0; //最深水线船宽
|
||
// #endregion
|
||
|
||
// #region 倾斜试验
|
||
|
||
/// <summary>
|
||
/// 倾斜试验水域舷外水密度
|
||
/// </summary>
|
||
double IncliningDensity = 0.0;
|
||
|
||
/// <summary>
|
||
/// 原始纵倾,deg
|
||
/// </summary>
|
||
double AT = 0.0;
|
||
|
||
/// <summary>
|
||
/// 倾斜试验初始横倾,deg
|
||
/// </summary>
|
||
double IncliningAH0 = 0.0;
|
||
|
||
|
||
/// <summary>
|
||
/// 倾斜试验移动重量组数
|
||
/// </summary>
|
||
int IncliningMobileWeightNo = 0;
|
||
|
||
/// <summary>
|
||
/// 倾斜试验横倾测量设备类型
|
||
/// 1-挂摆;2-两端读数U型管;3-一端读数U型管;4-倾斜仪
|
||
/// </summary>
|
||
int IncliningDeviceType = 0;
|
||
|
||
|
||
/// <summary>
|
||
/// 倾斜试验横倾测量设备组数
|
||
/// 1~5
|
||
/// </summary>
|
||
int IncliningDeviceNo = 0;
|
||
|
||
/// <summary>
|
||
/// 倾斜试验读数记录次数
|
||
/// 0~9
|
||
/// </summary>
|
||
int IncliningRecordNo = 0;
|
||
|
||
|
||
/// <summary>
|
||
/// 倾斜试验倾角算法
|
||
/// 1-相对法;2-绝对法
|
||
/// </summary>
|
||
int IncliningAngleAlgorithm = 0;
|
||
|
||
|
||
/// <summary>
|
||
/// 倾斜试验实测初稳性高算法
|
||
/// 1-最小二乘法;2-算数平均法
|
||
/// </summary>
|
||
int IncliningGMAlgorithm = 0;
|
||
|
||
// #endregion
|
||
|
||
|
||
};
|
||
|
||
/*
|
||
|
||
/// <summary>
|
||
/// 船舶类型
|
||
/// 内法规:1-客船;2-干货船;3-液货船;4-推拖船;5-消防船;6-集装箱船;7-起重船;8-挖泥船;9-趸船
|
||
/// 特定航线法规:101-散货船,102-集装箱船, 103-商品汽车滚装船 20180604 added by czb
|
||
/// 远洋渔船法规:201-普通渔船;202-桁拖网渔船;203-罩网船;204-笼捕船 20201214 added by czb
|
||
/// </summary>
|
||
enum class ShipType
|
||
{
|
||
PassengerShip = 1,
|
||
DryCargoShip = 2,
|
||
Tanker = 3,
|
||
Tug = 4,
|
||
FireBoat = 5,
|
||
ContainerShip = 6,
|
||
CraneShip = 7,
|
||
Dredger = 8,
|
||
Pontoon = 9,
|
||
T_BulkcargoShip = 101, //江海直达散货船
|
||
T_ContainerShip = 102, //江海直达集装箱船
|
||
T_RoRoShip = 103, //江海直达商品汽车滚装船
|
||
O_GeneralFisher = 201, //远洋普通渔船
|
||
O_TrussTrawler = 202, //远洋桁拖网渔船
|
||
O_NetFisher = 203, //远洋罩网船
|
||
O_CageFisher = 204 //远洋笼捕船
|
||
};
|
||
|
||
/// <summary>
|
||
/// 船舶子类
|
||
/// 0-无;101-静倾受限型客船;102-漓江游览船;111-水翼船;112-全垫升气垫船;113-水面效应船;201-散装水泥船;301-浮油回收船
|
||
/// 701-旋转吊臂式起重船;702-固定吊臂式起重船;703-打桩船;704-旋转输送臂自卸砂船
|
||
/// 801-绞吸式挖泥船;802-耙吸式挖泥船;803-链斗式挖泥船;804-抓斗式挖泥船
|
||
/// </summary>
|
||
enum class ChildShipType
|
||
{
|
||
None = 0,
|
||
LimitedPassengerShip = 101,
|
||
LijiangCruiseShip = 102, //20200428 by czb,added 漓江游览船
|
||
HydrofoilShip = 111, //cqr-20190302 高速船,水翼船
|
||
AirCushionCraft = 112, //全垫升气垫船
|
||
SurfaceEffectCraft = 113, //水面效应船
|
||
|
||
BulkCementShip = 201,
|
||
OilRecoveryShip = 301, //20200428 by czb, added 浮油回收船
|
||
RotatableArm_CraneShip = 701,
|
||
FixedArm_CraneShip = 702,
|
||
PilingShip = 703,
|
||
RotatableArm_SelfunloadingShip = 704,
|
||
CutterSuction_Dredger = 801, //绞吸式挖泥船
|
||
TrailingSuction_Dredger = 802, //耙吸式挖泥船
|
||
ChainBucket_Dredger = 803, //链斗式挖泥船
|
||
Grab_Dredger = 804 //抓斗式挖泥船
|
||
};
|
||
*/
|
||
/// <summary>
|
||
/// 航段
|
||
/// 0-无;1-J1;2-J2
|
||
/// </summary>
|
||
|
||
/*
|
||
enum NavSeg
|
||
{
|
||
None = 0,
|
||
J1 = 1,
|
||
J2 = 2
|
||
};
|
||
*/
|
||
/// <summary>
|
||
/// -1-尾垂线;0-船舯;1-船首
|
||
/// </summary>
|
||
enum XOriginType
|
||
{
|
||
Stern = -1,
|
||
Amidship = 0,
|
||
Bow = 1
|
||
};
|
||
|
||
/// <summary>
|
||
/// 空船重量类型
|
||
/// 1-船体结构;2-木作舾装;3-机电设备;4-固定压载
|
||
/// </summary>
|
||
enum LwtType
|
||
{
|
||
Structure = 1,
|
||
Outfittin = 2,
|
||
Equipment = 3,
|
||
FixedBallast = 4
|
||
};
|
||
|
||
/// <summary>
|
||
/// 装载重量类型
|
||
/// 20161118 by czb,0-其他;1-压载水;2-油水
|
||
/// </summary>
|
||
enum LoadWeightType
|
||
// 0-其他;1-干货;2-液货;3-压载水;4-油水
|
||
{
|
||
Other = 0,
|
||
DryCargo = 1,
|
||
LiquidCargo = 2,
|
||
BallastWater = 3,
|
||
Oil_Water = 4
|
||
};
|
||
///// <summary>
|
||
///// 舱室类型
|
||
///// 0-其他;1-储物处所;2-机器处所;3-空舱处所;4-起居处所;5-干货处所;6-液体处所
|
||
///// </summary>
|
||
//public enum CompartmentType
|
||
//{
|
||
// Other = 0,
|
||
// StorageSpace = 1,
|
||
// MachinerySpace = 2,
|
||
// EmptySpace = 3,
|
||
// LivingSpace = 4,
|
||
// DryCargoSpace = 5,
|
||
// Tank = 6
|
||
//}
|
||
|
||
/// <summary>
|
||
/// 舱室类型
|
||
/// 0-其他;1-储物处所;2-机器处所;3-空舱处所;4-起居处所;5-散货舱;6-集装箱货舱;7-滚装处所;8-杂货舱;9-其他干货舱;
|
||
/// 10-压载舱;11-燃油舱;12-柴油舱;13-滑油舱;14-淡水舱;15-液货舱;16-其他液舱;17-鱼货处所
|
||
/// </summary>
|
||
/*
|
||
enum CompartmentType
|
||
{
|
||
Other = 0,
|
||
StorageSpace = 1,
|
||
MachinerySpace = 2,
|
||
EmptySpace = 3,
|
||
LivingSpace = 4,
|
||
BulkSpace = 5,
|
||
ContainerSpace = 6,
|
||
ROROSpace = 7,
|
||
GeneralCargoSpace = 8,
|
||
OtheDryCargoSpace = 9,
|
||
BallastTank = 10,
|
||
FueloilTank = 11,
|
||
DieseloilTank = 12,
|
||
LubricatingoilTank = 13,
|
||
FreshwaterTank = 14,
|
||
CargoTank = 15, //液货舱
|
||
OtherTank = 16,
|
||
FishCargo = 17 //鱼货处所, 20201214 by czb add
|
||
};
|
||
*/
|
||
/// <summary>
|
||
/// 受风项类型
|
||
/// 0-其他;1-加网栏杆;2-无网栏杆;3-桁架结构;4-横桁和索具;5-圆剖面物体;6-起吊物体;7-货物;8-网具
|
||
/// </summary>
|
||
/*
|
||
enum WindType
|
||
{
|
||
Other = 0,
|
||
NettingRail = 1,
|
||
CommonRail = 2,
|
||
TrussStructure = 3,
|
||
Spar_Rig = 4,
|
||
CircularSectionObject = 5,
|
||
LiftingObject = 6,
|
||
Cargo = 7,
|
||
Net = 8 //20201214 by czb, 远洋渔船
|
||
};
|
||
*/
|
||
/// <summary>
|
||
/// 校核状态
|
||
/// 1-航行/停泊;2-作业;3-避风;4-装卸
|
||
/// </summary>
|
||
enum CheckState
|
||
{
|
||
Sailing = 1,
|
||
Working = 2,
|
||
Safing = 3,
|
||
Loading = 4,
|
||
Immersion = 5 // 增加浸水工况, cqr-20170725
|
||
};
|
||
|
||
/// <summary>
|
||
/// 衡准因素
|
||
/// 1-突风;2-集舷;3-散货;0-自定义力矩
|
||
/// 增加4-甲板货 , cqr-20170725
|
||
/// </summary>
|
||
enum CriteriaFactor
|
||
{
|
||
CustomMoment = 0,
|
||
GustWind = 1,
|
||
FocusSide = 2,
|
||
BulkSlip = 3,
|
||
DeckCargo = 4
|
||
};
|
||
|
||
/// <summary>
|
||
/// 倾斜试验设备类型
|
||
/// 1-挂摆;2-两端读数U型管;3-一端读数U型管;4-倾斜仪
|
||
/// </summary>
|
||
enum IncliningDeviceType
|
||
{
|
||
HangingPendulum = 1,
|
||
U_Tube_2 = 2,
|
||
U_Tube_1 = 3,
|
||
Clinometer = 4
|
||
};
|
||
|
||
/// <summary>
|
||
/// 倾斜试验倾角算法
|
||
/// 1-相对法;2-绝对法
|
||
/// </summary>
|
||
enum IncliningAngleAlgorithm
|
||
{
|
||
Relative = 1,
|
||
Absolute = 2
|
||
};
|
||
|
||
/// <summary>
|
||
/// 实测初稳性高算法
|
||
/// 1-最小二乘法;2-算数平均法
|
||
/// </summary>
|
||
enum IncliningGMAlgorithm
|
||
{
|
||
LeastSquare = 1,
|
||
ArithmeticMean = 2
|
||
};
|
||
|
||
/*
|
||
/// <summary>
|
||
/// 稳性衡准标准
|
||
/// </summary>
|
||
enum class StabCrRule //20180701 modified by czb, 从Interface类搬移到该处
|
||
{
|
||
CN_IS_2011 = 1, //内法规2011
|
||
CN_IS_2015 = 2, //内法规2015
|
||
CN_IS_2016 = 3, //内法规2016
|
||
CN_IS_2018 = 4, //内法规2018 //20190705 added by czb
|
||
CN_IS_2019 = 5, //内法规2019 //20200428 by czb,added
|
||
CN_IB_2009 = 101, //内河散化船法规2009
|
||
CN_IC_2009 = 201, //内河液化船法规2009
|
||
CN_RS_2018 = 1001, //特定航线江海直达2018 //20180701 added by czb
|
||
CN_OF_2019 = 2001 //远洋渔船法规2019 //20201214 added by czb
|
||
};
|
||
*/
|
||
/// <summary>
|
||
/// 概率破损工况类型
|
||
/// </summary>
|
||
enum DamcaseProbType
|
||
{
|
||
Deepest = 0, //最深吃水
|
||
PartLoad = 1, // 部分装载吃水
|
||
LightLoad = 2 // 轻载吃水
|
||
};
|
||
|
||
|