PARTICLES.CPP
Upload User: nthssl
Upload Date: 2022-04-05
Package Size: 25357k
Code Size: 1k
Category:

OpenCV

Development Platform:

Visual C++

  1. #include "Particles.h"
  2. // 构造函数
  3. CParticleSystem::CParticleSystem(int maxParticles, CVector origin)
  4. {
  5. m_maxParticles = maxParticles;
  6. m_origin = origin;
  7. m_particleList = NULL;
  8. // 生成新粒子
  9. int CParticleSystem::Emit(int numParticles)
  10. {
  11. // 生成numParticles个新粒子
  12. while (numParticles && (m_numParticles < m_maxParticles))
  13. {
  14. // 初始化当前粒子,并计数
  15. InitializeParticle(m_numParticles++);
  16. --numParticles;
  17. }
  18. return numParticles;
  19. // 在系统中为最大数目的粒子分配内存空间
  20. void CParticleSystem::InitializeSystem()
  21. {
  22. // 如果有粒子存在,则释放内存空间
  23. if (m_particleList)
  24. {
  25. delete[] m_particleList;
  26. m_particleList = NULL;
  27. }
  28. // 分配最大数目的粒子空间
  29. m_particleList = new particle_t[m_maxParticles];
  30. // 重置粒子数目和累积时间
  31. m_numParticles = 0;
  32. m_accumulatedTime = 0.0f;
  33. // 销毁粒子系统
  34. void CParticleSystem::KillSystem()
  35. {
  36. if (m_particleList)
  37. {
  38. delete[] m_particleList;
  39. m_particleList = NULL;
  40. }
  41. m_numParticles = 0;