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::Point2f 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::Point2f 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::Point2f 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 }
 
castor::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
 
OnSceneNodeChangedConnection 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::Point2f 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::Point2f 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::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

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

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 :