#include "core/particles/Particle.h"


//------------------------------------------------------------------------------
Particle::Particle():
    m_ParentEmitter(nullptr),
    m_ParticleType(PT_VISUAL),
    m_Enabled(true),
    m_Emittable(false),

    additional_data(nullptr),
    position(Ogre::Vector3::ZERO),
    direction(Ogre::Vector3::ZERO),
    time_to_live(10),
    total_time_to_live(10)
{
}

//------------------------------------------------------------------------------
Particle::~Particle()
{
}

//------------------------------------------------------------------------------
void
Particle::Update(Ogre::Real time_elapsed)
{
    position += direction * time_elapsed;
}

//------------------------------------------------------------------------------
void
Particle::CopyAttributesTo(Particle* particle)
{
    // do not copy m_ParentEmitter and m_ParticleType
    // this can be emited from other emitter and have different type
    particle->m_Enabled = m_Enabled;
    particle->SetEmittable(m_Emittable);

    particle->position = position;
    particle->direction = direction;
    particle->time_to_live = time_to_live;
    particle->total_time_to_live = total_time_to_live;
}

//------------------------------------------------------------------------------
