Skip to content

Commit 5823d61

Browse files
committed
chore: updated from serializable objects update
1 parent 1ca4a4f commit 5823d61

File tree

10 files changed

+109
-185
lines changed

10 files changed

+109
-185
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ endif()
1717
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
1818

1919
include(CMake/FindPolymorphEngine.cmake)
20+
include(cmake/FindRenderCore.cmake)
2021

2122
file(GLOB_RECURSE SCRIPTS_SRC Scripts/src/*.cpp)
2223
file(GLOB_RECURSE SCRIPTS_ICL Scripts/include/*.hpp)

Core/include/modules/CameraModule.hpp

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,59 +16,76 @@
1616

1717
namespace polymorph::graphical
1818
{
19-
class CameraModule
19+
PSERIALIZABLE(CameraModule)
2020
{
2121

22-
////////////////////// CONSTRUCTORS/DESTRUCTORS /////////////////////////
22+
PSERIALIZABLE_CTOR(CameraModule)
2323

24+
///////////////////////////// PROPERTIES ////////////////////////////////
2425
public:
25-
explicit CameraModule(std::shared_ptr<myxmlpp::Node> &data,
26-
engine::Config::XmlComponent &manager);
2726

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;
2936

3037

3138
//////////////////////--------------------------/////////////////////////
3239

3340

3441

35-
///////////////////////////// PROPERTIES ////////////////////////////////
42+
/////////////////////////////// METHODS /////////////////////////////////
3643
public:
44+
virtual void setTarget(engine::Vector3 target) = 0;
3745

46+
virtual void setPosition(engine::Vector3 pos) = 0;
3847

39-
private:
40-
polymorph::graphical::Symbols::createCameraDEF _c_camera = nullptr;
48+
virtual void move(engine::Vector3 pos) = 0;
4149

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;
4755

56+
virtual void setFOV(float fov) = 0;
4857

58+
virtual void begin3DMode() = 0;
59+
60+
virtual void end3DMode() = 0;
4961
//////////////////////--------------------------/////////////////////////
5062

63+
};
64+
65+
PSERIALIZABLE_IMPL(polymorph::graphical, CameraModule)
66+
{
5167

68+
PSERIALIZABLE_IMPL_CTOR(CameraModule)
5269

5370
/////////////////////////////// METHODS /////////////////////////////////
5471
public:
55-
void setTarget(engine::Vector3 target);
72+
void setTarget(engine::Vector3 target) final;
5673

57-
void setPosition(engine::Vector3 pos);
74+
void setPosition(engine::Vector3 pos) final;
5875

59-
void move(engine::Vector3 pos);
76+
void move(engine::Vector3 pos) final;
6077

61-
engine::Vector3 getUp() const;
78+
engine::Vector3 getUp() const final;
6279

63-
void setUp(engine::Vector3 up);
80+
void setUp(engine::Vector3 up) final;
6481

65-
float getFov() const;
82+
float getFov() const final;
6683

67-
void setFOV(float fov);
84+
void setFOV(float fov) final;
6885

69-
void begin3DMode();
86+
void begin3DMode() final;
7087

71-
void end3DMode();
88+
void end3DMode() final;
7289

7390
private:
7491
void _loadModule();
@@ -78,3 +95,5 @@ namespace polymorph::graphical
7895

7996
};
8097
}
98+
99+

Core/src/modules/CameraModule.cpp

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
/*
22
** EPITECH PROJECT, 2022
3-
** CameraModule.cpp
3+
** CameraModuleImpl.cpp
44
** File description:
5-
** CameraModule.cpp
5+
** CameraModuleImpl.cpp
66
*/
77

88
#include <polymorph/render-core.hpp>
99
#include "PluginCore.hpp"
1010

11-
polymorph::graphical::CameraModule::CameraModule(std::shared_ptr<myxmlpp::Node> &data, polymorph::engine::Config::XmlComponent &manager)
12-
: _fov(45)
11+
polymorph::graphical::CameraModuleImpl::CameraModuleImpl(std::shared_ptr<myxmlpp::Node> &data, polymorph::engine::Config::XmlComponent &manager)
12+
: SerializableCameraModule()
1313
{
1414
_loadModule();
1515
manager.setSubProperty("_up", data, _up);
@@ -23,66 +23,60 @@ polymorph::graphical::CameraModule::CameraModule(std::shared_ptr<myxmlpp::Node>
2323
_camera->setFOV(_fov);
2424
}
2525

26-
void polymorph::graphical::CameraModule::setTarget(polymorph::engine::Vector3 target)
26+
void polymorph::graphical::CameraModuleImpl::setTarget(polymorph::engine::Vector3 target)
2727
{
2828
_target = target;
2929
_camera->setTarget(_target.x, _target.y, _target.z);
3030
}
3131

32-
void polymorph::graphical::CameraModule::setPosition(polymorph::engine::Vector3 pos)
32+
void polymorph::graphical::CameraModuleImpl::setPosition(polymorph::engine::Vector3 pos)
3333
{
3434
_position = pos;
3535
_camera->setPosition(_position.x, _position.y, _position.z);
3636
}
3737

38-
void polymorph::graphical::CameraModule::move(polymorph::engine::Vector3 pos)
38+
void polymorph::graphical::CameraModuleImpl::move(polymorph::engine::Vector3 pos)
3939
{
4040
_position = pos;
4141
_camera->move(pos.x, pos.y, pos.z);
4242
}
4343

44-
void polymorph::graphical::CameraModule::setUp(polymorph::engine::Vector3 up)
44+
void polymorph::graphical::CameraModuleImpl::setUp(polymorph::engine::Vector3 up)
4545
{
4646
_up = up;
4747
_camera->setUp(up.x, up.y, up.z);
4848
}
4949

50-
void polymorph::graphical::CameraModule::setFOV(float fov)
50+
void polymorph::graphical::CameraModuleImpl::setFOV(float fov)
5151
{
5252
_fov = fov;
5353
_camera->setFOV(_fov);
5454
}
5555

56-
void polymorph::graphical::CameraModule::begin3DMode()
56+
void polymorph::graphical::CameraModuleImpl::begin3DMode()
5757
{
58-
//TODO: warning 3D mode disabled
59-
//_camera->begin3DMode();
58+
_camera->begin3DMode();
6059
}
6160

62-
void polymorph::graphical::CameraModule::end3DMode()
61+
void polymorph::graphical::CameraModuleImpl::end3DMode()
6362
{
64-
//TODO: warning 3D mode disabled
65-
//_camera->end3DMode();
63+
_camera->end3DMode();
6664
}
6765

68-
float polymorph::graphical::CameraModule::getFov() const
66+
float polymorph::graphical::CameraModuleImpl::getFov() const
6967
{
7068
return _fov;
7169
}
7270

73-
polymorph::engine::Vector3 polymorph::graphical::CameraModule::getUp() const
71+
polymorph::engine::Vector3 polymorph::graphical::CameraModuleImpl::getUp() const
7472
{
7573
return _up;
7674
}
7775

78-
void polymorph::graphical::CameraModule::_loadModule()
76+
void polymorph::graphical::CameraModuleImpl::_loadModule()
7977
{
8078
if (_c_camera)
8179
return;
8280
_c_camera = engine::PluginCore::Plugin->pluginManager.getSymbol<polymorph::graphical::Symbols::createCameraDEF>(polymorph::graphical::Symbols::createCamera);
8381
}
8482

85-
polymorph::graphical::CameraModule::~CameraModule()
86-
{
87-
88-
}

Factory/include/ObjectFactory.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@
1111
#include "ScriptingAPI/ScriptingApi.hpp"
1212
#include <unordered_map>
1313

14+
1415
OBJECT_FACTORY_BEGIN()
1516

1617
OBJECT_FACTORY_MAP(){
17-
18+
MAKE_SERIALIZABLE(polymorph::graphical, CameraModule)
1819
};
1920

2021
OBJECT_FACTORY_EMPTY_MAP(){
21-
22+
MAKE_EMPTY_SERIALIZABLE(polymorph::graphical, CameraModule)
2223
};
2324

2425
OBJECT_FACTORY_END()

Factory/include/ScriptFactory.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212

1313
//@Initalizers
1414
//${INITIALIZERS_INCLUDES}
15-
#include "initializers/CameraInitializer.hpp"
15+
#include "../../Scripts/include/CameraComponentImpl.hpp"
1616

1717
//@Scripts
1818
//${SCRIPTS_INCLUDES}
1919

2020
FACTORY_BEGIN() {
21-
21+
MAKE_COMPONENT(polymorph::graphical, Camera)
2222
} FACTORY_END()

Factory/include/initializers/CameraInitializer.hpp

Lines changed: 0 additions & 41 deletions
This file was deleted.

Factory/src/initializers/CameraInitalizer.cpp

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,15 @@
66
*/
77

88
#include <polymorph/Core.hpp>
9-
#include "../../include/initializers/CameraInitializer.hpp"
9+
#include "../../../Scripts/include/CameraComponentImpl.hpp"
1010

11-
using namespace polymorph::engine;
1211

13-
CameraInitializer::CameraInitializer(Config::XmlComponent &data, GameObject entity)
14-
: AComponentInitializer("Camera", data, entity)
15-
{
12+
MAKE_INIT_BUILD(polymorph::graphical, Camera,
13+
camera,
14+
TargetType,
15+
PointTarget
16+
)
1617

17-
}
18-
19-
void CameraInitializer::build()
20-
{
21-
data.setProperty("camera", component->camera);
22-
data.setProperty("TargetType", component->TargetType);
23-
data.setProperty("PointTarget", component->PointTarget);
24-
}
25-
26-
void CameraInitializer::reference()
27-
{
28-
data.setProperty("ObjectTarget", component->ObjectTarget);
29-
}
18+
MAKE_INIT_REF(polymorph::graphical, Camera,
19+
ObjectTarget
20+
)

Scripts/include/CameraComponent.hpp

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,12 @@
1616
#include "Utilities/Time.hpp"
1717
#include "modules/CameraModule.hpp"
1818

19-
namespace polymorph::engine
19+
namespace polymorph::graphical
2020
{
2121

22-
class CameraComponent;
23-
24-
using Camera = engine::safe_ptr<CameraComponent>;
25-
using CameraBase = std::shared_ptr<CameraComponent>;
26-
27-
class CameraComponent : public Component
22+
COMPONENT(Camera)
2823
{
29-
30-
////////////////////// CONSTRUCTORS/DESTRUCTORS /////////////////////////
31-
32-
public:
33-
explicit CameraComponent(GameObject gameObject) : Component("Camera", gameObject) {};
34-
35-
36-
//////////////////////--------------------------/////////////////////////
37-
38-
24+
COMPONENT_CTOR(Camera)
3925

4026
///////////////////////////// PROPERTIES ////////////////////////////////
4127
public:
@@ -44,11 +30,11 @@ namespace polymorph::engine
4430
Point,
4531
Object,
4632
};
47-
CameraTargetType TargetType;
48-
GameObject ObjectTarget;
49-
Vector3 PointTarget;
33+
CameraTargetType TargetType = Object;
34+
engine::GameObject ObjectTarget;
35+
engine::Vector3 PointTarget;
5036

51-
std::shared_ptr<graphical::CameraModule> camera;
37+
graphical::CameraModule camera;
5238

5339
private:
5440

@@ -61,13 +47,13 @@ namespace polymorph::engine
6147
public:
6248
virtual bool isTargetingObject() = 0;
6349

64-
virtual GameObject getTargetObject() = 0;
50+
virtual engine::GameObject getTargetObject() = 0;
6551

66-
virtual void setTargetPosition(Vector3 targetPosition) = 0;
52+
virtual void setTargetPosition(engine::Vector3 targetPosition) = 0;
6753

68-
virtual void setTargetObject(GameObject object) = 0;
54+
virtual void setTargetObject(engine::GameObject object) = 0;
6955

70-
virtual void setUp(Vector3 up) = 0;
56+
virtual void setUp(engine::Vector3 up) = 0;
7157

7258
virtual void setFov(float fov) = 0;
7359

0 commit comments

Comments
 (0)