.. _program_listing_file_SPlisHSPlasH_EmitterSystem.h: Program Listing for File EmitterSystem.h ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``SPlisHSPlasH/EmitterSystem.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef __EmitterSystem_h__ #define __EmitterSystem_h__ #include "Common.h" #include #include "Emitter.h" namespace SPH { class TimeStep; class FluidModel; class EmitterSystem { public: EmitterSystem(FluidModel *model); virtual ~EmitterSystem(); protected: FluidModel *m_model; static const unsigned int m_maxParticlesToReusePerStep = 50000; bool m_reuseParticles; Vector3r m_boxMin; Vector3r m_boxMax; unsigned int m_numberOfEmittedParticles; unsigned int m_numReusedParticles; std::vector m_reusedParticles; std::vector m_emitters; void reuseParticles(); public: void enableReuseParticles(const Vector3r &boxMin = Vector3r(-1, -1, -1), const Vector3r &boxMax = Vector3r(1, 1, 1)); void disableReuseParticles(); void addEmitter(const unsigned int width, const unsigned int height, const Vector3r &pos, const Matrix3r & rotation, const Real velocity, const unsigned int type); unsigned int numEmitters() const { return static_cast(m_emitters.size()); } std::vector &getEmitters() { return m_emitters; } unsigned int numReusedParticles() const { return m_numReusedParticles; } unsigned int numEmittedParticles() const { return m_numberOfEmittedParticles; } void step(); void reset(); void saveState(BinaryFileWriter &binWriter); void loadState(BinaryFileReader &binReader); }; } #endif