Wayverb
hrtf.h
1 #pragma once
2 
3 #include "combined/model/member.h"
4 
5 #include "core/attenuator/hrtf.h"
6 #include "core/serialize/attenuators.h"
7 
8 namespace wayverb {
9 namespace combined {
10 namespace model {
11 
12 class hrtf final : public basic_member<hrtf> {
13 public:
14  hrtf() = default;
15  hrtf(const core::orientation& o, core::attenuator::hrtf::channel channel);
16 
17  void set_orientation(const core::orientation& o);
18  void set_channel(core::attenuator::hrtf::channel channel);
19 
20  core::attenuator::hrtf get() const;
21 
22  template <typename Archive>
23  void serialize(Archive& archive) {
24  archive(hrtf_);
25  }
26 
27  NOTIFYING_COPY_ASSIGN_DECLARATION(hrtf)
28 private:
29  void swap(hrtf& other) noexcept {
30  using std::swap;
31  swap(hrtf_, other.hrtf_);
32  }
33 
35 };
36 
37 bool operator==(const hrtf& a, const hrtf& b);
38 bool operator!=(const hrtf& a, const hrtf& b);
39 
40 } // namespace model
41 } // namespace combined
42 } // namespace wayverb
Definition: hrtf.h:12
Definition: hrtf.h:12
Definition: capsule_base.h:9
Invariant: pointing_ is a unit vector.
Definition: orientation.h:15