| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #include "CInitializer.h"
- #include "Initializers/CLifeTimeRandom.h"
- #include "Initializers/CSizeRandom.h"
- #include "Initializers/CRotationRandom.h"
- #include "Initializers/CVelocityRandom.h"
- #include "Initializers/CColorRandom.h"
- #include "Initializers/CAlphaRandom.h"
- #include "Initializers/CAngularVelocityRandom.h"
- using namespace wp::core::Objects::Particles;
- CInitializer* CInitializer::fromJSON (json data)
- {
- json::const_iterator id_it = data.find ("id");
- json::const_iterator name_it = data.find ("name");
- irr::u32 id = ((id_it == data.end ()) ? 0 : (irr::u32) (*id_it));
- if (name_it == data.end ())
- {
- throw std::runtime_error ("Particle's initializer must have a name");
- }
- if (*name_it == "lifetimerandom")
- {
- return Initializers::CLifeTimeRandom::fromJSON (data, id);
- }
- else if (*name_it == "sizerandom")
- {
- return Initializers::CSizeRandom::fromJSON (data, id);
- }
- else if (*name_it == "rotationrandom")
- {
- return Initializers::CRotationRandom::fromJSON (data, id);
- }
- else if (*name_it == "velocityrandom")
- {
- return Initializers::CVelocityRandom::fromJSON (data, id);
- }
- else if (*name_it == "colorrandom")
- {
- return Initializers::CColorRandom::fromJSON (data, id);
- }
- else if (*name_it == "alpharandom")
- {
- return Initializers::CAlphaRandom::fromJSON (data, id);
- }
- else if (*name_it == "angularvelocityrandom")
- {
- return Initializers::CAngularVelocityRandom::fromJSON (data, id);
- }
- else
- {
- throw std::runtime_error ("Particle's got an unknown initializer");
- }
- }
- CInitializer::CInitializer (irr::u32 id, std::string name) :
- m_id (id),
- m_name (std::move(name))
- {
- }
- std::string& CInitializer::getName ()
- {
- return this->m_name;
- }
- irr::u32 CInitializer::getId ()
- {
- return this->m_id;
- }
|