3 #include "combined/model/capsule.h" 4 #include "combined/model/hover.h" 5 #include "combined/model/min_size_vector.h" 7 #include "cereal/types/base_class.hpp" 14 min_size_vector<capsule, 1>,
17 explicit receiver(std::string name =
"new receiver",
18 glm::vec3 position = glm::vec3{0},
21 void set_name(std::string name);
22 std::string get_name()
const;
24 void set_position(
const glm::vec3& p);
25 glm::vec3 get_position()
const;
30 const auto& capsules()
const {
return get<0>(); }
31 auto& capsules() {
return get<0>(); }
34 const auto&
hover_state()
const {
return get<1>(); }
37 template <
typename Archive>
38 void serialize(Archive& archive) {
39 archive(*capsules(), name_, position_, orientation_);
42 NOTIFYING_COPY_ASSIGN_DECLARATION(
receiver)
44 void swap(
receiver& other) noexcept {
46 swap(name_, other.name_);
47 swap(position_, other.position_);
48 swap(orientation_, other.orientation_);
Definition: receiver.h:13
Definition: capsule_base.h:9
A vector which must hold some minimum number of elements.
Definition: min_size_vector.h:11
Invariant: pointing_ is a unit vector.
Definition: orientation.h:15