/* * 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