-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcamera.h
54 lines (38 loc) · 1.01 KB
/
camera.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef CAMERA_H
#define CAMERA_H
#include "geometry.h"
#include "common.h"
class Camera
{
public:
Camera();
virtual ~Camera() {}
virtual void apply(DrawContext& context);
const mat4& projectionMatrix() const;
mat4 viewMatrix() const;
void lookAt(const vec3 &eye, const vec3 ¢er, const vec3 &up);
float near() const;
void setNear(float near);
float far() const;
void setFar(float far);
float aspectRatio() const;
void setAspectRatio(float aspectRatio);
float heightAngle() const;
void setHeightAngle(float heightAngle);
vec3 front() const;
vec3 right() const;
vec3 up() const;
vec3 position() const;
mat4& transform();
const mat4& transform() const;
void setTransform(const mat4 &transform);
private:
void updateProjection();
mat4 transform_;
mat4 projection_;
float near_;
float far_;
float aspectRatio_;
float heightAngle_;
};
#endif // CAMERA_H