igraphic 0.2.0
Contrats graphiques chargeables : IGraphic2Module / IGraphic3Module
Loading...
Searching...
No Matches
IGraphic3Module.hpp
Go to the documentation of this file.
1
14#ifndef IGRAPHIC3_MODULE_HPP
15#define IGRAPHIC3_MODULE_HPP
16
17#include "IGraphic2Module.hpp"
18
19#include "window/ICamera.hpp"
20#include "window/IWindow3.hpp"
21
23#include "graphic/IMesh.hpp"
24#include "graphic/IModel.hpp"
25
26
37
38public:
40 static constexpr const char *entry = "getGraphic3Module";
41
46 static constexpr const char *contract = "graphic3";
47
49 static constexpr const char *accepts[] = {"graphic3", nullptr};
50
51 virtual ~IGraphic3Module() = default;
52
53 // window
54 virtual graphic::IWindow3 *createWindow(int32_t screenWidth, int32_t screenHeight, std::string title) = 0;
55
56 // camera
57 virtual graphic::ICamera *createCamera(Vector3f position, Vector3f target, float fov) = 0;
58 virtual void deleteCamera(graphic::ICamera *) = 0;
59 // mesh
60 virtual graphic::IMesh *createMesh(std::string path) = 0;
61 virtual void deleteMesh(graphic::IMesh *mesh) = 0;
62 // animation set
63 virtual graphic::IAnimationSet *createAnimationSet(std::string path) = 0;
64 virtual void deleteAnimationSet(graphic::IAnimationSet *animations) = 0;
65 // model
67 virtual void deleteModel(graphic::IModel *model) = 0;
68};
69
72#endif /* !IGRAPHIC3_MODULE_HPP */
A vendor's 2D factory : window, input, loaded resources and the objects that reference them....
Definition IGraphic2Module.hpp:37
A vendor's 3D factory. Extends IGraphic2Module : implementing it means implementing all of the 2D too...
Definition IGraphic3Module.hpp:36
virtual void deleteModel(graphic::IModel *model)=0
virtual void deleteMesh(graphic::IMesh *mesh)=0
virtual void deleteAnimationSet(graphic::IAnimationSet *animations)=0
virtual void deleteCamera(graphic::ICamera *)=0
static constexpr const char * accepts[]
Rien d'autre ne fait de la 3D : je ne m'accepte que moi.
Definition IGraphic3Module.hpp:49
virtual graphic::IAnimationSet * createAnimationSet(std::string path)=0
virtual graphic::ICamera * createCamera(Vector3f position, Vector3f target, float fov)=0
virtual graphic::IModel * createModel(graphic::IMesh *mesh)=0
virtual ~IGraphic3Module()=default
virtual graphic::IMesh * createMesh(std::string path)=0
static constexpr const char * contract
Definition IGraphic3Module.hpp:46
static constexpr const char * entry
Symbol the loader looks up : present = this vendor can draw 3D.
Definition IGraphic3Module.hpp:40
virtual graphic::IWindow3 * createWindow(int32_t screenWidth, int32_t screenHeight, std::string title)=0
A file's loaded animation clips, independent of any IModel bound to it - deleting every bound IModel ...
Definition IAnimationSet.hpp:26
Camera interface.
Definition ICamera.hpp:23
Loaded geometry (vertices/faces), independent of any IModel instance built from it - deleting every I...
Definition IMesh.hpp:24
Model interface.
Definition IModel.hpp:27
A window that can also draw 3D. Extends IWindow2, so anything that only needs 2D can keep using it as...
Definition IWindow3.hpp:25