summaryrefslogtreecommitdiff
path: root/src/particle/particlecontainer.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-05-18 20:11:02 +0300
committerAndrei Karas <akaras@inbox.ru>2014-05-18 20:11:02 +0300
commit1ee62de5ae283068baa8275a01d2245fd2cb7759 (patch)
tree311887f0977aa68b6b8233a8e26de1181d2e1848 /src/particle/particlecontainer.cpp
parentc8e22bbb7cc1531b09b994e06a58fd8c4664b7bb (diff)
downloadmv-1ee62de5ae283068baa8275a01d2245fd2cb7759.tar.gz
mv-1ee62de5ae283068baa8275a01d2245fd2cb7759.tar.bz2
mv-1ee62de5ae283068baa8275a01d2245fd2cb7759.tar.xz
mv-1ee62de5ae283068baa8275a01d2245fd2cb7759.zip
Move particlevector into separate file.
Diffstat (limited to 'src/particle/particlecontainer.cpp')
-rw-r--r--src/particle/particlecontainer.cpp76
1 files changed, 2 insertions, 74 deletions
diff --git a/src/particle/particlecontainer.cpp b/src/particle/particlecontainer.cpp
index 68e0c9d6c..c537a163b 100644
--- a/src/particle/particlecontainer.cpp
+++ b/src/particle/particlecontainer.cpp
@@ -20,9 +20,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "particle/particle.h"
#include "particle/particlecontainer.h"
+#include "particle/particle.h"
+
#include "utils/delete2.h"
#include "debug.h"
@@ -54,76 +55,3 @@ void ParticleContainer::moveTo(const float x, const float y)
if (mNext)
mNext->moveTo(x, y);
}
-
-// -- particle vector ----------------------------------------
-
-ParticleVector::ParticleVector(ParticleContainer *const parent,
- const bool delParent) :
- ParticleContainer(parent, delParent),
- mIndexedElements()
-{}
-
-ParticleVector::~ParticleVector()
-{}
-
-void ParticleVector::setLocally(const int index, Particle *const particle)
-{
- if (index < 0)
- return;
-
- delLocally(index);
-
- if (mIndexedElements.size() <= static_cast<size_t>(index))
- mIndexedElements.resize(index + 1, nullptr);
-
- if (particle)
- particle->disableAutoDelete();
- mIndexedElements[index] = particle;
-}
-
-void ParticleVector::delLocally(const int index)
-{
- if (index < 0)
- return;
-
- if (mIndexedElements.size() <= static_cast<size_t>(index))
- return;
-
- Particle *const p = mIndexedElements[index];
- if (p)
- {
- mIndexedElements[index] = nullptr;
- p->kill();
- }
-}
-
-void ParticleVector::clearLocally()
-{
- for (unsigned int i = 0;
- i < static_cast<unsigned int>(mIndexedElements.size());
- i++)
- {
- delLocally(i);
- }
-}
-
-void ParticleVector::moveTo(const float x, const float y)
-{
- ParticleContainer::moveTo(x, y);
-
- for (std::vector<Particle *>::iterator it = mIndexedElements.begin();
- it != mIndexedElements.end(); ++it)
- {
- Particle *const p = *it;
- if (p)
- {
- p->moveTo(x, y);
-
- if (p->isExtinct())
- {
- p->kill();
- *it = nullptr;
- }
- }
- }
-}