Castor3D  ..
Classes | Fonctions membres publiques | Attributs protégés | Amis | Liste de tous les membres
Référence de la classe Castor3D::ParticleSystem

Implémentation d'un système de particules. Plus de détails...

+ Graphe d'héritage de Castor3D::ParticleSystem:
+ Graphe de collaboration de Castor3D::ParticleSystem:

Classes

class  TextWriter
 Loader de ParticleSystem. Plus de détails...
 

Fonctions membres publiques

C3D_API ParticleSystem (Castor::String const &p_name, Scene &p_scene, SceneNodeSPtr p_parent, size_t p_count)
 Constructeur. Plus de détails...
 
C3D_API ~ParticleSystem ()
 Destructeur. Plus de détails...
 
C3D_API bool Initialise ()
 Initialise les elements GPU. Plus de détails...
 
C3D_API void Cleanup ()
 Nettoie les elements GPU. Plus de détails...
 
C3D_API void Update ()
 Met à jour les particules. Plus de détails...
 
C3D_API void SetMaterial (MaterialSPtr p_value)
 Definit le materiau. Plus de détails...
 
C3D_API void SetDimensions (Castor::Size const &p_value)
 Definit les dimensions des particules. Plus de détails...
 
C3D_API void SetParticleType (Castor::String const &p_value)
 Definit le nom du type de particules. Plus de détails...
 
C3D_API MaterialSPtr GetMaterial () const
 
C3D_API Castor::Size const & GetDimensions () const
 
C3D_API void AddParticleVariable (Castor::String const &p_name, ElementType p_type, Castor::String const &p_defaultValue)
 Ajoute une variable de particule. Plus de détails...
 
C3D_API void SetTFUpdateProgram (ShaderProgramSPtr p_program)
 Définit le programme utilisé pour mettre à jour les particules via le transform feedback. Plus de détails...
 
C3D_API void SetCSUpdateProgram (ShaderProgramSPtr p_program)
 Définit le programme utilisé pour mettre à jour les particules via un compute shader. Plus de détails...
 
C3D_API uint32_t GetParticlesCount () const
 
C3D_API size_t GetMaxParticlesCount () const
 
BillboardBaseSPtr GetBillboards () const
 
Castor::StrStrMap const & GetDefaultValues () const
 
Castor::String const & GetParticleType () const
 
BufferDeclaration const & GetParticleVariables () const
 
- Fonctions membres publiques hérités de Castor3D::MovableObject
C3D_API MovableObject (Castor::String const &p_name, Scene &p_scene, MovableType p_type, SceneNodeSPtr p_sn)
 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 (SceneNodeSPtr p_node)
 Attache l'object à un noeud. Plus de détails...
 
SceneNodeSPtr GetParent () const
 Récupère le noeud parent. Plus de détails...
 
MovableType GetType () const
 Récupère le type d'objet. Plus de détails...
 
- Fonctions membres publiques hérités de Castor3D::Animable
C3D_API void CleanupAnimations ()
 Vid ela map d'animations. Plus de détails...
 
C3D_API bool HasAnimation (Castor::String const &p_name) const
 Récupère une animation. Plus de détails...
 
C3D_API Animation const & GetAnimation (Castor::String const &p_name) const
 Récupère une animation. Plus de détails...
 
C3D_API AnimationGetAnimation (Castor::String const &p_name)
 Récupère une animation. Plus de détails...
 
AnimationPtrStrMap const & GetAnimations () const
 

Attributs protégés

Castor::String m_particleType
 
Castor::StrStrMap m_defaultValues
 
BufferDeclaration m_inputs
 
BufferDeclaration m_billboardInputs
 
BillboardBaseSPtr m_particlesBillboard
 
Castor::Size m_dimensions
 
MaterialWPtr m_material
 
size_t m_particlesCount { 0u }
 
uint32_t m_activeParticlesCount { 0u }
 
uint32_t m_centerOffset { 0u }
 
Castor::PreciseTimer m_timer
 
bool m_firstUpdate { true }
 
std::chrono::milliseconds m_totalTime { 0 }
 
CpuParticleSystemUPtr m_cpuImpl
 
TransformFeedbackParticleSystemUPtr m_tfImpl
 
ComputeParticleSystemUPtr m_csImpl
 
ParticleSystemImplm_impl { nullptr }
 
- Attributs protégés hérités de Castor3D::MovableObject
MovableType m_type
 
Castor::String m_strNodeName
 
SceneNodeWPtr m_sceneNode
 
SceneNode::OnChanged::connection m_notifyIndex
 
- Attributs protégés hérités de Castor3D::Animable
AnimationPtrStrMap m_animations
 

Amis

class TextWriter
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Castor3D::Animable
 Animable (Scene &p_scene)
 Constructeur. Plus de détails...
 
virtual ~Animable ()
 Destructeur. Plus de détails...
 
C3D_API Animable (Animable &&p_rhs)=default
 Constructeur par déplacement. Plus de détails...
 
