// // Created by jholder on 22.10.21. // #pragma once #include #include "Compute.h" #include "Rod2d.hpp" #include "Simulation.h" class Calculation { private: Rod2d rod = Rod2d(1.0); Simulation sim; std::function m_integrator; std::vector computes; public: const Simulation &getSim() const; Calculation( std::function, std::function)> t_integrator, std::initializer_list> t_computes, double deltaT, size_t seed, std::function force, std::function torque); explicit Calculation( std::function t_integrator, std::initializer_list> t_computes, double deltaT, size_t seed); [[nodiscard]] const std::vector &getComputes() const; void run(size_t steps); [[nodiscard]] const Rod2d &getRod() const; };