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

A class that builds and maintains Confetti objects. More...

#include <Confetti/Builder.h>

Public Member Functions

 Builder (std::minstd_rand &rng)
 Constructor.
 
std::shared_ptr< ParticleSystem > buildParticleSystem (Configuration const &configuration, std::shared_ptr< Vkx::Device > device, vk::CommandPool const &commandPool, vk::Queue const &queue, Vkx::Camera const *camera)
 Returns a new particle system built using the supplied configuration.
 
std::shared_ptr< BasicEmitter > buildEmitter (Configuration::Emitter const &configuration, std::shared_ptr< Vkx::Device > device)
 Builds an emitter.
 
std::shared_ptr< Appearance > buildAppearance (Configuration::Appearance const &configuration, Vkx::Camera const *pCamera)
 Builds an appearance.
 
std::shared_ptr< Environment > buildEnvironment (Configuration::Environment const &configuration)
 Builds an environment.
 
std::shared_ptr< Environment::SurfaceList > buildSurfaceList (Configuration::SurfaceList const &configuration)
 Builds a surface list.
 
std::shared_ptr< Environment::ClipperList > buildClipperList (Configuration::ClipperList const &configuration)
 Builds a clip plane list.
 
std::shared_ptr< EmitterVolume > buildEmitterVolume (Configuration::EmitterVolume const &configuration)
 Builds an emitter volume.
 
std::vector< PointParticle > buildPointParticles (int n, Configuration::Emitter const &emitterConfiguration, EmitterVolume const &volume, Environment const &environment, Appearance const &appearance)
 Builds the particles for a point emitter.
 
std::vector< PointParticle > buildPointParticles (Configuration::Emitter::ParticleVector const &configurations)
 Builds the particles for a point emitter.
 
std::vector< StreakParticle > buildStreakParticles (int n, Configuration::Emitter const &emitterConfiguration, EmitterVolume const &volume, Environment const &environment, Appearance const &appearance)
 Builds the particles for a streak emitter.
 
std::vector< StreakParticle > buildStreakParticles (Configuration::Emitter::ParticleVector const &configurations)
 Builds the particles for a streak emitter.
 
std::vector< TexturedParticle > buildTexturedParticles (int n, Configuration::Emitter const &emitterConfiguration, EmitterVolume const &volume, Environment const &environment, Appearance const &appearance)
 Builds the particles for a textured emitter.
 
std::vector< TexturedParticle > buildTexturedParticles (Configuration::Emitter::ParticleVector const &configurations)
 Builds the particles for a textured emitter.
 
std::vector< SphereParticle > buildSphereParticles (int n, Configuration::Emitter const &emitterConfiguration, EmitterVolume const &volume, Environment const &environment, Appearance const &appearance)
 Builds the particles for a sphere emitter.
 
std::vector< SphereParticle > buildSphereParticles (Configuration::Emitter::ParticleVector const &configurations)
 Builds the particles for a sphere emitter.
 
std::shared_ptr< BasicEmitter > findEmitter (std::string const &name)
 Returns the named emitter or nullptr if not found.
 
std::shared_ptr< EmitterVolume > findEmitterVolume (std::string const &name)
 Returns the named emitter volume or nullptr if not found.
 
std::shared_ptr< Environment > findEnvironment (std::string const &name)
 Returns the named environment or nullptr if not found.
 
std::shared_ptr< Appearance > findAppearance (std::string const &name)
 Returns the named appearance or nullptr if not found.
 
std::shared_ptr< Environment::SurfaceList > findSurfaceList (std::string const &name)
 Returns the named bound plane list or nullptr if not found.
 
std::shared_ptr< Environment::ClipperList > findClipperList (std::string const &name)
 Returns the named clip plane list or nullptr if not found.
 
std::shared_ptr< Vkx::Material > findMaterial (std::string const &name)
 Returns the named material or nullptr if not found.
 
std::shared_ptr< Vkx::Texture > findTexture (std::string const &name)
 Returns the named texture or nullptr if not found.
 

Detailed Description

A class that builds and maintains Confetti objects.