31 lines
984 B
C++
31 lines
984 B
C++
#include "moversine.hpp"
|
|
#if !defined(_GNU_SOURCE)
|
|
# define _GNU_SOURCE
|
|
#endif
|
|
#include <cmath>
|
|
|
|
namespace cloonel {
|
|
///--------------------------------------------------------------------------
|
|
///--------------------------------------------------------------------------
|
|
MoverSine::MoverSine() :
|
|
MoverRelative(),
|
|
m_alpha(0.0f),
|
|
m_power(1.0f)
|
|
{
|
|
}
|
|
|
|
///--------------------------------------------------------------------------
|
|
///--------------------------------------------------------------------------
|
|
float2 MoverSine::GetOffset() const {
|
|
return float2(0.0f, std::abs(std::sin(m_alpha)) * m_power);
|
|
}
|
|
|
|
///--------------------------------------------------------------------------
|
|
///--------------------------------------------------------------------------
|
|
void MoverSine::ApplyMotion (float parDelta) {
|
|
const float pitwo = static_cast<float>(M_PI) * 2.0f;
|
|
m_alpha += parDelta * 2.6f;
|
|
if (m_alpha >= pitwo)
|
|
m_alpha -= pitwo;
|
|
}
|
|
} //namespace cloonel
|