object.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef WALLENGINE_OBJECT_H
  2. #define WALLENGINE_OBJECT_H
  3. #include <iostream>
  4. #include <irrlicht/irrlicht.h>
  5. #include <nlohmann/json.hpp>
  6. #include <WallpaperEngine/video/node.h>
  7. #include <WallpaperEngine/effect.h>
  8. #include <WallpaperEngine/scene.h>
  9. namespace WallpaperEngine
  10. {
  11. using json = nlohmann::json;
  12. class object3d;
  13. class scene;
  14. class effect;
  15. class object : public WallpaperEngine::video::node
  16. {
  17. public:
  18. object (json json_data, WallpaperEngine::scene* scene);
  19. ~object ();
  20. irr::core::vector2df& getSize ();
  21. irr::core::vector3df& getScale ();
  22. irr::core::vector3df& getOrigin ();
  23. irr::core::vector3df& getAngles ();
  24. std::vector<effect*>& getEffects ();
  25. WallpaperEngine::scene* getScene ();
  26. void render ();
  27. private:
  28. int m_id;
  29. WallpaperEngine::scene* m_scene;
  30. std::string m_name;
  31. irr::core::vector2df m_size;
  32. irr::core::vector3df m_scale;
  33. irr::core::vector3df m_origin;
  34. irr::core::vector3df m_angles;
  35. WallpaperEngine::object3d* m_object3d;
  36. std::vector<effect*> m_effects;
  37. };
  38. };
  39. #endif //WALLENGINE_OBJECT_H