CControlPoint.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "CControlPoint.h"
  2. #include "../../../core.h"
  3. using namespace wp::core::Objects::Particles;
  4. CControlPoint* CControlPoint::fromJSON (json data)
  5. {
  6. json::const_iterator flags_it = data.find ("flags");
  7. json::const_iterator id_it = data.find ("id");
  8. json::const_iterator offset_it = data.find ("offset");
  9. if (id_it == data.end ())
  10. {
  11. throw std::runtime_error ("Particle's control point must have id");
  12. }
  13. CControlPoint* controlpoint = new CControlPoint (*id_it, 0);
  14. if (offset_it != data.end ())
  15. {
  16. controlpoint->setOffset (wp::core::ato3vf (*offset_it));
  17. }
  18. if (flags_it != data.end ())
  19. {
  20. controlpoint->setFlags (*flags_it);
  21. }
  22. return controlpoint;
  23. }
  24. CControlPoint::CControlPoint (irr::u32 id, irr::u32 flags) :
  25. m_id (id),
  26. m_flags (flags),
  27. m_offset (irr::core::vector3df ())
  28. {
  29. }
  30. void CControlPoint::setOffset (const irr::core::vector3df& offset)
  31. {
  32. this->m_offset = offset;
  33. }
  34. void CControlPoint::setFlags (irr::u32 flags)
  35. {
  36. this->m_flags = flags;
  37. }
  38. irr::core::vector3df* CControlPoint::getOffset ()
  39. {
  40. return &this->m_offset;
  41. }
  42. irr::u32 CControlPoint::getFlags ()
  43. {
  44. return this->m_flags;
  45. }