Camera::Camera(float fov, float width, float height, XMFLOAT4 lookAtTarget, XMFLOAT4 position, XMFLOAT4 up)
{
	SetFOV(fov);
  SetViewSize(width, height);
	SetLookAtTarget(lookAtTarget);
	SetPosition(position);
	SetUpVector(up);
}
Camera::Camera()
{
	SetFOV(0.0f);
	SetAspectRatio(0.0f);
	SetLookAtTarget(XMFLOAT4(0.0f, 0.0f, 0.0f, 1.0f));
	SetPosition(XMFLOAT4(0.0f, 0.0f, 0.0f, 1.0f));
	SetUpVector(XMFLOAT4(0.0f, 1.0f, 0.0f, 1.0f));
}
Matrix4x4::Matrix4x4(const Vector& vecForward, const Vector& vecUp, const Vector& vecRight, const Vector& vecPosition)
{
	SetForwardVector(vecForward);
	SetUpVector(vecUp);
	SetRightVector(vecRight);
	SetTranslation(vecPosition);

	m[0][3] = 0;
	m[1][3] = 0;
	m[2][3] = 0;
	m[3][3] = 1;
}
Beispiel #4
0
void Matrix4x4::SetOrientation(const Vector& v, const Vector& vecUp)
{
	Vector vecDir = v.Normalized();

	Vector vecLeft;
	if (vecDir != vecUp && vecDir != -vecUp)
		vecLeft = vecUp.Cross(vecDir).Normalized();
	else
		vecLeft = Vector(0, 1, 0);

	SetForwardVector(vecDir);
	SetLeftVector(vecLeft);
	SetUpVector(vecDir.Cross(vecLeft).Normalized());
}
Beispiel #5
0
void C3dCamera::ReInit()
{
	SetLookAtPos(0.0f, 0.0f, 0.0f);
	SetEyePos(9.0f, 9.0f, 9.0f);
	SetFocalLength(9.0f);
	SetRotationAboutLookAt(-30.0f, 0.0f, -30.0f);
	SetUpVector(0.0f, 0.0f, 1.0f);	// Z-Axis is up
	m_fPitch = 0.0f;
	m_fYaw   = 0.0f;
	m_fRoll  = 0.0f;

	m_fFovY = 45.0f;
	m_fNear = 1.0f;
	m_fFar  = 10000.0f;

	m_bPerspective	= TRUE;
	m_bBuildLists	= TRUE;
	m_iDisplayLists = 0;
	m_bResetClippingPlanes	= TRUE;

	// Clear our modelview and projection matrix
	memset(&m_dModelViewMatrix, 0, sizeof(GLdouble)*16);
	memset(&m_dProjectionMatrix, 0, sizeof(GLdouble)*16);
}