CProject.h 788 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <irrlicht/irrlicht.h>
  3. #include <nlohmann/json.hpp>
  4. #include "CScene.h"
  5. #include "Projects/CProperty.h"
  6. namespace WallpaperEngine::Core
  7. {
  8. using json = nlohmann::json;
  9. class CScene;
  10. class CProject
  11. {
  12. public:
  13. static CProject* fromFile (const irr::io::path& filename);
  14. CScene* getScene ();
  15. std::string getTitle ();
  16. std::string getType ();
  17. std::vector<Projects::CProperty*>* getProperties ();
  18. protected:
  19. CProject (std::string title, std::string type, CScene* scene);
  20. void insertProperty (Projects::CProperty* property);
  21. private:
  22. std::vector<Projects::CProperty*> m_properties;
  23. std::string m_title;
  24. std::string m_type;
  25. CScene* m_scene;
  26. };
  27. };