Bayes Filters Library
ParticleFilter.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 PARTICLEFILTER_H
9 #define PARTICLEFILTER_H
10 
16 
17 #include <memory>
18 
19 namespace bfl{
20  class ParticleFilter;
21 }
22 
23 
25 {
26 public:
27  virtual ~ParticleFilter() noexcept = default;
28 
29  bool skip(const std::string& what_step, const bool status) override;
30 
31 
32 protected:
33  ParticleFilter(std::unique_ptr<ParticleSetInitialization> initialization, std::unique_ptr<PFPrediction> prediction, std::unique_ptr<PFCorrection> correction, std::unique_ptr<Resampling> resampling) noexcept;
34 
35  ParticleFilter(const ParticleFilter& filter) noexcept = delete;
36 
37  ParticleFilter& operator=(const ParticleFilter& filter) noexcept = delete;
38 
39  ParticleFilter(ParticleFilter&& filter) noexcept = delete;
40 
41  ParticleFilter& operator=(ParticleFilter&& filter) noexcept = delete;
42 
44 
46 
48 
50 
51 
52 private:
53 
54  std::unique_ptr<ParticleSetInitialization> initialization_;
55 
56  std::unique_ptr<PFPrediction> prediction_;
57 
58  std::unique_ptr<PFCorrection> correction_;
59 
60  std::unique_ptr<Resampling> resampling_;
61 };
62 
63 #endif /* PARTICLEFILTER_H */
bfl
Port of boost::any for C++11 compilers.
Definition: AdditiveMeasurementModel.h:13
bfl::PFCorrection
Definition: PFCorrection.h:25
Resampling.h
bfl::ParticleFilter::~ParticleFilter
virtual ~ParticleFilter() noexcept=default
bfl::ParticleFilter::correction
PFCorrection & correction()
Definition: ParticleFilter.cpp:65
bfl::ParticleFilter::prediction
PFPrediction & prediction()
Definition: ParticleFilter.cpp:59
bfl::PFPrediction
Definition: PFPrediction.h:25
bfl::ParticleFilter::ParticleFilter
ParticleFilter(std::unique_ptr< ParticleSetInitialization > initialization, std::unique_ptr< PFPrediction > prediction, std::unique_ptr< PFCorrection > correction, std::unique_ptr< Resampling > resampling) noexcept
Definition: ParticleFilter.cpp:14
bfl::ParticleFilter::initialization
ParticleSetInitialization & initialization()
Definition: ParticleFilter.cpp:53
bfl::ParticleFilter::resampling
Resampling & resampling()
Definition: ParticleFilter.cpp:71
PFPrediction.h
ParticleSetInitialization.h
FilteringAlgorithm.h
bfl::ParticleFilter::initialization_
std::unique_ptr< ParticleSetInitialization > initialization_
Definition: ParticleFilter.h:54
bfl::ParticleFilter::correction_
std::unique_ptr< PFCorrection > correction_
Definition: ParticleFilter.h:58
bfl::ParticleFilter::skip
bool skip(const std::string &what_step, const bool status) override
Definition: ParticleFilter.cpp:28
bfl::FilteringAlgorithm
Definition: FilteringAlgorithm.h:26
PFCorrection.h
bfl::Resampling
Definition: Resampling.h:22
bfl::ParticleFilter
Definition: ParticleFilter.h:24
bfl::ParticleSetInitialization
Definition: ParticleSetInitialization.h:20
bfl::ParticleFilter::prediction_
std::unique_ptr< PFPrediction > prediction_
Definition: ParticleFilter.h:56
bfl::ParticleFilter::resampling_
std::unique_ptr< Resampling > resampling_
Definition: ParticleFilter.h:60
bfl::ParticleFilter::operator=
ParticleFilter & operator=(const ParticleFilter &filter) noexcept=delete