virtual void mt_Update(float delta_time_s, ParticleContainer& particles)
	{
		auto& l_Life = particles.m_Lifespan;
		auto& l_MLife = particles.m_Max_Lifespan;
		auto& l_Col = particles.m_Current_Color;
		auto& l_SCol = particles.m_Start_Color;
		auto& l_FCol = particles.m_Final_Color;
		auto& l_Rot = particles.m_Current_Rotation;
		auto& l_SRot = particles.m_Start_Rotation;
		auto& l_FRot = particles.m_Final_Rotation;
		auto& l_Size = particles.m_Current_Size;
		auto& l_SSize = particles.m_Start_Size;
		auto& l_FSize = particles.m_Final_Size;

		for (std::size_t ii = 0; ii < particles.mt_Get_Alive_Count(); ii++)
		{
			if (l_SCol[ii].r != l_FCol[ii].r)
			{
				l_Col[ii].r = misc::fn_Time_Interpolate<sf::Uint8>(0.0f, l_MLife[ii], l_SCol[ii].r, l_FCol[ii].r, l_Life[ii]);
			}
			if (l_SCol[ii].g != l_FCol[ii].g)
			{
				l_Col[ii].g = misc::fn_Time_Interpolate<sf::Uint8>(0.0f, l_MLife[ii], l_SCol[ii].g, l_FCol[ii].g, l_Life[ii]);
			}
			if (l_SCol[ii].b != l_FCol[ii].b)
			{
				l_Col[ii].b = misc::fn_Time_Interpolate<sf::Uint8>(0.0f, l_MLife[ii], l_SCol[ii].b, l_FCol[ii].b, l_Life[ii]);
			}
			if (l_SCol[ii].a != l_FCol[ii].a)
			{
				l_Col[ii].a = misc::fn_Time_Interpolate<sf::Uint8>(0.0f, l_MLife[ii], l_SCol[ii].a, l_FCol[ii].a, l_Life[ii]);
			}
		}

		for (std::size_t ii = 0; ii < particles.mt_Get_Alive_Count(); ii++)
		{
			if (l_SRot[ii] != l_FRot[ii])
			{
				l_Rot[ii] = misc::fn_Time_Interpolate<float>(0.0f, l_MLife[ii], l_SRot[ii], l_FRot[ii], l_Life[ii]);
			}
		}

		for (std::size_t ii = 0; ii < particles.mt_Get_Alive_Count(); ii++)
		{
			if (l_SSize[ii] != l_FSize[ii])
			{
				l_Size[ii].x = misc::fn_Time_Interpolate<float>(0.0f, l_MLife[ii], l_SSize[ii].x, l_FSize[ii].x, l_Life[ii]);
				l_Size[ii].y = misc::fn_Time_Interpolate<float>(0.0f, l_MLife[ii], l_SSize[ii].y, l_FSize[ii].y, l_Life[ii]);
			}
		}
	}