Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
TankCalibrationData.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_TANKS_TANKCALIBRATIONDATA_HPP_
2#define IV_SRC_TANKS_TANKCALIBRATIONDATA_HPP_
3
4#include "math/structs.hpp"
5
6#include <map>
7#include <memory>
8#include <vector>
9
10namespace iv::tanks
11{
12
43
44class TrimCalibrationData : public std::map<iv::types::tankSoundingHeight, std::shared_ptr<iv::tanks::SoundingData>>
45{
46public:
47 void update(const TrimCalibrationData &other);
49 {
50 }
51
54
55 std::weak_ptr<iv::tanks::SoundingData> getSoundingDataAt(uint64_t index);
56
57 SoundingData interpolationWithSounding(double soundingHeight);
58
60};
61
62class TankCalibrationData : public std::map<iv::types::tankTrim, std::shared_ptr<TrimCalibrationData>>
63{
64public:
65 void update(const TankCalibrationData &other);
66 void load(file::xml::node &node);
67 void save(file::xml::node &node) const;
68
71
72 std::weak_ptr<iv::tanks::TrimCalibrationData> getCalibrationDataAt(uint64_t index);
73
74 [[nodiscard]] std::vector<iv::types::tankTrim> getIndexes() const;
75
77
79
80private:
81 struct Sections
82 {
83 static constexpr std::string_view calibrationTables {"CalibrationTables"};
84 static constexpr std::string_view soundingDatas {"SoundingDatas"};
85 static constexpr std::string_view calibrationTable {"CalibrationTable"};
86 };
87 struct Keys
88 {
89 static constexpr std::string_view trim {"Trim"};
90 static constexpr std::string_view sounding {"Sounding"};
91 static constexpr std::string_view volume {"Volume"};
92 static constexpr std::string_view xcg {"XCG"};
93 static constexpr std::string_view ycg {"YCG"};
94 static constexpr std::string_view zcg {"ZCG"};
95 static constexpr std::string_view it {"It"};
96 };
98 {
99 static constexpr double trim {0.};
100 static constexpr double sounding {0.};
101 static constexpr double volume {0.};
102 static constexpr double xcg {0.};
103 static constexpr double ycg {0.};
104 static constexpr double zcg {0.};
105 static constexpr double it {0.};
106 };
107};
108
109}// namespace iv::tanks
110
111#endif//IV_SRC_TANKS_TANKCALIBRATIONDATA_HPP_
Definition xmlFile.hpp:15
Definition TankCalibrationData.hpp:63
iv::types::tankSoundingHeight getMinSoundingTrimsCalibration() const
Definition TankCalibrationData.cpp:178
void update(const TankCalibrationData &other)
Definition TankCalibrationData.cpp:294
void save(file::xml::node &node) const
Definition TankCalibrationData.cpp:138
std::weak_ptr< iv::tanks::TrimCalibrationData > getCalibrationDataAt(uint64_t index)
Definition TankCalibrationData.cpp:194
SoundingData interpolationWithSounding(iv::types::tankTrim trim, iv::types::tankSoundingHeight soundingHeight)
Definition TankCalibrationData.cpp:231
bool existsTrim(iv::types::tankTrim trim, iv::types::tankTrim *key)
Definition TankCalibrationData.cpp:213
std::vector< iv::types::tankTrim > getIndexes() const
Definition TankCalibrationData.cpp:201
iv::types::tankSoundingHeight getMaxSoundingTrimsCalibration() const
Definition TankCalibrationData.cpp:162
void load(file::xml::node &node)
Definition TankCalibrationData.cpp:108
Definition TankCalibrationData.hpp:45
TrimCalibrationData(iv::types::tankTrim trim)
Definition TankCalibrationData.hpp:48
std::weak_ptr< iv::tanks::SoundingData > getSoundingDataAt(uint64_t index)
Definition TankCalibrationData.cpp:22
SoundingData interpolationWithSounding(double soundingHeight)
Definition TankCalibrationData.cpp:30
void update(const TrimCalibrationData &other)
Definition TankCalibrationData.cpp:91
iv::types::tankTrim m_trim
Definition TankCalibrationData.hpp:59
iv::types::tankSoundingHeight getMaxSoundingFromCalibrations() const
Definition TankCalibrationData.cpp:12
iv::types::tankSoundingHeight getMinSoundingFromCalibrations() const
Definition TankCalibrationData.cpp:17
Definition enums.hpp:5
double tankTrim
Definition types.hpp:84
double tankSoundingHeight
Definition types.hpp:86
double tankVolume
Definition types.hpp:85
double coord
Definition types.hpp:13
Definition structs.hpp:68
iv::types::coord x
Definition structs.hpp:103
iv::types::coord z
Definition structs.hpp:105
iv::types::coord y
Definition structs.hpp:104
Definition TankCalibrationData.hpp:14
SoundingData(double sounding)
Definition TankCalibrationData.hpp:17
iv::math::geometry::Point3d m_centerOfGravity
Definition TankCalibrationData.hpp:40
iv::types::tankVolume m_volume
Definition TankCalibrationData.hpp:39
SoundingData(iv::types::tankSoundingHeight sounding, iv::types::tankVolume volume, iv::types::coord xcg, iv::types::coord ycg, iv::types::coord zcg, double it)
Definition TankCalibrationData.hpp:28
iv::types::tankSoundingHeight m_soundingHeight
Definition TankCalibrationData.hpp:38
double m_transversalInertia
Definition TankCalibrationData.hpp:41
Definition TankCalibrationData.hpp:98
static constexpr double sounding
Definition TankCalibrationData.hpp:100
static constexpr double volume
Definition TankCalibrationData.hpp:101
static constexpr double ycg
Definition TankCalibrationData.hpp:103
static constexpr double zcg
Definition TankCalibrationData.hpp:104
static constexpr double it
Definition TankCalibrationData.hpp:105
static constexpr double trim
Definition TankCalibrationData.hpp:99
static constexpr double xcg
Definition TankCalibrationData.hpp:102
Definition TankCalibrationData.hpp:88
static constexpr std::string_view volume
Definition TankCalibrationData.hpp:91
static constexpr std::string_view zcg
Definition TankCalibrationData.hpp:94
static constexpr std::string_view ycg
Definition TankCalibrationData.hpp:93
static constexpr std::string_view it
Definition TankCalibrationData.hpp:95
static constexpr std::string_view trim
Definition TankCalibrationData.hpp:89
static constexpr std::string_view xcg
Definition TankCalibrationData.hpp:92
static constexpr std::string_view sounding
Definition TankCalibrationData.hpp:90
Definition TankCalibrationData.hpp:82
static constexpr std::string_view soundingDatas
Definition TankCalibrationData.hpp:84
static constexpr std::string_view calibrationTable
Definition TankCalibrationData.hpp:85
static constexpr std::string_view calibrationTables
Definition TankCalibrationData.hpp:83