CEmitter.h 1018 B

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