5 #ifndef LODESTAR_INTEGRATORNEWTON_HPP
6 #define LODESTAR_INTEGRATORNEWTON_HPP
8 #include "../Integrator.hpp"
11 namespace primitives {
15 template<
typename TState>
19 using Base::samplingPeriod_;
22 using Base::integral_;
34 void updateState(
double dt);
36 void updateState(TState *_state);
38 void updateState(
double dt, TState *state);
40 const TState *getState()
const;
42 void setState(
const TState &state);
46 double updateTime(
double dt);
48 double getTime()
const;
50 const TState *getIntegral()
const;
55 template<
typename TState>
58 samplingPeriod_ = 1e-3;
60 state_ =
new TState{};
61 integral_ =
new TState{};
64 template<
typename TState>
69 state_ =
new TState{};
70 integral_ =
new TState{};
73 template<
typename TState>
76 samplingPeriod_ = 1e-3;
79 integral_ =
new TState{};
82 template<
typename TState>
89 integral_ =
new TState{};
92 template<
typename TState>
96 (*integral_) += (*state_) * samplingPeriod_;
99 template<
typename TState>
103 (*integral_) += (*state_) * dt;
106 template<
typename TState>
110 (*state_) = (*state);
111 (*integral_) += (*state_) * samplingPeriod_;
114 template<
typename TState>
119 (*state_) = (*state);
120 (*integral_) += (*state_) * dt;
123 template<
typename TState>
129 template<
typename TState>
132 time_ += samplingPeriod_;
136 template<
typename TState>
143 template<
typename TState>
149 template<
typename TState>
155 template<
typename TState>
161 #endif //LODESTAR_INTEGRATORNEWTON_HPP