#pragma once #include #include #include #include "Assembly.h" class Sinewave { public: Sinewave(); void apply(AssemblyContext ctx); void set_amplitude(double amplitude); void set_frequency(double frequency); void set_phase(double phase); double get_amplitude() const; double get_frequency() const; double get_phase() const; private: std::chrono::time_point m_start_time, m_current_time; std::chrono::duration m_duration_time; double m_amplitude; double m_frequency; double m_phase; double get_point(); };