#pragma once #include #include #include "CControlPoint.h" #include "CEmitter.h" #include "CInitializer.h" #include "../../CObject.h" namespace WallpaperEngine::Core::Objects::Particles { using json = nlohmann::json; class CParticle : CObject { public: std::vector* getEmitters (); std::vector* getControlPoints (); std::vector* getInitializers (); protected: friend class CObject; static CParticle* fromFile ( const irr::io::path& filename, irr::u32 id, std::string name, const irr::core::vector3df& origin, const irr::core::vector3df& scale ); CParticle ( irr::u32 starttime, irr::u32 maxcount, irr::u32 id, std::string name, const irr::core::vector3df& origin, const irr::core::vector3df& scale ); void insertControlPoint (CControlPoint* controlpoint); void insertEmitter (CEmitter* emitter); void insertInitializer (CInitializer* initializer); private: irr::u32 m_starttime; irr::u32 m_maxcount; std::vector m_controlpoints; std::vector m_emitters; std::vector m_initializers; }; };