linux-wallpaperengine/src/WallpaperEngine/Core/Objects/CParticle.h
Alexis Maiquez dd76439901 ~ fixed a_TexCoord variable not having the correct values
- removed irrlicht functions and types from the active codebase so it's no longer required at compile time (CContext still there as the code might be still be useful)

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
2021-08-31 02:29:28 +02:00

54 lines
1.7 KiB
C++

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