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

A square camera-facing Particle with a texture, radius, and 2D rotation. More...

#include <Confetti/TexturedParticle.h>

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

Classes

struct  VBEntry
 Vertex buffer info. More...
 

Public Member Functions

 TexturedParticle ()=default
 Constructor.
 
 TexturedParticle (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color, float radius, float rotation)
 Constructor. More...
 
virtual ~TexturedParticle () override=default
 Destructor.
 
void Initialize (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color, float radius, float rotation=0)
 Initializes a particle constructed with the default constructor. More...
 
float radius () const
 Returns the particle's current radius.
 
float rotation () const
 Returns the particle's current rotation.
 
Overrides Particle
virtual bool update (float dt) override
 
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 square camera-facing Particle with a texture, radius, and 2D rotation.

Constructor & Destructor Documentation

◆ TexturedParticle()

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

Constructor.

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

Member Function Documentation

◆ draw()

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

Draws the particle.

Note
This method must be overridden.

Implements Confetti::Particle.

◆ Initialize()

void Confetti::TexturedParticle::Initialize ( float  lifetime,
float  age,
glm::vec3 const &  position,
glm::vec3 const &  velocity,
glm::vec4 const &  color,
float  radius,
float  rotation = 0 
)

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.
radiusRadius at birth.
rotationRotation at birth.

◆ update()

bool Confetti::TexturedParticle::update ( float  dt)
overridevirtual
Parameters
dtThe amount of time that has passed since the last update

Reimplemented from Confetti::Particle.