SpiecsEngine
 
Loading...
Searching...
No Matches

◆ OnMouseScroll()

bool Spices::CameraController::OnMouseScroll ( MouseScrolledEvent & e)
private

Event OnMouseScroll. Scale the camera.

Parameters
[in]eEvent Wrapper.
Returns
true if we need block the event

Definition at line 80 of file CameraController.cpp.

81 {
83
84 if (!SlateSystem::GetRegister()->GetViewPort()->IsHovered()) return false;
85
86 const float ratio = static_cast<float>(m_ViewportWidth) / static_cast<float>(m_ViewportHeight);
87
88 const float delta = e.GetYOffset() * 0.1f;
89
90 m_ZoomLevel += delta;
91 m_ZoomLevel = std::max(m_ZoomLevel, 0.2f);
92
93 if (m_Camera->GetProjectionType() == ProjectionType::Orthographic)
94 {
95 m_Camera->SetOrthographic(-ratio * m_ZoomLevel, ratio * m_ZoomLevel, -m_ZoomLevel, m_ZoomLevel, 0.001f, 100000.0f);
96 }
97
98 MouseZoom(delta);
99 UpdateView();
100 m_Camera->ResetStableFrames();
101 return false;
102 }
#define SPICES_PROFILE_ZONE
uint32_t m_ViewportWidth
The Viewport size.
std::shared_ptr< Camera > m_Camera
The camera smart pointer get from owner's camera component.
void MouseZoom(const float &delta)
Calculate Camera Zoom.
void UpdateView() const
Setting camera transform component position. We already set rotation in MouseRotate().
float m_ZoomLevel
Zoom Level, for orthographic type camera.
static std::shared_ptr< SlateRegister > GetRegister()
Get slate register.
Definition SlateSystem.h:67
@ Orthographic
orthographic
Definition Camera.h:27

References Spices::MouseScrolledEvent::GetYOffset(), m_ViewportHeight, m_ViewportWidth, m_ZoomLevel, MouseZoom(), and UpdateView().

Referenced by OnEvent().