void Camera::Init() { Vector3f HTarget(m_target.x, 0.f, m_target.z); HTarget.Normalize(); if (HTarget.z >= 0.f) { if (HTarget.x >= 0.f) { m_AngleH = 360.f - ToDegree(asin(HTarget.z)); } else { m_AngleH = 180.f + ToDegree(asin(HTarget.z)); } } else { if (HTarget.x >= 0.f) { m_AngleH = ToDegree(asin(-HTarget.z)); } else { m_AngleH = 90.f + ToDegree(asin(-HTarget.z)); } } m_AngleV = -ToDegree(asin(m_target.y)); m_onUpperEdge = false; m_onLowerEdge = false; m_onRightEdge = false; m_onLeftEdge = false; }
void Camera::Init() { Vector3f HTarget(m_target.x, 0.0, m_target.z); HTarget.Normalize(); if (HTarget.z >= 0.0f) { if (HTarget.x >= 0.0f) { m_AngleH = 360.0f - ToDegree(asin(HTarget.z)); } else { m_AngleH = 180.0f + ToDegree(asin(HTarget.z)); } } else { if (HTarget.x >= 0.0f) { m_AngleH = ToDegree(asin(-HTarget.z)); } else { m_AngleH = 90.0f + ToDegree(asin(-HTarget.z)); } } m_AngleV = -ToDegree(asin(m_target.y)); m_mousePos.x = m_windowWidth / 2; m_mousePos.y = m_windowHeight / 2; glutWarpPointer(m_mousePos.x, m_mousePos.y); }
// initializes internal class data void Camera::init() { // create horizontal target vector + normalize it vec3D HTarget(m_target.x, 0.0, m_target.z); HTarget.normalize(); // check to see if z is positive or negative, then calculate horizontal vectors based on target vec if (HTarget.z >= 0.0f) { if (HTarget.x >= 0.0f) m_AngleH = 360.0f - ToDegree(asin(HTarget.z)); else m_AngleH = 180.0f + ToDegree(asin(HTarget.z)); } else { if (HTarget.x >= 0.0f) m_AngleH = ToDegree(asin(-HTarget.z)); else m_AngleH = 90.0f + ToDegree(asin(-HTarget.z)); } // do the same with vertical angle m_AngleV = -ToDegree(asin(m_target.y)); // init constants m_OnUpperEdge = false; m_OnLowerEdge = false; m_OnLeftEdge = false; m_OnRightEdge = false; keys[0] = false; keys[1] = false; keys[2] = false; keys[3] = false; m_mousePos.x = m_windowWidth / 2; m_mousePos.y = m_windowHeight / 2; //starts mouse in centre of the screen //glutWarpPointer(m_mousePos.x, m_mousePos.y); //SetCursorPos(m_mousePos.x,m_mousePos.y); glutWarpPointer(m_mousePos.x, m_mousePos.y); glutSetCursor(GLUT_CURSOR_NONE); }
void Camera::Init() { Vector3f HTarget(m_target.x, 0.0, m_target.z); HTarget.Normalize(); if (HTarget.z >= 0.0f) { if (HTarget.x >= 0.0f) { m_AngleH = 360.0f - ToDegree(asin(HTarget.z)); } else { m_AngleH = 180.0f + ToDegree(asin(HTarget.z)); } } else { if (HTarget.x >= 0.0f) { m_AngleH = ToDegree(asin(-HTarget.z)); } else { m_AngleH = 90.0f + ToDegree(asin(-HTarget.z)); } } m_AngleV = -ToDegree(asin(m_target.y)); m_OnUpperEdge = false; m_OnLowerEdge = false; m_OnLeftEdge = false; m_OnRightEdge = false; m_mousePos.x = m_windowWidth / 2; m_mousePos.y = m_windowHeight / 2; SDL_WarpMouseInWindow(m_window, m_mousePos.x, m_mousePos.y); }