Class Emitter

Class Documentation

class 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)
inline const unsigned int getObjectId() const
inline void setObjectId(const unsigned int 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
unsigned int m_objectId