prevent negative cam distance

master
poikilos 2019-04-19 17:34:31 -04:00
parent 0d5780dbf3
commit 7e3dd7bc88
3 changed files with 9 additions and 6 deletions

View File

@ -176,9 +176,6 @@ void Engine::drawAxisLines()
m_AxisFont->draw(L"Z+", rect<s32>(textPos, textSize),
SColor(255, 0, 0, 255), true, true);
}
//delete xMaterial;
//delete yMaterial;
//delete zMaterial;
}
}

View File

@ -160,7 +160,7 @@ void UserInterface::setupUserInterface()
y += size_y + spacing_y;
axisSizeStaticText = m_Gui->addStaticText(
L"Axis Size:",
rect<s32>(vector2d<s32>(spacing_x, y)
rect<s32>(vector2d<s32>(spacing_x, y),
dimension2d<s32>(size_x, size_y)),
true,
true,

View File

@ -184,7 +184,8 @@ bool View::OnEvent(const SEvent& event)
vector3df offsetVec3(
m_Engine->m_CamPos.X - m_Engine->m_CamTarget.X,
m_Engine->m_CamPos.Y - m_Engine->m_CamTarget.Y,
m_Engine->m_CamPos.Z - m_Engine->m_CamTarget.Z);
m_Engine->m_CamPos.Z - m_Engine->m_CamTarget.Z
);
f32 distanceDelta = mouseEvent->Wheel * -1 * (offsetVec3.getLength() / 10);
ICameraSceneNode* camera = m_Engine->m_Scene->getActiveCamera();
@ -210,7 +211,12 @@ bool View::OnEvent(const SEvent& event)
// m_Pitch = asin(offsetVec3.Y);
// m_CameraDistance = Utility::distance(m_Engine->m_CamPos, m_Engine->m_CamTarget);
m_CameraDistance += distanceDelta;
if (m_CameraDistance + distanceDelta > 0.0001f) {
m_CameraDistance += distanceDelta;
}
else {
m_CameraDistance /= 2;
}
setNewCameraPosition();
debug() << "m_CamPos: " << m_Engine->m_CamPos.X
<< "," << m_Engine->m_CamPos.Y