C3D_API Animableoperator= (Animable &&p_rhs)=default
 Opérateur d'affectation par déplacement. Plus de détails...
 
C3D_API Animable (Animable const &p_rhs)=delete
 Constructeur par copie. Plus de détails...
 
C3D_API Animableoperator= (Animable const &p_rhs)=delete
 Opérateur d'affectation par copie. Plus de détails...
 
void DoAddAnimation (AnimationSPtr &&p_animation)
 Ajoute une animation. Plus de détails...
 
template<typename Type >
Type & DoGetAnimation (Castor::String const &p_name)
 Récupère une animation. Plus de détails...
 

Description détaillée

Implémentation d'un système de particules.

Auteur
Sylvain DOREMUS
Version
0.9.0
Date
19/10/2016

Documentation des constructeurs et destructeur

◆ ParticleSystem()

C3D_API Castor3D::ParticleSystem::ParticleSystem ( Castor::String const &  p_name,
Scene p_scene,
SceneNodeSPtr  p_parent,
size_t  p_count 
)

Constructeur.

Paramètres
[in]p_nameLe nom.
[in]p_sceneLa scene parente.
[in]p_parentLe noeud de scène parent.
[in]p_countLe nombre de particules.

◆ ~ParticleSystem()

C3D_API Castor3D::ParticleSystem::~ParticleSystem ( )

Destructeur.

Documentation des fonctions membres

◆ AddParticleVariable()

C3D_API void Castor3D::ParticleSystem::AddParticleVariable ( Castor::String const &  p_name,
ElementType  p_type,
Castor::String const &  p_defaultValue 
)

Ajoute une variable de particule.

Paramètres
[in]p_nameLe nom de la variable.
[in]p_typeLe type de la variable.
[in]p_defaultValueLa valeur par défaut de la variable.

◆ Cleanup()

C3D_API void Castor3D::ParticleSystem::Cleanup ( )

Nettoie les elements GPU.

◆ GetBillboards()

BillboardBaseSPtr Castor3D::ParticleSystem::GetBillboards ( ) const
inline
Renvoie
Les billboards.

Références m_particlesBillboard.

◆ 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::Size const& Castor3D::ParticleSystem::GetDimensions ( ) const
Renvoie
Les dimensions des billboards.

◆ GetMaterial()

C3D_API MaterialSPtr Castor3D::ParticleSystem::GetMaterial ( ) const
Renvoie
Le materiau.

◆ GetMaxParticlesCount()

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

BufferDeclaration const& Castor3D::ParticleSystem::GetParticleVariables ( ) const
inline
Renvoie
Les variables des particules.

Références m_inputs.

◆ Initialise()

C3D_API bool Castor3D::ParticleSystem::Initialise ( )

Initialise les elements GPU.

Renvoie
true si tout s'est bien passe

◆ SetCSUpdateProgram()

C3D_API void Castor3D::ParticleSystem::SetCSUpdateProgram ( ShaderProgramSPtr  p_program)

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

Paramètres
[in]p_programLe programme.

◆ SetDimensions()

C3D_API void Castor3D::ParticleSystem::SetDimensions ( Castor::Size const &  p_value)

Definit les dimensions des particules.

Paramètres
[in]p_valueLa nouvelle valeur.

◆ SetMaterial()

C3D_API void Castor3D::ParticleSystem::SetMaterial ( MaterialSPtr  p_value)

Definit le materiau.

Paramètres
[in]p_valueLa nouvelle valeur

◆ SetParticleType()

C3D_API void Castor3D::ParticleSystem::SetParticleType ( Castor::String const &  p_value)

Definit le nom du type de particules.

Paramètres
[in]p_valueLa nouvelle valeur.

◆ SetTFUpdateProgram()

C3D_API void Castor3D::ParticleSystem::SetTFUpdateProgram ( ShaderProgramSPtr  p_program)

Définit le programme utilisé pour mettre à jour les particules via le transform feedback.

Paramètres
[in]p_programLe programme.

◆ Update()

C3D_API void Castor3D::ParticleSystem::Update ( )

Met à jour les particules.

Documentation des fonctions amies et associées

◆ TextWriter

friend class TextWriter
friend

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_billboardInputs

BufferDeclaration Castor3D::ParticleSystem::m_billboardInputs
protected

La description des élément du tampon de sommets des billboards.

◆ m_centerOffset

uint32_t Castor3D::ParticleSystem::m_centerOffset { 0u }
protected

Le décalage de l'attribut du centre dans le tampon de sommets..

◆ 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.

◆ 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::Size 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

BufferDeclaration Castor3D::ParticleSystem::m_inputs
protected

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

Référencé par GetParticleVariables().

◆ m_material

MaterialWPtr 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

size_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_tfImpl

TransformFeedbackParticleSystemUPtr Castor3D::ParticleSystem::m_tfImpl
protected

L'implémentation utilisant le transform feedback.

◆ m_timer

Castor::PreciseTimer Castor3D::ParticleSystem::m_timer
protected

Le timer, pour la mise à jour des particules.

◆ m_totalTime

std::chrono::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 :