Castor3D 0.13.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. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device)
 Initialise les elements GPU. Plus de détails...
 
C3D_API void cleanup (RenderDevice const &device)
 Nettoie les elements GPU. Plus de détails...
 
C3D_API void update (CpuUpdater &updater)
 Mise à jour CPU. Plus de détails...
 
C3D_API void update (GpuUpdater &updater)
 Mise à jour GPU. Plus de détails...
 
C3D_API void setMaterial (MaterialRPtr value)
 Definit le materiau. Plus de détails...
 
C3D_API void setDimensions (castor::Point2f const &value)
 Definit les dimensions des particules. Plus de détails...
 
C3D_API void setParticleType (castor::String const &value)
 Definit le nom du type de particules. Plus de détails...
 
C3D_API MaterialRPtr 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. Plus de détails...
 
C3D_API void setCSUpdateProgram (ShaderProgramSPtr program)
 Définit le programme utilisé pour mettre à jour les particules via un compute shader. Plus de détails...
 
C3D_API void setCSGroupSizes (castor::Point3i sizes)
 Définit les dimensions des groupes de travail, tels que définis dans le compute shader. Plus de détails...
 
C3D_API uint32_t getParticlesCount () const
 
C3D_API uint32_t getMaxParticlesCount () const
 
BillboardBaseSPtr 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. Plus de détails...
 
C3D_API MovableObject (castor::String const &name, Scene &scene, MovableType type)
 Constructeur. Plus de détails...
 
virtual C3D_API ~MovableObject ()
 Destructeur. Plus de détails...
 
C3D_API void detach ()
 Détache l'objet de son parent. Plus de détails...
 
virtual C3D_API void attachTo (SceneNode &node)
 Attache l'object à un noeud. Plus de détails...
 
C3D_API void markDirty ()
 Ajout l'objet à la liste des objets à mettre à jour de la scène. Plus de détails...
 
C3D_API EngineRPtr getEngine () const
 
SceneNodegetParent () const
 
MovableType getType () const
 

Attributs protégés

castor::String m_particleType
 
castor::StrStrMap m_defaultValues
 
ParticleDeclaration m_inputs
 
BillboardBaseSPtr m_particlesBillboard
 
castor::Point2f m_dimensions
 
MaterialRPtr 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
 

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()

BillboardBaseSPtr 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 MaterialRPtr 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 ( ShaderProgramSPtr  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 ( MaterialRPtr  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

MaterialRPtr castor3d::ParticleSystem::m_material
protected

Le Material.

◆ m_particlesBillboard

BillboardBaseSPtr 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 :