/*
* Camera.h
* Jonathan Boldiga
* 09/02/03
*
*/
#ifndef __CAMERA_H
#define __CAMERA_H
#define WIN32_LEAN_AND_MEAN
#define WIN32_EXTRA_LEAN
#include
#include
#include
#include "Vector3.h"
class Object;
class Camera{
private:
//variables used to change camera positions/orientations
Vector3 initialPosition, finalPosition;
Vector3 initialLookAt, finalLookAt;
Vector3 lookAtVelocity; // velocity for looking at objects
Vector3 lookAtAcceleration; // acceleration for looking at objects
void updateLookAt();
void updateMoveTo();
public:
Vector3 position; // position of camera
Vector3 velocity; // velocity of camera
Vector3 acceleration; // acceleration of camera
Vector3 lookAt; // lookat vector
// up, forward, right vectors
Vector3 up;
Vector3 forward;
Vector3 right;
// yaw and pitch angles
float yaw;
float pitch;
int screenWidth, screenHeight;
int centerX, centerY;
Camera();
Camera(int width, int height) {}
Camera(Vector3* look);
Camera(Vector3* position, Vector3* look);
~Camera();
void look(Object* object);
void lookNow(Object* object);
void moveTo(Object* object);
void moveToNow(Object* object);
void moveToNow(float x, float y, float z);
// right rotation along y-axis
void rotateYaw(float radians);
void rotatePitch(float radians);
void rotateRoll(float radians);
// do physics calculations
void animate(float deltaTime);
};
#endif