1#include "ObjectCrane.hh"
7 : ObjectKCL(params), m_startPos(m_pos) {
8 m_xt = params.setting(3);
10 m_xPeriod = std::max(
static_cast<u16>(2), params.setting(1));
11 m_yPeriod = std::max(
static_cast<u16>(2), params.setting(4));
12 m_xAmplitude = params.setting(2);
13 m_yAmplitude = params.setting(5);
15 m_xFreq = 2 * F_PI /
static_cast<f32
>(m_xPeriod);
16 m_yFreq = 2 * F_PI /
static_cast<f32
>(m_yPeriod);
20ObjectCrane::~ObjectCrane() =
default;
23void ObjectCrane::calc() {
27 EGG::Vector3f scaledX = EGG::Vector3f::ex * xDelta *
static_cast<f32
>(m_xAmplitude);
30 EGG::Vector3f scaledY = EGG::Vector3f::ey * yDelta *
static_cast<f32
>(m_yAmplitude);
34 m_pos = m_startPos + m_transform.multVector33(scaledX + scaledY);
35 m_flags.setBit(eFlags::Position);
37 if (m_yt++ > m_yPeriod) {
41 if (m_xt++ > m_xPeriod) {
45 setMovingObjVel(m_pos - prevPos);