SimsWorld/MessageBasic/visiblecube_access.h

91 lines
2.0 KiB
C++

#pragma once
#include "messagebasic.h"
// 体积盒可视化插件定义消息 =======================================================
/// <summary>
/// 获取体积盒详细数据
/// </summary>
struct MESSAGEBASIC_EXPORT Get3DBox : public AbstractMessage {
Get3DBox();
std::shared_ptr<Serializable> newDefault() const override;
};
/// <summary>
/// 姿态数据结构定义
/// </summary>
struct Posture {
double _azimuth_deg = 0;
double _pitch_deg = 0;
double _roll_deg = 0;
};
/// <summary>
/// 三维数据结构定义
/// </summary>
struct VolumeData {
double _length_m = 0;
double _width_m = 0;
double _height_m = 0;
};
/// <summary>
/// 体积盒详细数据定义
/// </summary>
struct MESSAGEBASIC_EXPORT Box3DDesc : public AbstractMessage {
VolumeData _d3_data;
Posture _posture_d3;
LonLatAlt _lla_pos;
Box3DDesc();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 设置三维数据
/// </summary>
struct MESSAGEBASIC_EXPORT Set3DBoxD3Data : public AbstractMessage {
VolumeData _d3_data;
Set3DBoxD3Data();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 设置姿态数据
/// </summary>
struct MESSAGEBASIC_EXPORT Set3DBoxPosture : public AbstractMessage
{
Posture _posture_d3;
Set3DBoxPosture();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 设置地理定位
/// </summary>
struct MESSAGEBASIC_EXPORT Set3DBoxLLAPos : public AbstractMessage
{
LonLatAlt _lla_pos;
Set3DBoxLLAPos();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};