16
16
17
17
namespace polymorph ::graphical
18
18
{
19
- class CameraModule
19
+ PSERIALIZABLE ( CameraModule)
20
20
{
21
21
22
- // //////////////////// CONSTRUCTORS/DESTRUCTORS /////////////////////////
22
+ PSERIALIZABLE_CTOR (CameraModule)
23
23
24
+ // /////////////////////////// PROPERTIES ////////////////////////////////
24
25
public:
25
- explicit CameraModule (std::shared_ptr<myxmlpp::Node> &data,
26
- engine::Config::XmlComponent &manager);
27
26
28
- ~CameraModule ();
27
+
28
+ protected:
29
+ polymorph::graphical::Symbols::createCameraDEF _c_camera = nullptr ;
30
+
31
+ std::unique_ptr<polymorph::graphical::ICamera> _camera;
32
+ float _fov = 90 ;
33
+ engine::Vector3 _up;
34
+ engine::Vector3 _position;
35
+ engine::Vector3 _target;
29
36
30
37
31
38
// ////////////////////--------------------------/////////////////////////
32
39
33
40
34
41
35
- // /////////////////////////// PROPERTIES ////////////////////////////////
42
+ // ///////////////////////////// METHODS / ////////////////////////////////
36
43
public:
44
+ virtual void setTarget (engine::Vector3 target) = 0 ;
37
45
46
+ virtual void setPosition (engine::Vector3 pos) = 0 ;
38
47
39
- private:
40
- polymorph::graphical::Symbols::createCameraDEF _c_camera = nullptr ;
48
+ virtual void move (engine::Vector3 pos) = 0 ;
41
49
42
- std::unique_ptr<polymorph::graphical::ICamera> _camera ;
43
- float _fov;
44
- engine::Vector3 _up ;
45
- engine::Vector3 _position;
46
- engine::Vector3 _target ;
50
+ virtual engine::Vector3 getUp () const = 0 ;
51
+
52
+ virtual void setUp ( engine::Vector3 up) = 0 ;
53
+
54
+ virtual float getFov () const = 0 ;
47
55
56
+ virtual void setFOV (float fov) = 0 ;
48
57
58
+ virtual void begin3DMode () = 0 ;
59
+
60
+ virtual void end3DMode () = 0 ;
49
61
// ////////////////////--------------------------/////////////////////////
50
62
63
+ };
64
+
65
+ PSERIALIZABLE_IMPL (polymorph::graphical, CameraModule)
66
+ {
51
67
68
+ PSERIALIZABLE_IMPL_CTOR (CameraModule)
52
69
53
70
// ///////////////////////////// METHODS /////////////////////////////////
54
71
public:
55
- void setTarget (engine::Vector3 target);
72
+ void setTarget (engine::Vector3 target) final ;
56
73
57
- void setPosition (engine::Vector3 pos);
74
+ void setPosition (engine::Vector3 pos) final ;
58
75
59
- void move (engine::Vector3 pos);
76
+ void move (engine::Vector3 pos) final ;
60
77
61
- engine::Vector3 getUp () const ;
78
+ engine::Vector3 getUp () const final ;
62
79
63
- void setUp (engine::Vector3 up);
80
+ void setUp (engine::Vector3 up) final ;
64
81
65
- float getFov () const ;
82
+ float getFov () const final ;
66
83
67
- void setFOV (float fov);
84
+ void setFOV (float fov) final ;
68
85
69
- void begin3DMode ();
86
+ void begin3DMode () final ;
70
87
71
- void end3DMode ();
88
+ void end3DMode () final ;
72
89
73
90
private:
74
91
void _loadModule ();
@@ -78,3 +95,5 @@ namespace polymorph::graphical
78
95
79
96
};
80
97
}
98
+
99
+
0 commit comments