CControlPoint.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "CControlPoint.h"
  2. using namespace WallpaperEngine::Core::Objects::Particles;
  3. CControlPoint* CControlPoint::fromJSON (json data)
  4. {
  5. auto flags_it = data.find ("flags");
  6. auto id_it = jsonFindRequired (data, "id", "Particle's control point must have id");
  7. auto offset_it = data.find ("offset");
  8. CControlPoint* controlpoint = new CControlPoint (*id_it, 0);
  9. if (offset_it != data.end ())
  10. {
  11. controlpoint->setOffset (WallpaperEngine::Core::aToVector3 (*offset_it));
  12. }
  13. if (flags_it != data.end ())
  14. {
  15. controlpoint->setFlags (*flags_it);
  16. }
  17. return controlpoint;
  18. }
  19. CControlPoint::CControlPoint (uint32_t id, uint32_t flags) :
  20. m_id (id),
  21. m_flags (flags),
  22. m_offset (glm::vec3 ())
  23. {
  24. }
  25. void CControlPoint::setOffset (const glm::vec3& offset)
  26. {
  27. this->m_offset = offset;
  28. }
  29. void CControlPoint::setFlags (uint32_t flags)
  30. {
  31. this->m_flags = flags;
  32. }
  33. const glm::vec3& CControlPoint::getOffset () const
  34. {
  35. return this->m_offset;
  36. }
  37. const uint32_t CControlPoint::getFlags () const
  38. {
  39. return this->m_flags;
  40. }