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

An EmitterVolume that emits particles from the interior of a cylinder. More...

#include <Confetti/EmitterVolume.h>

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

Public Member Functions

 EmitterCylinder (float radius, float height)
 Constructor. More...
 
virtual ~EmitterCylinder () override=default
 Destructor.
 
Overrides EmitterVolume
glm::vec3 operator() (std::minstd_rand &rng) const override
 Returns a value used to specify a particle's point of emission. More...
 
- Public Member Functions inherited from Confetti::EmitterVolume
virtual ~EmitterVolume ()=default
 Destructor.
 

Detailed Description

An EmitterVolume that emits particles from the interior of a cylinder.

The points are distributed uniformly in the volume using this function:

    Given the values r and h, and the random values t:[0,1), u:[0,1), and
    v:[0,1),
    
        x = t * r * cos( u * TWO_PI )
        y = t * r * sin( u * TWO_PI )
        z = h * v
    

Constructor & Destructor Documentation

◆ EmitterCylinder()

Confetti::EmitterCylinder::EmitterCylinder ( float  radius,
float  height 
)

Constructor.

Parameters
rngRandom number generator.
radiusRadius of the cylinder.
heightHeight of the cylinder.

Member Function Documentation

◆ operator()()

glm::vec3 Confetti::EmitterCylinder::operator() ( std::minstd_rand &  rng) const
overridevirtual

Returns a value used to specify a particle's point of emission.

Parameters
rngRandom number generator.
Note
This method must be overridden.

Implements Confetti::EmitterVolume.