Confetti  0.1.0
A C++ particle system using Vulkan
Classes | Public Member Functions | List of all members
Confetti::StreakParticle Class Reference

A line-shaped Particle whose length and direction depend on its velocity. More...

#include <Confetti/StreakParticle.h>

Inheritance diagram for Confetti::StreakParticle:
Inheritance graph
[legend]

Classes

struct  VBEntry
 Vertex buffer info. More...
 

Public Member Functions

 StreakParticle ()=default
 Constructor.
 
 StreakParticle (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color)
 Constructor. More...
 
virtual ~StreakParticle () override=default
 Destructor.
 
void Initialize (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color)
 Initializes a particle constructed with the default constructor. More...
 
glm::vec3 const & GetTailPosition () const
 Returns the position of the particle's tail.
 
Overrides Particle
virtual bool update (float dt) override
 Updates the particle. Returns true if the particle was reborn. More...
 
virtual void draw (std::shared_ptr< Vkx::Device > device) const override
 Draws the particle. More...
 
- Public Member Functions inherited from Confetti::Particle
 Particle ()=default
 Constructor.
 
 Particle (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color)
 Constructor. More...
 
virtual ~Particle ()=default
 Destructor.
 
void bind (BasicEmitter *pEmitter)
 Binds to an emitter.
 
float age () const
 Returns the age of the particle.
 
glm::vec3 position () const
 Returns the particle's current position.
 
glm::vec3 velocity () const
 Returns the particle's current velocity.
 
glm::vec4 color () const
 Returns the particle's current velocity.
 

Additional Inherited Members

- Protected Member Functions inherited from Confetti::Particle
void initialize (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color)
 Initializes after using the default constructor. More...
 
- Protected Attributes inherited from Confetti::Particle
BasicEmitter const * emitter_
 This particle's emitter.
 
float lifetime_
 Max age.
 
float age_
 Current age.
 
glm::vec3 initialPosition_
 Position at birth relative to emitter.
 
glm::vec3 initialVelocity_
 Velocity at birth relative to emitter.
 
glm::vec3 position_
 Current position.
 
glm::vec3 velocity_
 Current velocity.
 
glm::vec4 initialColor_
 Color at birth.
 
glm::vec4 color_
 Current color.
 

Detailed Description

A line-shaped Particle whose length and direction depend on its velocity.

Constructor & Destructor Documentation

◆ StreakParticle()

Confetti::StreakParticle::StreakParticle ( float  lifetime,
float  age,
glm::vec3 const &  position,
glm::vec3 const &  velocity,
glm::vec4 const &  color 
)

Constructor.

Parameters
pEmitterThe emitter that controls this particle
lifetimeHow long the particle lives.
ageInitial age.
positionPosition at birth.
velocityVelocity at birth.
colorColor at birth.

Member Function Documentation

◆ draw()

void Confetti::StreakParticle::draw ( std::shared_ptr< Vkx::Device >  device) const
overridevirtual

Draws the particle.

Note
This method must be overridden.

Implements Confetti::Particle.

◆ Initialize()

void Confetti::StreakParticle::Initialize ( float  lifetime,
float  age,
glm::vec3 const &  position,
glm::vec3 const &  velocity,
glm::vec4 const &  color 
)

Initializes a particle constructed with the default constructor.

Parameters
lifetimeHow long the particle lives.
ageInitial age.
positionPosition at birth.
velocityVelocity at birth.
colorColor at birth.

◆ update()

bool Confetti::StreakParticle::update ( float  dt)
overridevirtual

Updates the particle. Returns true if the particle was reborn.

Parameters
dtThe amount of time that has passed since the last update.
Note
Methods overriding this method must call this first in order to determine the particle's age and if it has been reborn or not.

Reimplemented from Confetti::Particle.