Class Emitter

Class Documentation

class SPH::Emitter

Public Functions

Emitter(FluidModel *model, const unsigned int width, const unsigned int height, const Vector3r &pos, const Matrix3r &rotation, const Real velocity, const unsigned int type = 0)
virtual ~Emitter()
void emitParticles(std::vector<unsigned int> &reusedParticles, unsigned int &indexReuse, unsigned int &numEmittedParticles)
void emitParticlesCircle(std::vector<unsigned int> &reusedParticles, unsigned int &indexReuse, unsigned int &numEmittedParticles)
inline Real getNextEmitTime() const
inline void setNextEmitTime(Real val)
inline void setEmitStartTime(Real val)
inline void setEmitEndTime(Real val)
void step(std::vector<unsigned int> &reusedParticles, unsigned int &indexReuse, unsigned int &numEmittedParticles)
virtual void reset()
void saveState(BinaryFileWriter &binWriter)
void loadState(BinaryFileReader &binReader)
inline const Vector3r &getPosition() const
inline void setPosition(const Vector3r &x)
inline const Matrix3r &getRotation() const
inline void setRotation(const Matrix3r &r)
inline const Real getVelocity() const
inline void setVelocity(const Real v)

Public Static Functions

static Vector3r getSize(const Real width, const Real height, const int type)

Protected Functions

inline FORCE_INLINE bool inBox (const Vector3r &x, const Vector3r &xBox, const Matrix3r &rotBox, const Vector3r &scaleBox)
inline FORCE_INLINE bool inCylinder (const Vector3r &x, const Vector3r &xCyl, const Matrix3r &rotCyl, const Real h, const Real r2)

Protected Attributes

FluidModel *m_model
unsigned int m_width
unsigned int m_height
Vector3r m_x
Matrix3r m_rotation
Real m_velocity
unsigned int m_type
Real m_nextEmitTime
Real m_emitStartTime
Real m_emitEndTime
unsigned int m_emitCounter