This repository was archived by the owner on Jan 18, 2024. It is now read-only.
forked from rpbpolis/spic-prj-api
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCamera.hpp
91 lines (77 loc) · 2.41 KB
/
Camera.hpp
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef CAMERA_H_
#define CAMERA_H_
#include "GameObject.hpp"
#include "Color.hpp"
#if __has_include("Camera_includes.hpp")
#include "Camera_includes.hpp"
#endif
namespace spic {
/**
* @brief Class representing a point of view towards the game scene.
* @spicapi
*/
class Camera : public GameObject {
public:
/**
* @brief Constructor.
* @param name The name of the game object.
* @param layer The layer of the game object.
* @param backgroundColor The background color of the horizon in the camera.
* @param aspectWidth The aspect width of the camera.
* @param aspectHeight The aspect width of the camera.
* @sharedapi
*/
Camera(const std::string& name, int layer, const Color& backgroundColor,
double aspectWidth, double aspectHeight);
/**
* Get the current background color.
*
* @return the current background color.
* @sharedapi
*/
const Color& BackgroundColor() const;
/**
* Set a new background color.
*
* @sharedapi
*/
void BackgroundColor(const Color& newBackgroundColor);
/**
* Get the aspect width of the camera.
*
* @return the aspect width of the camera.
* @sharedapi
*/
double AspectWidth() const;
/**
* Set the new aspect width of the camera.
*
* @sharedapi
*/
void AspectWidth(double newAspectWidth);
/**
* Get the aspect height of the camera.
*
* @return the aspect height of the camera.
* @sharedapi
*/
double AspectHeight() const;
/**
* Set the new aspect height of the camera.
*
* @sharedapi
*/
void AspectHeight(double newAspectHeight);
/**
* Tell the camera to start rendering the current scene.
*
* @sharedapi
*/
void Render() const;
private:
Color backgroundColor;
double aspectWidth;
double aspectHeight;
};
}
#endif // CAMERA_H_