view LightClone/Source/CameraController.h @ 60:b0f642ee22d3

Additional maps
author koryspansel <koryspansel@bendbroadband.com>
date Mon, 03 Oct 2011 08:58:08 -0700
parents 91e927584f92
children
line wrap: on
line source

/*
 * CameraController
 */

#ifndef __CAMERACONTROLLER_H__
#define __CAMERACONTROLLER_H__

#include "Core.h"
#include "Camera.h"

/*
 * CameraMode
 */
enum
{
	CameraMode_2D,
	CameraMode_3D,
};

/*
 * CameraController
 */
class CameraController : public Camera
{
public:

	/*
	 * nMode
	 */
	uint32 nMode;

	/*
	 * fCameraDistance
	 */
	float fCameraDistance;

	/*
	 * fCameraYaw
	 */
	float fCameraYaw;

	/*
	 * fCameraPitch
	 */
	float fCameraPitch;

	/*
	 * fViewAngle
	 */
	float fViewAngle;

	/*
	 * fMinimumZ
	 */
	float fMinimumZ;

	/*
	 * fMaximumZ
	 */
	float fMaximumZ;

public:

	/*
	 * CameraController
	 */
	CameraController(float fInitialDistance = 10.0f, float fInitialYaw = 0.46f, float fInitialPitch = 0.57f);

	/*
	 * SetMode
	 */
	void SetMode(uint32 nCameraMode);

	/*
	 * Update
	 */
	void Update(float fElapsed);

	/*
	 * Yaw
	 */
	void Yaw(float fAmount);

	/*
	 * Pitch
	 */
	void Pitch(float fAmount);

	/*
	 * Move
	 */
	void Move(float fAmount);

	/*
	 * GetLocation
	 */
	const D3DXVECTOR3 GetLocation() const;

	/*
	 * GetProjection
	 */
	virtual const D3DXMATRIX GetProjection(const D3DVIEWPORT9& kViewport) const;

	/*
	 * GetView
	 */
	virtual const D3DXMATRIX GetView() const;
};

#endif //__CAMERACONTROLLER_H__