1#include "ObjectBoble.hh"
6ObjectBoble::ObjectBoble(
const System::MapdataGeoObj ¶ms) : ObjectCollidable(params) {}
9ObjectBoble::~ObjectBoble() =
default;
12void ObjectBoble::init() {
13 m_railInterpolator->init(0.0f, 0);
14 m_curTangentDir = m_railInterpolator->curTangentDir();
15 m_railInterpolator->setPerPointVelocities(
true);
16 m_flags.setBit(eFlags::Scale);
17 m_scale = EGG::Vector3f(1.0f, 1.0f, 1.0f);
21void ObjectBoble::calc() {
22 m_railInterpolator->calc();
23 m_pos = m_railInterpolator->curPos();
24 m_flags.setBit(eFlags::Position);
30void ObjectBoble::calcTangent() {
31 m_curTangentDir = Interpolate(0.2f, m_curTangentDir, m_railInterpolator->curTangentDir());
32 m_curTangentDir.normalise();
34 EGG::Vector3f axis = m_curTangentDir.cross(EGG::Vector3f::ex);
35 if (axis.normalise() == 0.0f) {
36 axis = m_curTangentDir.cross(EGG::Vector3f::ez);
40 setMatrixTangentTo(axis.cross(m_curTangentDir), m_curTangentDir);