2018-11-05 18:08:52 +01:00
|
|
|
#include "TurretCamAnimator.hpp"
|
|
|
|
|
|
|
|
using namespace irr;
|
|
|
|
|
|
|
|
TurretCamAnimator::TurretCamAnimator(scene::ISceneNode *_parent)
|
|
|
|
: ISceneNodeAnimator()
|
|
|
|
, parent(_parent)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
TurretCamAnimator::~TurretCamAnimator()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void TurretCamAnimator::animateNode(scene::ISceneNode* node, u32)
|
|
|
|
{
|
|
|
|
if (!parent || !node)
|
|
|
|
return;
|
|
|
|
|
|
|
|
parent->updateAbsolutePosition();
|
|
|
|
core::vector3df nodeUpVector, nodeTarget;
|
|
|
|
const core::matrix4& absTrans = parent->getAbsoluteTransformation();
|
|
|
|
absTrans.rotateVect(nodeUpVector, core::vector3df(0.f, 1.f, 0.f));
|
|
|
|
absTrans.transformVect(nodeTarget, core::vector3df(0.f, 0.f, 100.f));
|
|
|
|
|
2018-11-13 09:12:55 +01:00
|
|
|
node->setPosition(parent->getAbsolutePosition() + core::vector3df(0.f, 1.75f, 0.f));
|
2018-11-05 18:08:52 +01:00
|
|
|
if (node->getType() == scene::ESNT_CAMERA)
|
|
|
|
{
|
|
|
|
static_cast<scene::ICameraSceneNode*>(node)->setUpVector(nodeUpVector);
|
|
|
|
static_cast<scene::ICameraSceneNode*>(node)->setTarget(nodeTarget);
|
|
|
|
}
|
|
|
|
}
|