Castor3D 0.16.0
Multiplatform 3D engine
Fonctions membres publiques | Attributs protégés | Liste de tous les membres
Référence de la classe castor3d::ParticleSystem

#include <ParticleSystem.hpp>

Graphe d'héritage de castor3d::ParticleSystem:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::ParticleSystem:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API ParticleSystem (castor::String const &name, Scene &scene, SceneNode &parent, uint32_t count)
 Constructeur.
 
C3D_API bool initialise (RenderDevice const &device)
 Initialise les elements GPU.
 
C3D_API void cleanup (RenderDevice const &device)
 Nettoie les elements GPU.
 
C3D_API void update (CpuUpdater &updater)
 Mise à jour CPU.
 
C3D_API void update (GpuUpdater &updater)
 Mise à jour GPU.
 
C3D_API void setMaterial (MaterialObs value)
 Definit le materiau.
 
C3D_API void setDimensions (castor::Point2f const &value)
 Definit les dimensions des particules.
 
C3D_API void setParticleType (castor::String const &value)
 Definit le nom du type de particules.
 
C3D_API MaterialObs getMaterial () const
 
C3D_API castor::Point2f const & getDimensions () const
 
C3D_API void addParticleVariable (castor::String const &name, ParticleFormat type, castor::String const &defaultValue)
 Ajoute une variable de particule.
 
C3D_API void setCSUpdateProgram (ShaderProgramRPtr program)
 Définit le programme utilisé pour mettre à jour les particules via un compute shader.
 
C3D_API void setCSGroupSizes (castor::Point3i sizes)
 Définit les dimensions des groupes de travail, tels que définis dans le compute shader.
 
C3D_API uint32_t getParticlesCount () const
 
C3D_API uint32_t getMaxParticlesCount () const
 
BillboardBaseRPtr getBillboards () const
 
castor::StrStrMap const & getDefaultValues () const
 
castor::String const & getParticleType () const
 
ParticleDeclaration const & getParticleVariables () const
 
ComputeParticleSystem const & getCompute () const
 
- Fonctions membres publiques hérités de castor3d::MovableObject
C3D_API MovableObject (castor::String const &name, Scene &scene, MovableType type, SceneNode &node)
 Constructeur.
 
C3D_API MovableObject (castor::String const &name, Scene &scene, MovableType type)
 Constructeur.
 
virtual C3D_API ~MovableObject () noexcept
 Destructeur.
 
C3D_API void detach ()
 Détache l'objet de son parent.
 
virtual C3D_API void attachTo (SceneNode &node)
 Attache l'object à un noeud.
 
C3D_API void markDirty ()
 Ajout l'objet à la liste des objets à mettre à jour de la scène.
 
C3D_API EngineRPtr getEngine () const noexcept
 
SceneNodegetParent () const noexcept
 
MovableType getMovableType () const noexcept
 
- Fonctions membres publiques hérités de castor::OwnedBy< Scene >
Scene * getOwner () const
 L'objet propriétaire.
 
- Fonctions membres publiques hérités de castor::NamedBaseT< T >
 NamedBaseT (T name) noexcept
 Constructeur.
 
T const & getName () const noexcept
 Récupère le nom.
 
void rename (T name) noexcept
 

Attributs protégés

castor::String m_particleType
 
castor::StrStrMap m_defaultValues
 
ParticleDeclaration m_inputs
 
BillboardBaseUPtr m_particlesBillboard
 
castor::Point2f m_dimensions
 
MaterialObs m_material
 
uint32_t m_particlesCount { 0u }
 
uint32_t m_activeParticlesCount { 0u }
 
castor::PreciseTimer m_timer
 
bool m_firstUpdate { true }
 
castor::Milliseconds m_time { 0 }
 
castor::Milliseconds m_totalTime { 0 }
 
CpuParticleSystemUPtr m_cpuImpl
 
ComputeParticleSystemUPtr m_csImpl
 
ParticleSystemImplm_impl { nullptr }
 
- Attributs protégés hérités de castor3d::MovableObject
MovableType m_type
 
SceneNodem_sceneNode {}
 
OnSceneNodeChangedConnection m_notifyIndex
 
- Attributs protégés hérités de castor::NamedBaseT< T >
m_name
 

Membres hérités additionnels

- Fonctions membres protégées hérités de castor::OwnedBy< Scene >
 OwnedBy (Scene &owner)
 Constructeur.
 

Documentation des constructeurs et destructeur

◆ ParticleSystem()

C3D_API castor3d::ParticleSystem::ParticleSystem ( castor::String const & name,
Scene & scene,
SceneNode & parent,
uint32_t count )

Constructeur.

Paramètres
[in]nameLe nom.
[in]sceneLa scene parente.
[in]parentLe noeud de scène parent.
[in]countLe nombre de particules.

Documentation des fonctions membres

◆ addParticleVariable()

C3D_API void castor3d::ParticleSystem::addParticleVariable ( castor::String const & name,
ParticleFormat type,
castor::String const & defaultValue )

Ajoute une variable de particule.

Paramètres
[in]nameLe nom de la variable.
[in]typeLe type de la variable.
[in]defaultValueLa valeur par défaut de la variable.

◆ cleanup()

C3D_API void castor3d::ParticleSystem::cleanup ( RenderDevice const & device)

Nettoie les elements GPU.

Paramètres
[in]deviceLe device GPU.

◆ getBillboards()

BillboardBaseRPtr castor3d::ParticleSystem::getBillboards ( ) const
inline
Renvoie
Les billboards.

Références m_particlesBillboard.

◆ getCompute()

ComputeParticleSystem const & castor3d::ParticleSystem::getCompute ( ) const
inline
Renvoie
L'implémentation basée sur les compute shaders.

