Lodestar
An integrated real-time control package in C++
Integrator.hpp
1 //
2 // Created by Hamza El-Kebir on 4/12/21.
3 //
4 
5 #ifndef LODESTAR_INTEGRATOR_HPP
6 #define LODESTAR_INTEGRATOR_HPP
7 
8 namespace ls {
9  namespace primitives {
10  template<typename TState>
11  class Integrator {
12  public:
13  template<typename> friend
14  class Integrator;
15 
16  virtual void updateState() = 0;
17 
18  virtual void updateState(double samplingPeriod) = 0;
19 
20  virtual void updateState(TState *curState) = 0;
21 
22  virtual void updateState(double samplingPeriod, TState *curState) = 0;
23 
24  virtual const TState *getState() const = 0;
25 
26  virtual void setState(const TState &state) = 0;
27 
28  virtual double updateTime() = 0;
29 
30  virtual double updateTime(double samplingPeriod) = 0;
31 
32  virtual double getTime() const = 0;
33 
34  virtual const TState *getIntegral() const = 0;
35 
36  protected:
37  TState *state_;
38  TState *integral_;
39 
40  double samplingPeriod_;
41  double time_;
42  };
43  }
44 }
45 
46 #endif //LODESTAR_INTEGRATOR_HPP
ls::primitives::Integrator
Definition: Integrator.hpp:11
ls
Main Lodestar code.
Definition: BilinearTransformation.hpp:12