31 lines
891 B
C++
31 lines
891 B
C++
#include <App/CoordinateFrame.hpp>
|
|
|
|
namespace RNR
|
|
{
|
|
CoordinateFrame::CoordinateFrame() : m_position(0.f,0.f,0.f), m_rotation()
|
|
{
|
|
m_rotation.FromEulerAnglesXYZ(Ogre::Radian(0.f), Ogre::Radian(0.f), Ogre::Radian(0.f));
|
|
}
|
|
|
|
Ogre::Matrix4 CoordinateFrame::getMatrix()
|
|
{
|
|
Ogre::Matrix4 res = Ogre::Matrix4();
|
|
res.makeTransform(m_position, Ogre::Vector3(1.f,1.f,1.f), Ogre::Quaternion(m_rotation));
|
|
return res;
|
|
}
|
|
|
|
CoordinateFrame CoordinateFrame::operator+(Ogre::Vector3 vector)
|
|
{
|
|
CoordinateFrame res;
|
|
res.m_position = m_position + vector;
|
|
return res;
|
|
}
|
|
|
|
CoordinateFrame CoordinateFrame::operator*(CoordinateFrame frame)
|
|
{
|
|
CoordinateFrame res;
|
|
res.m_position = m_position * frame.m_position;
|
|
res.m_rotation = m_rotation * frame.m_rotation;
|
|
return res;
|
|
}
|
|
} |