#ifndef SIM_PROPAGATOR_H #define SIM_PROPAGATOR_H #include "sim/DESolver.h" #include #include namespace sim { class Propagator { public: Propagator(); ~Propagator(); void setInitialState(std::vector& initialState) { currentState = initialState; } const std::vector& getCurrentState() const { return currentState; } void runUntilTerminate(); void retainStates(bool s) { saveStates = s; } const std::vector>& getStates() const { return states; } void setTimeStep(double ts) { timeStep = ts; } private: double getForceX() { return 0.0; } double getForceY() { return 0.0; } double getForceZ() { return 0.0; } double getTorqueP() { return 0.0; } double getTorqueQ() { return 0.0; } double getTorqueR() { return 0.0; } double getMass() { return 0.0; } //private: std::unique_ptr integrator; std::vector currentState{0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; std::vector nextState{0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; bool saveStates{true}; double currentTime{0.0}; double timeStep{0.01}; std::vector> states; }; } // namespace sim #endif // SIM_PROPAGATOR_H