#ifndef PARTICLETRAJECTORIESAMPLER_H #define PARTICLETRAJECTORIESAMPLER_H #include #include "..//Particle.h" namespace SMC { /** * interface for Sampling Trajectories of Particles */ template class ParticleTrajectorieSampler { public: /** draw a single particle */ virtual Particle drawSingleParticle(std::vector> const& particles) = 0; /** draw a trajectorie of all incoming particles / like resampling*/ virtual std::vector> drawTrajectorie(std::vector>const& particles, const int num) = 0; private: /** function for drawing particles */ virtual Particle draw(const double cumWeight, std::vector> const& cumParticles, std::vector> const& origParticles) = 0; }; } #endif // ARTIFICIALDISTRIBUTION_H