6#include <unordered_map>
10#ifndef MSGPACK_DEFINE_MAP
11#define MSGPACK_DEFINE_MAP(...)
24 std::map<std::string, double>
angles;
35 return !(*
this == other);
38 MSGPACK_NVP(
"or", origin_rot), MSGPACK_NVP(
"c", color),
39 MSGPACK_NVP(
"gt", geometry_type),
40 MSGPACK_NVP(
"gp", geometry_properties),
41 MSGPACK_NVP(
"fm", field_member),
42 MSGPACK_NVP(
"ff", field_field), MSGPACK_NVP(
"a", angles))
45 std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
components;
51 std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
data_diff;
52 std::optional<std::vector<SharedString>>
data_ids;
56 std::map<std::string, std::shared_ptr<Canvas3DComponentData>> data_diff,
57 std::optional<std::vector<SharedString>> data_ids)
58 : field(field), data_diff(std::move(data_diff)),
59 data_ids(std::move(data_ids)) {}
61 MSGPACK_NVP(
"l", data_ids))
65 std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
data_diff;
66 std::size_t length = 0;
70 const std::unordered_map<
int, std::shared_ptr<Canvas3DComponentData>>
73 : field(field), data_diff(), length(length) {
74 for (
const auto &vc : data_diff) {
75 this->data_diff.emplace(std::to_string(vc.first), vc.second);
80 const std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
83 : field(field), data_diff(data_diff), length(length) {}
85 MSGPACK_NVP(
"l", length))
89 :
public MessageBase<MessageKind::canvas3d + MessageKind::res> {
90 unsigned int req_id = 0;
92 std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
data_diff;
93 std::optional<std::vector<SharedString>>
data_ids;
96 const std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
98 const std::optional<std::vector<SharedString>> &data_ids)
99 : req_id(req_id), sub_field(sub_field), data_diff(data_diff),
100 data_ids(data_ids) {}
102 MSGPACK_NVP(
"d", data_diff), MSGPACK_NVP(
"l", data_ids))
106 :
public MessageBase<MessageKind::canvas3d_old + MessageKind::res> {
107 unsigned int req_id = 0;
109 std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
data_diff;
110 std::size_t length = 0;
113 const std::map<std::string, std::shared_ptr<Canvas3DComponentData>>
116 : req_id(req_id), sub_field(sub_field), data_diff(data_diff),
119 MSGPACK_NVP(
"d", data_diff), MSGPACK_NVP(
"l", length))
#define MSGPACK_DEFINE_MAP(...)
Definition base.h:11
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:67
#define WEBCFACE_MESSAGE_FMT(Type)
Definition fmt.h:21
std::array< double, 3 > origin_rot
Definition canvas3d.h:19
std::optional< SharedString > field_field
Definition canvas3d.h:23
int color
Definition canvas3d.h:20
Canvas3DComponentData()=default
std::array< double, 3 > origin_pos
Definition canvas3d.h:19
std::optional< SharedString > field_member
Definition canvas3d.h:23
bool operator==(const Canvas3DComponentData &other) const
Definition canvas3d.h:26
std::optional< int > geometry_type
Definition canvas3d.h:21
int type
Definition canvas3d.h:18
std::map< std::string, double > angles
Definition canvas3d.h:24
bool operator!=(const Canvas3DComponentData &other) const
Definition canvas3d.h:34
std::vector< double > geometry_properties
Definition canvas3d.h:22
std::map< std::string, std::shared_ptr< Canvas3DComponentData > > components
Definition canvas3d.h:45
std::vector< SharedString > data_ids
Definition canvas3d.h:46
Canvas3DOld(const SharedString &field, const std::map< std::string, std::shared_ptr< Canvas3DComponentData > > &data_diff, std::size_t length)
Definition canvas3d.h:78
SharedString field
Definition canvas3d.h:64
Canvas3DOld(const SharedString &field, const std::unordered_map< int, std::shared_ptr< Canvas3DComponentData > > &data_diff, std::size_t length)
Definition canvas3d.h:68
std::map< std::string, std::shared_ptr< Canvas3DComponentData > > data_diff
Definition canvas3d.h:65
std::optional< std::vector< SharedString > > data_ids
Definition canvas3d.h:52
Canvas3D(const SharedString &field, std::map< std::string, std::shared_ptr< Canvas3DComponentData > > data_diff, std::optional< std::vector< SharedString > > data_ids)
Definition canvas3d.h:54
SharedString field
Definition canvas3d.h:50
std::map< std::string, std::shared_ptr< Canvas3DComponentData > > data_diff
Definition canvas3d.h:51
型からkindを取得するためだけのベースクラス
Definition base.h:60
SharedString sub_field
Definition canvas3d.h:108
std::map< std::string, std::shared_ptr< Canvas3DComponentData > > data_diff
Definition canvas3d.h:109
Res(unsigned int req_id, const SharedString &sub_field, const std::map< std::string, std::shared_ptr< Canvas3DComponentData > > &data_diff, std::size_t length)
Definition canvas3d.h:112
std::optional< std::vector< SharedString > > data_ids
Definition canvas3d.h:93
Res(unsigned int req_id, const SharedString &sub_field, const std::map< std::string, std::shared_ptr< Canvas3DComponentData > > &data_diff, const std::optional< std::vector< SharedString > > &data_ids)
Definition canvas3d.h:95
SharedString sub_field
Definition canvas3d.h:91
std::map< std::string, std::shared_ptr< Canvas3DComponentData > > data_diff
Definition canvas3d.h:92
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117