Bayes Filters Library
VectorDescription.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2019 Istituto Italiano di Tecnologia (IIT)
3  *
4  * This software may be modified and distributed under the terms of the
5  * BSD 3-Clause license. See the accompanying LICENSE file for details.
6  */
7 
8 #ifndef VECTORDESCRIPTION_H
9 #define VECTORDESCRIPTION_H
10 
11 #include <cstddef>
12 
13 namespace bfl {
14  class VectorDescription;
15 }
16 
17 
19 {
20 public:
21  enum class CircularType { Euler, Quaternion };
22 
23  VectorDescription() = default;
24 
25  VectorDescription(const std::size_t linear_components, const std::size_t circular_components = 0, const std::size_t noise_components = 0, const CircularType& circular_type = CircularType::Euler);
26 
27  ~VectorDescription() = default;
28 
29  std::size_t linear_components() const;
30 
31  std::size_t circular_components() const;
32 
33  std::size_t noise_components() const;
34 
35  std::size_t linear_size() const;
36 
37  std::size_t circular_size() const;
38 
39  std::size_t noise_size() const;
40 
41  std::size_t total_size() const;
42 
43  std::size_t dof_size() const;
44 
45  void add_noise_components(const std::size_t& components);
46 
48 
50 
51 private:
52 
53  std::size_t linear_components_ = 0;
54 
55  std::size_t circular_components_ = 0;
56 
57  std::size_t noise_components_ = 0;
58 };
59 
60 #endif /* VECTORDESCRIPTION_H */
bfl::VectorDescription::dof_size
std::size_t dof_size() const
Definition: VectorDescription.cpp:72
bfl::VectorDescription::noise_components
std::size_t noise_components() const
Definition: VectorDescription.cpp:39
bfl::VectorDescription::CircularType
CircularType
Definition: VectorDescription.h:21
bfl::VectorDescription::circular_components_
std::size_t circular_components_
Definition: VectorDescription.h:55
bfl::VectorDescription::linear_components
std::size_t linear_components() const
Definition: VectorDescription.cpp:27
bfl::VectorDescription::noise_size
std::size_t noise_size() const
Definition: VectorDescription.cpp:60
bfl::VectorDescription::~VectorDescription
~VectorDescription()=default
bfl
Port of boost::any for C++11 compilers.
Definition: AdditiveMeasurementModel.h:13
bfl::VectorDescription::linear_components_
std::size_t linear_components_
Definition: VectorDescription.h:53
bfl::VectorDescription::CircularType::Quaternion
@ Quaternion
bfl::VectorDescription::noise_components_
std::size_t noise_components_
Definition: VectorDescription.h:57
bfl::VectorDescription::noiseless_description
VectorDescription noiseless_description() const
Definition: VectorDescription.cpp:91
bfl::VectorDescription::CircularType::Euler
@ Euler
bfl::VectorDescription::linear_size
std::size_t linear_size() const
Definition: VectorDescription.cpp:45
bfl::VectorDescription::circular_components
std::size_t circular_components() const
Definition: VectorDescription.cpp:33
bfl::VectorDescription::circular_size
std::size_t circular_size() const
Definition: VectorDescription.cpp:51
bfl::VectorDescription::total_size
std::size_t total_size() const
Definition: VectorDescription.cpp:66
bfl::VectorDescription::circular_type
CircularType circular_type
Definition: VectorDescription.h:49
bfl::VectorDescription::VectorDescription
VectorDescription()=default
bfl::VectorDescription::add_noise_components
void add_noise_components(const std::size_t &components)
Definition: VectorDescription.cpp:85
bfl::VectorDescription
Definition: VectorDescription.h:18