SimsWorld/ComponentBasic/VisibleCube.h

41 lines
1.3 KiB
C++

#pragma once
#include "componentbasic.h"
#include <messagebasic.h>
#include <QVariant>
#include <visiblecube_access.h>
/// <summary>
/// ¿ÉÊÓ»¯3dÌå»ýºÐ
/// </summary>
class COMPONENTBASIC_EXPORT VisibleCubePlugin :
public RespondRoute<
WsRespond<Get3DBox, Box3DDesc>,
WsRespond<Set3DBoxD3Data, RespondDefault>,
WsRespond<Set3DBoxLLAPos, RespondDefault>,
WsRespond<Set3DBoxPosture, RespondDefault>>,
public RequestRoute<>
{
public:
std::weak_ptr<WsEntity> _bind_entity;
VolumeData _self_d3;
LonLatAlt _self_lla;
Posture _self_posture;
public:
explicit VisibleCubePlugin() = default;
// ͨ¹ý ProcList ¼Ì³Ð
QString bindDataTopic() const override;
void bindEntity(std::weak_ptr<WsEntity> ins) override;
QString name() const override;
void execute(std::shared_ptr<const Get3DBox> in, QList<std::shared_ptr<Box3DDesc>>& out) override;
void execute(std::shared_ptr<const Set3DBoxD3Data> in, QList<std::shared_ptr<RespondDefault>>& out) override;
void execute(std::shared_ptr<const Set3DBoxLLAPos> in, QList<std::shared_ptr<RespondDefault>>& out) override;
void execute(std::shared_ptr<const Set3DBoxPosture> in, QList<std::shared_ptr<RespondDefault>>& out) override;
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};