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; }
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()); }
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); }