CCamera::CCamera(void) { m_LiftAngle = 0.0f; SetUp(0, 1, 0); SetLookat(0, 0, 0); SetEye(1, 0, 1); UpdateMatrix(); }
void Camera::SetView(const Vector3& pvEye, const Vector3& pvLookat, const Vector3& pvUp){ SetEye(pvEye); SetLookat(pvLookat); SetUp(pvUp); m_View = Normalized(m_Lookat - m_Eye); m_Cross = Cross(m_Up, m_View); m_matView = LookAt(m_Eye,m_Lookat, m_Up); }
void CObjectRotateCamera::SetCenter(float x, float y, float z) { SetLookat(x, y, z); m_center = Point3(x, y, z); Point3 eye = Point3(vEyePt.x, vEyePt.y, vEyePt.z); Point3 dir = eye - m_center; m_radius = dir.GetLength(); Point3 angle = Dir2Angle(eye - m_center); m_anglex = angle.x; m_anglez = angle.y; }
CObjectRotateCamera::CObjectRotateCamera() { m_axisX = Point3(1, 0, 0); m_axisY = Point3(0, 1, 0); m_axisZ = Point3(0, 0, 1); m_anglex = 0; m_anglez = 0; m_radius = 10; SetLookat(0, 0, 0); m_center = Point3(0, 0, 0); vUpVec = D3DXVECTOR3(0, 0, 1); Point3 eye = Angle2Pos(m_anglex, m_anglez); SetEye(eye.x, eye.y, eye.z); m_lastDown[0] = false; m_lastDown[1] = false; m_lastx = 0; m_lasty = 0; }
void Camera::SetLookat(const Vector3f &p) { SetLookat(p.x, p.y, p.z); }