mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 13:20:04 +00:00
Expose i and j from LinkedVectorPacket
This commit is contained in:
parent
17368b2404
commit
5d828b0819
2 changed files with 67 additions and 5 deletions
|
|
@ -6,6 +6,8 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|
||||||
|
#include <units/length.h>
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
{
|
{
|
||||||
namespace wsr88d
|
namespace wsr88d
|
||||||
|
|
@ -21,17 +23,27 @@ public:
|
||||||
explicit LinkedVectorPacket();
|
explicit LinkedVectorPacket();
|
||||||
~LinkedVectorPacket();
|
~LinkedVectorPacket();
|
||||||
|
|
||||||
LinkedVectorPacket(const LinkedVectorPacket&) = delete;
|
LinkedVectorPacket(const LinkedVectorPacket&) = delete;
|
||||||
LinkedVectorPacket& operator=(const LinkedVectorPacket&) = delete;
|
LinkedVectorPacket& operator=(const LinkedVectorPacket&) = delete;
|
||||||
|
|
||||||
LinkedVectorPacket(LinkedVectorPacket&&) noexcept;
|
LinkedVectorPacket(LinkedVectorPacket&&) noexcept;
|
||||||
LinkedVectorPacket& operator=(LinkedVectorPacket&&) noexcept;
|
LinkedVectorPacket& operator=(LinkedVectorPacket&&) noexcept;
|
||||||
|
|
||||||
uint16_t packet_code() const override;
|
std::uint16_t packet_code() const override;
|
||||||
uint16_t length_of_block() const;
|
std::uint16_t length_of_block() const;
|
||||||
std::optional<uint16_t> value_of_vector() const;
|
std::optional<std::uint16_t> value_of_vector() const;
|
||||||
|
|
||||||
size_t data_size() const override;
|
std::int16_t start_i() const;
|
||||||
|
std::int16_t start_j() const;
|
||||||
|
std::vector<std::int16_t> end_i() const;
|
||||||
|
std::vector<std::int16_t> end_j() const;
|
||||||
|
|
||||||
|
units::kilometers<double> start_i_km() const;
|
||||||
|
units::kilometers<double> start_j_km() const;
|
||||||
|
std::vector<units::kilometers<double>> end_i_km() const;
|
||||||
|
std::vector<units::kilometers<double>> end_j_km() const;
|
||||||
|
|
||||||
|
std::size_t data_size() const override;
|
||||||
|
|
||||||
bool Parse(std::istream& is) override;
|
bool Parse(std::istream& is) override;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,56 @@ std::optional<uint16_t> LinkedVectorPacket::value_of_vector() const
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::int16_t LinkedVectorPacket::start_i() const
|
||||||
|
{
|
||||||
|
return p->startI_;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::int16_t LinkedVectorPacket::start_j() const
|
||||||
|
{
|
||||||
|
return p->startJ_;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::int16_t> LinkedVectorPacket::end_i() const
|
||||||
|
{
|
||||||
|
return p->endI_;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::int16_t> LinkedVectorPacket::end_j() const
|
||||||
|
{
|
||||||
|
return p->endJ_;
|
||||||
|
}
|
||||||
|
|
||||||
|
units::kilometers<double> LinkedVectorPacket::start_i_km() const
|
||||||
|
{
|
||||||
|
return units::kilometers<double> {p->startI_ * 0.25};
|
||||||
|
}
|
||||||
|
|
||||||
|
units::kilometers<double> LinkedVectorPacket::start_j_km() const
|
||||||
|
{
|
||||||
|
return units::kilometers<double> {p->startJ_ * 0.25};
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<units::kilometers<double>> LinkedVectorPacket::end_i_km() const
|
||||||
|
{
|
||||||
|
std::vector<units::kilometers<double>> endI;
|
||||||
|
for (const auto& i : p->endI_)
|
||||||
|
{
|
||||||
|
endI.emplace_back(units::kilometers<double> {i * 0.25});
|
||||||
|
}
|
||||||
|
return endI;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<units::kilometers<double>> LinkedVectorPacket::end_j_km() const
|
||||||
|
{
|
||||||
|
std::vector<units::kilometers<double>> endJ;
|
||||||
|
for (const auto& j : p->endJ_)
|
||||||
|
{
|
||||||
|
endJ.emplace_back(units::kilometers<double> {j * 0.25});
|
||||||
|
}
|
||||||
|
return endJ;
|
||||||
|
}
|
||||||
|
|
||||||
size_t LinkedVectorPacket::data_size() const
|
size_t LinkedVectorPacket::data_size() const
|
||||||
{
|
{
|
||||||
return p->lengthOfBlock_ + 4u;
|
return p->lengthOfBlock_ + 4u;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue