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

A sphere-shaped lit Particle with a radius. More...

#include <Confetti/SphereParticle.h>

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

Classes

struct  VBEntry
 

Public Member Functions

 SphereParticle ()=default
 Constructor.
 
 SphereParticle (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color, float radius)
 Constructor. More...
 
virtual ~SphereParticle () override=default
 Destructor.
 
float GetRadius () const
 Returns the particle's radius.
 
Overrides Particle
void Initialize (float lifetime, float age, glm::vec3 const &position, glm::vec3 const &velocity, glm::vec4 const &color, float radius)
 
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 sphere-shaped lit Particle with a radius.

Constructor & Destructor Documentation

◆ SphereParticle()

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

Constructor.

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

Member Function Documentation

◆ draw()

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

Draws the particle.

Note
This method must be overridden.

Implements Confetti::Particle.

◆ Initialize()

void Confetti::SphereParticle::Initialize ( float  lifetime,
float  age,
glm::vec3 const &  position,
glm::vec3 const &  velocity,
glm::vec4 const &  color,
float  radius 
)
Parameters
lifetimeHow long the particle lives.
ageInitial age.
colorColor at birth.
positionPosition at birth.
velocityVelocity at birth.
radiusRadius at birth.

◆ update()

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

Reimplemented from Confetti::Particle.