46 lines
775 B
C
46 lines
775 B
C
#ifndef CAMERA_H
|
|
|
|
#include "point.h"
|
|
#include "util.h"
|
|
#include <cmath>
|
|
|
|
|
|
// STRUCTURE
|
|
struct Camera
|
|
{
|
|
inline Camera(void)
|
|
{
|
|
position.x = 0.0f;
|
|
position.y = 0.0f;
|
|
position.z = 0.0f;
|
|
|
|
rotation[0] = 0.0f;
|
|
rotation[1] = 0.0f;
|
|
rotation[2] = 0.0f;
|
|
|
|
nearClip = 1.0f;
|
|
farClip = 1000.0f;
|
|
}
|
|
|
|
inline void SetFOV(float fov, int winWidth, int winHeight)
|
|
{
|
|
xZoom = 1.0f / tanf(DEG_TO_RAD(fov/2.0f));
|
|
yZoom = (xZoom * winWidth) / winHeight;
|
|
|
|
xScale = (0.5f * winWidth) - 0.5f;
|
|
yScale = (0.5f * winHeight) - 0.5f;
|
|
}
|
|
|
|
|
|
Point position;
|
|
float rotation[3];
|
|
float nearClip, farClip;
|
|
float xZoom, yZoom;
|
|
float xScale, yScale;
|
|
};
|
|
|
|
|
|
#define CAMERA_H
|
|
#endif
|
|
|