fix camera rotation

This commit is contained in:
floralrainfall 2023-07-19 00:06:37 -04:00
parent a0e7bb078a
commit a6bbc2d683
3 changed files with 3 additions and 4 deletions

View File

@ -36,13 +36,13 @@ namespace RNR
Ogre::Radian old_yaw;
Ogre::Radian old_roll;
getCFrame().getRotation().ToEulerAnglesZXY(old_yaw, old_pitch, old_roll);
getCFrame().getRotation().ToEulerAnglesYXZ(old_yaw, old_pitch, old_roll);
pitch = old_pitch + pitch;
yaw = old_yaw - yaw;
Ogre::Matrix3 rotation;
rotation.FromEulerAnglesZXY(yaw, pitch, Ogre::Radian(0));
rotation.FromEulerAnglesYXZ(yaw, pitch, Ogre::Radian(0));
getCFrame().setRotation(rotation);
}

View File

@ -117,7 +117,7 @@ namespace RNR
snprintf(error_text, 255, "Attempt to set %s as its own parent", m_name.c_str());
throw std::runtime_error(error_text);
}
if (isAncestorOf(newParent))
if (newParent && isAncestorOf(newParent))
{
snprintf(error_text, 255, "Attempt to set parent of %s to %s results in circular reference", newParent->getName().c_str(), m_name.c_str());
throw std::runtime_error(error_text);

View File

@ -84,7 +84,6 @@ namespace RNR
{
m_workspace->setCurrentCamera(0);
old_camera->setParent(NULL);
delete old_camera;
}
pugi::xml_document rbxl_doc;