Références m_csImpl.

◆ getDefaultValues()

castor::StrStrMap const & castor3d::ParticleSystem::getDefaultValues ( ) const
inline
Renvoie
Les valeurs par défaut des composantes d'une particule.

Références m_defaultValues.

◆ getDimensions()

C3D_API castor::Point2f const & castor3d::ParticleSystem::getDimensions ( ) const
Renvoie
Les dimensions des billboards.

◆ getMaterial()

C3D_API MaterialObs castor3d::ParticleSystem::getMaterial ( ) const
Renvoie
Le materiau.

◆ getMaxParticlesCount()

C3D_API uint32_t castor3d::ParticleSystem::getMaxParticlesCount ( ) const
inline
Renvoie
Le nombre de particules maximum.

Références m_particlesCount.

◆ getParticlesCount()

C3D_API uint32_t castor3d::ParticleSystem::getParticlesCount ( ) const
inline
Renvoie
Le nombre de particules écrites lors de la dernière mise à jour.

Références m_activeParticlesCount.

◆ getParticleType()

castor::String const & castor3d::ParticleSystem::getParticleType ( ) const
inline
Renvoie
Le nom du type de particules.

Références m_particleType.

◆ getParticleVariables()

ParticleDeclaration const & castor3d::ParticleSystem::getParticleVariables ( ) const
inline
Renvoie
Les variables des particules.

Références m_inputs.

◆ initialise()

C3D_API bool castor3d::ParticleSystem::initialise ( RenderDevice const & device)

Initialise les elements GPU.

Paramètres
[in]deviceLe device GPU.
Renvoie
true si tout s'est bien passe.

◆ setCSGroupSizes()

C3D_API void castor3d::ParticleSystem::setCSGroupSizes ( castor::Point3i sizes)

Définit les dimensions des groupes de travail, tels que définis dans le compute shader.

Paramètres
[in]sizesLes dimensions.

◆ setCSUpdateProgram()

C3D_API void castor3d::ParticleSystem::setCSUpdateProgram ( ShaderProgramRPtr program)

Définit le programme utilisé pour mettre à jour les particules via un compute shader.

Paramètres
[in]programLe programme.

◆ setDimensions()

C3D_API void castor3d::ParticleSystem::setDimensions ( castor::Point2f const & value)

Definit les dimensions des particules.

Paramètres
[in]valueLa nouvelle valeur.

◆ setMaterial()

C3D_API void castor3d::ParticleSystem::setMaterial ( MaterialObs value)

Definit le materiau.

Paramètres
[in]valueLa nouvelle valeur

◆ setParticleType()

C3D_API void castor3d::ParticleSystem::setParticleType ( castor::String const & value)

Definit le nom du type de particules.

Paramètres
[in]valueLa nouvelle valeur.

◆ update() [1/2]

C3D_API void castor3d::ParticleSystem::update ( CpuUpdater & updater)

Mise à jour CPU.

Paramètres
[in,out]updaterLes données d'update.

◆ update() [2/2]

C3D_API void castor3d::ParticleSystem::update ( GpuUpdater & updater)

Mise à jour GPU.

Paramètres
[in,out]updaterLes données d'update.

Documentation des données membres

◆ m_activeParticlesCount

uint32_t castor3d::ParticleSystem::m_activeParticlesCount { 0u }
protected

Le nombre de particules actives.

Référencé par getParticlesCount().

◆ m_cpuImpl

CpuParticleSystemUPtr castor3d::ParticleSystem::m_cpuImpl
protected

L'implémentation CPU.

◆ m_csImpl

ComputeParticleSystemUPtr castor3d::ParticleSystem::m_csImpl
protected

L'implémentation utilisant un compute shader.

Référencé par getCompute().

◆ m_defaultValues

castor::StrStrMap castor3d::ParticleSystem::m_defaultValues
protected

La map de valeur par défaut pour les variables.

Référencé par getDefaultValues().

◆ m_dimensions

castor::Point2f castor3d::ParticleSystem::m_dimensions
protected

Les dimensions des billboards.

◆ m_firstUpdate

bool castor3d::ParticleSystem::m_firstUpdate { true }
protected

Dit que la prochaine mise à jour est la première.

◆ m_impl

ParticleSystemImpl* castor3d::ParticleSystem::m_impl { nullptr }
protected

L'implémentation choisie après initialisation.

◆ m_inputs

ParticleDeclaration castor3d::ParticleSystem::m_inputs
protected

La description des élément d'une particule.

Référencé par getParticleVariables().

◆ m_material

MaterialObs castor3d::ParticleSystem::m_material
protected

Le Material.

◆ m_particlesBillboard

BillboardBaseUPtr castor3d::ParticleSystem::m_particlesBillboard
protected

Les billboards contenant les particules.

Référencé par getBillboards().

◆ m_particlesCount

uint32_t castor3d::ParticleSystem::m_particlesCount { 0u }
protected

Le nombre de particules.

Référencé par getMaxParticlesCount().

◆ m_particleType

castor::String castor3d::ParticleSystem::m_particleType
protected

Le nom du type de particules.

Référencé par getParticleType().

◆ m_time

castor::Milliseconds castor3d::ParticleSystem::m_time { 0 }
protected

Le temps écoulé depuis la dernière frame.

◆ m_timer

castor::PreciseTimer castor3d::ParticleSystem::m_timer
protected

Le timer, pour la mise à jour des particules.

◆ m_totalTime

castor::Milliseconds castor3d::ParticleSystem::m_totalTime { 0 }
protected

Le temps total écoulé.


La documentation de cette classe a été générée à partir du fichier suivant :