#include "NaviCam.h" #include "EditorData.h" #include CNaviCam g_NaviCam; /////////////////////////////////////////////////////////////////////////////// // CNaviCam constructor CNaviCam::CNaviCam() : m_CameraZoom(10) { } /////////////////////////////////////////////////////////////////////////////// // OnMouseWheelScroll: handler for wheel scroll event - dir is positive for // upward scroll (away from user), or negative for downward scroll (towards // user) void CNaviCam::OnMouseWheelScroll(u32 flags,int px,int py,float dir) { CVector3D forward=m_Camera.m_Orientation.GetIn(); float factor=dir*dir; if (dir<0) factor=-factor; // check we're not going to zoom into the terrain, or too far out into space float h=m_Camera.m_Orientation.GetTranslation().Y+forward.Y*factor*m_CameraZoom; float minh=65536*HEIGHT_SCALE*1.05f; if (h1500) { // yup, we will; don't move anywhere (do clamped move instead, at some point) } else { // do a full move m_CameraZoom-=(factor)*0.1f; if (m_CameraZoom<0.01f) m_CameraZoom=0.01f; m_Camera.m_Orientation.Translate(forward*(factor*m_CameraZoom)); } g_EditorData.OnCameraChanged(); } /////////////////////////////////////////////////////////////////////////////// // OnMButtonDown: handler for middle button down event void CNaviCam::OnMButtonDown(u32 flags,int px,int py) { } /////////////////////////////////////////////////////////////////////////////// // OnMButtonUp: handler for middle button up event void CNaviCam::OnMButtonUp(u32 flags,int px,int py) { } /////////////////////////////////////////////////////////////////////////////// // OnMouseMove: handler for mouse move (only called when middle button down) void CNaviCam::OnMouseMove(u32 flags,int px,int py) { }