From 1ee62de5ae283068baa8275a01d2245fd2cb7759 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 18 May 2014 20:11:02 +0300 Subject: Move particlevector into separate file. --- src/particle/particlecontainer.h | 104 +++++++++++++-------------------------- 1 file changed, 34 insertions(+), 70 deletions(-) (limited to 'src/particle/particlecontainer.h') diff --git a/src/particle/particlecontainer.h b/src/particle/particlecontainer.h index 81037ce3a..6128688b6 100644 --- a/src/particle/particlecontainer.h +++ b/src/particle/particlecontainer.h @@ -23,13 +23,8 @@ #ifndef PARTICLE_PARTICLECONTAINER_H #define PARTICLE_PARTICLECONTAINER_H -#include -#include - #include "localconsts.h" -class Particle; - /** * Set of particle effects. May be stacked with other ParticleContainers. All * operations herein affect such stacked containers, unless the operations end @@ -37,71 +32,40 @@ class Particle; */ class ParticleContainer { -public: - /** - * Constructs a new particle container and assumes responsibility for - * its parent (for all operations defined herein, except when ending in `Locally') - * - * delParent means that the destructor should also free the parent. - */ - explicit ParticleContainer(ParticleContainer *const parent = nullptr, - const bool delParent = true); - - A_DELETE_COPY(ParticleContainer) - - virtual ~ParticleContainer(); - - /** - * Kills and removes all particle effects - */ - void clear(); - - /** - * Kills and removes all particle effects (only in this container) - */ - virtual void clearLocally() - { } - - /** - * Sets the positions of all elements - */ - virtual void moveTo(const float x, const float y); - -protected: - ParticleContainer *mNext; /**< Contained container, if any */ - bool mDelParent; /**< Delete mNext in destructor */ -}; - -/** - * Particle container with indexing facilities - */ -class ParticleVector final : public ParticleContainer -{ -public: - explicit ParticleVector(ParticleContainer *const parent = nullptr, - const bool delParent = true); - - A_DELETE_COPY(ParticleVector) - - ~ParticleVector(); - - /** - * Sets a particle at a specified index. Kills the previous particle - * there, if needed. - */ - void setLocally(const int index, Particle *const particle); - - /** - * Removes a particle at a specified index - */ - void delLocally(const int index); - - void clearLocally() override final; - - void moveTo(const float x, const float y) override final; - -protected: - std::vector mIndexedElements; + public: + /** + * Constructs a new particle container and assumes responsibility for + * its parent (for all operations defined herein, + * except when ending in `Locally') + * + * delParent means that the destructor should also free the parent. + */ + explicit ParticleContainer(ParticleContainer *const parent = nullptr, + const bool delParent = true); + + A_DELETE_COPY(ParticleContainer) + + virtual ~ParticleContainer(); + + /** + * Kills and removes all particle effects + */ + void clear(); + + /** + * Kills and removes all particle effects (only in this container) + */ + virtual void clearLocally() + { } + + /** + * Sets the positions of all elements + */ + virtual void moveTo(const float x, const float y); + + protected: + ParticleContainer *mNext; /**< Contained container, if any */ + bool mDelParent; /**< Delete mNext in destructor */ }; #endif // PARTICLE_PARTICLECONTAINER_H -- cgit v1.2.3-60-g2f50