Esempio n. 1
0
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;
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
// 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); 
	
}
Esempio n. 4
0
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);
}