CEmitter.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <nlohmann/json.hpp>
  3. #include <irrlicht/irrlicht.h>
  4. namespace WallpaperEngine::Core::Objects::Particles
  5. {
  6. using json = nlohmann::json;
  7. class CEmitter
  8. {
  9. public:
  10. const std::string& getName () const;
  11. irr::u32 getDistanceMax () const;
  12. irr::u32 getDistanceMin () const;
  13. irr::core::vector3df* getDirections ();
  14. irr::core::vector3df* getOrigin ();
  15. irr::f64 getRate () const;
  16. protected:
  17. friend class CParticle;
  18. static CEmitter* fromJSON (json data);
  19. CEmitter (
  20. const irr::core::vector3df& directions,
  21. irr::u32 distancemax,
  22. irr::u32 distancemin,
  23. irr::u32 id,
  24. std::string name,
  25. const irr::core::vector3df& origin,
  26. irr::f64 rate
  27. );
  28. private:
  29. irr::core::vector3df m_directions;
  30. irr::u32 m_distancemax;
  31. irr::u32 m_distancemin;
  32. irr::u32 m_id;
  33. std::string m_name;
  34. irr::core::vector3df m_origin;
  35. irr::f64 m_rate;
  36. };
  37. };