Castor3D  ..
Types publics | Fonctions membres publiques | Attributs publics | Types protégés | Attributs protégés | Amis | Liste de tous les membres
Référence du modèle de la classe Castor3D::ObjectCacheBase< ElementType, KeyType >

Classe de base pour un cache d'éléments de scène. Plus de détails...

+ Graphe d'héritage de Castor3D::ObjectCacheBase< ElementType, KeyType >:
+ Graphe de collaboration de Castor3D::ObjectCacheBase< ElementType, KeyType >:

Types publics

using OnChangedFunction = std::function< void() >
 
using OnChanged = Castor::Signal< OnChangedFunction >
 

Fonctions membres publiques

 ObjectCacheBase (Engine &p_engine, Scene &p_scene, SceneNodeSPtr p_rootNode, SceneNodeSPtr p_rootCameraNode, SceneNodeSPtr p_rootObjectNode, Producer &&p_produce, Initialiser &&p_initialise=Initialiser{}, Cleaner &&p_clean=Cleaner{}, Merger &&p_merge=Merger{}, Attacher &&p_attach=Attacher{}, Detacher &&p_detach=Detacher{})
 Constructeur. Plus de détails...
 
 ~ObjectCacheBase ()
 Destructeur. Plus de détails...
 
void Cleanup ()
 Met tous les éléments à nettoyer. Plus de détails...
 
void Clear ()
 Vide la collection. Plus de détails...
 
bool IsEmpty ()
 
ElementPtr Add (Key const &p_name, ElementPtr p_element)
 Ajoute un objet. Plus de détails...
 
template<typename ... Parameters>
ElementPtr Add (Key const &p_name, SceneNodeSPtr p_parent, Parameters &&... p_parameters)
 Crée un objet. Plus de détails...
 
void Remove (Key const &p_name)
 Retire un objet à partir d'un nom. Plus de détails...
 
void MergeInto (MyObjectCacheType &p_destination)
 
template<typename FuncType >
void ForEach (FuncType p_func) const
 Applique une fonction à tous les éléments de ce cache. Plus de détails...
 
template<typename FuncType >
void ForEach (FuncType p_func)
 Applique une fonction à tous les éléments de ce cache. Plus de détails...
 
uint32_t GetObjectCount () const
 
SceneGetScene () const
 
EngineGetEngine () const
 
Castor::String const & GetObjectTypeName () const
 
bool Has (Key const &p_name) const
 
ElementPtr Find (Key const &p_name) const
 Cherche un élément par son nom. Plus de détails...
 
void lock () const
 Locke le mutex de la collection. Plus de détails...
 
void unlock () const
 Délocke le mutex de la collection. Plus de détails...
 
auto begin ()
 Renvoie un itérateur sur le premier élément de la collection. Plus de détails...
 
auto begin () const
 Renvoie un itérateur constant sur le premier élément de la collection. Plus de détails...
 
auto end ()
 Renvoie un itérateur sur l'après dernier élément de la collection. Plus de détails...
 
auto end () const
 Renvoie un itérateur constant sur l'après dernier élément de la collection. Plus de détails...
 

Attributs publics

OnChanged onChanged
 

Types protégés

using MyObjectCacheType = ObjectCacheBase< ElementType, KeyType >
 
using MyObjectCacheTraits = ObjectCacheTraits< ElementType, KeyType >
 
using Element = ElementType
 
using Key = KeyType
 
using Collection = Castor::Collection< Element, Key >
 
using ElementPtr = std::shared_ptr< Element >
 
using Producer = typename MyObjectCacheTraits::Producer
 
using Merger = typename MyObjectCacheTraits::Merger
 
using Initialiser = ElementInitialiser< Element >
 
using Cleaner = ElementCleaner< Element >
 
using Attacher = ElementAttacher< Element >
 
using Detacher = ElementDetacher< Element >
 

Attributs protégés

Enginem_engine
 
Scenem_scene
 
SceneNodeWPtr m_rootNode
 
SceneNodeWPtr m_rootCameraNode
 
SceneNodeWPtr m_rootObjectNode
 
Collection m_elements
 
Producer m_produce
 
Initialiser m_initialise
 
Cleaner m_clean
 
Merger m_merge
 
Attacher m_attach
 
Detacher m_detach
 

Amis

class Scene
 

Description détaillée

template<typename ElementType, typename KeyType>
class Castor3D::ObjectCacheBase< ElementType, KeyType >

Classe de base pour un cache d'éléments de scène.

Auteur
Sylvain DOREMUS
Date
13/10/2015
Version
0.8.0

Documentation des définitions de type membres

◆ Attacher

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Attacher = ElementAttacher< Element >
protected

◆ Cleaner

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Cleaner = ElementCleaner< Element >
protected

◆ Collection

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Collection = Castor::Collection< Element, Key >
protected

◆ Detacher

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Detacher = ElementDetacher< Element >
protected

◆ Element

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Element = ElementType
protected

◆ ElementPtr

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::ElementPtr = std::shared_ptr< Element >
protected

◆ Initialiser

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Initialiser = ElementInitialiser< Element >
protected

◆ Key

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Key = KeyType
protected

◆ Merger

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Merger = typename MyObjectCacheTraits::Merger
protected

◆ MyObjectCacheTraits

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::MyObjectCacheTraits = ObjectCacheTraits< ElementType, KeyType >
protected

◆ MyObjectCacheType

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::MyObjectCacheType = ObjectCacheBase< ElementType, KeyType >
protected

◆ OnChanged

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::OnChanged = Castor::Signal < OnChangedFunction >

◆ OnChangedFunction

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::OnChangedFunction = std::function< void() >

◆ Producer

template<typename ElementType, typename KeyType>
using Castor3D::ObjectCacheBase< ElementType, KeyType >::Producer = typename MyObjectCacheTraits::Producer
protected

Documentation des constructeurs et destructeur

◆ ObjectCacheBase()

template<typename ElementType, typename KeyType>
Castor3D::ObjectCacheBase< ElementType, KeyType >::ObjectCacheBase ( Engine p_engine,
Scene p_scene,
SceneNodeSPtr  p_rootNode,
SceneNodeSPtr  p_rootCameraNode,
SceneNodeSPtr  p_rootObjectNode,
Producer &&  p_produce,
Initialiser &&  p_initialise = Initialiser{},
Cleaner &&  p_clean = Cleaner{},
Merger &&  p_merge = Merger{},
Attacher &&  p_attach = Attacher{},
Detacher &&  p_detach = Detacher{} 
)
inline

Constructeur.

Paramètres
[in]p_engineLe moteur.
[in]p_sceneLa scène.
[in]p_rootNodeLe noeud racine.
[in]p_rootCameraNodeLe noeud racine des caméras.
[in]p_rootObjectNodeLe noeud racine des objets.
[in]p_produceLe créateur d'objet.
[in]p_initialiseL'initialiseur d'objet.
[in]p_cleanLe nettoyeur d'objet.
[in]p_mergeLe fusionneur de collection d'objets.
[in]p_attachL'attacheur d'objet (à un noeud de scène).
[in]p_detachLe détacheur d'objet (d'un noeud de scène).

◆ ~ObjectCacheBase()

template<typename ElementType, typename KeyType>
Castor3D::ObjectCacheBase< ElementType, KeyType >::~ObjectCacheBase ( )
inline

Destructeur.

Documentation des fonctions membres

◆ Add() [1/2]

template<typename ElementType, typename KeyType>
ElementPtr Castor3D::ObjectCacheBase< ElementType, KeyType >::Add ( Key const &  p_name,
ElementPtr  p_element 
)
inline

Ajoute un objet.

Paramètres
[in]p_nameLe nom d'objet.
[in]p_elementL'objet.
Renvoie
L'objet ajouté, ou celui existant.

◆ Add() [2/2]

template<typename ElementType, typename KeyType>
template<typename ... Parameters>
ElementPtr Castor3D::ObjectCacheBase< ElementType, KeyType >::Add ( Key const &  p_name,
SceneNodeSPtr  p_parent,
Parameters &&...  p_parameters 
)
inline

Crée un objet.

Paramètres
[in]p_nameLe nom d'objet.
[in]p_parentLe noeud de scène parent.
[in]p_parametersLes autres paramètres de construction.
Renvoie
L'objet créé.

◆ begin() [1/2]

template<typename ElementType, typename KeyType>
auto Castor3D::ObjectCacheBase< ElementType, KeyType >::begin ( )
inline

Renvoie un itérateur sur le premier élément de la collection.

Renvoie
L'itérateur

◆ begin() [2/2]

template<typename ElementType, typename KeyType>
auto Castor3D::ObjectCacheBase< ElementType, KeyType >::begin ( ) const
inline

Renvoie un itérateur constant sur le premier élément de la collection.

Renvoie
L'itérateur

◆ Cleanup()

template<typename ElementType, typename KeyType>
void Castor3D::ObjectCacheBase< ElementType, KeyType >::Cleanup ( )
inline

Met tous les éléments à nettoyer.

◆ Clear()

template<typename ElementType, typename KeyType>
void Castor3D::ObjectCacheBase< ElementType, KeyType >::Clear ( )
inline

Vide la collection.

Référencé par Castor3D::ObjectCacheBase< SceneNode, Castor::String >::MergeInto().

+ Voici le graphe des appelants de cette fonction :

◆ end() [1/2]

template<typename ElementType, typename KeyType>
auto Castor3D::ObjectCacheBase< ElementType, KeyType >::end ( )
inline

Renvoie un itérateur sur l'après dernier élément de la collection.

Renvoie
L'itérateur

◆ end() [2/2]

template<typename ElementType, typename KeyType>
auto Castor3D::ObjectCacheBase< ElementType, KeyType >::end ( ) const
inline

Renvoie un itérateur constant sur l'après dernier élément de la collection.

Renvoie
L'itérateur

◆ Find()

template<typename ElementType, typename KeyType>
ElementPtr Castor3D::ObjectCacheBase< ElementType, KeyType >::Find ( Key const &  p_name) const
inline

Cherche un élément par son nom.

Paramètres
[in]p_nameLe nom d'objet.
Renvoie
L'élément trouvé, nullptr si non trouvé.

◆ ForEach() [1/2]

template<typename ElementType, typename KeyType>
template<typename FuncType >
void Castor3D::ObjectCacheBase< ElementType, KeyType >::ForEach ( FuncType  p_func) const
inline

Applique une fonction à tous les éléments de ce cache.

Paramètres
[in]p_funcLa fonction.

◆ ForEach() [2/2]

template<typename ElementType, typename KeyType>
template<typename FuncType >
void Castor3D::ObjectCacheBase< ElementType, KeyType >::ForEach ( FuncType  p_func)
inline

Applique une fonction à tous les éléments de ce cache.

Paramètres
[in]p_funcLa fonction.

◆ GetEngine()

template<typename ElementType, typename KeyType>
Engine* Castor3D::ObjectCacheBase< ElementType, KeyType >::GetEngine ( ) const
inline
Renvoie
L'Engine.

◆ GetObjectCount()

template<typename ElementType, typename KeyType>
uint32_t Castor3D::ObjectCacheBase< ElementType, KeyType >::GetObjectCount ( ) const
inline
Renvoie
Le nombre d'objets

◆ GetObjectTypeName()

template<typename ElementType, typename KeyType>
Castor::String const& Castor3D::ObjectCacheBase< ElementType, KeyType >::GetObjectTypeName ( ) const
inline
Renvoie
L'Engine.

Référencé par Castor3D::ObjectCacheBase< SceneNode, Castor::String >::Add().

+ Voici le graphe des appelants de cette fonction :

◆ GetScene()

template<typename ElementType, typename KeyType>
Scene* Castor3D::ObjectCacheBase< ElementType, KeyType >::GetScene ( ) const
inline
Renvoie
L'Engine.

◆ Has()

template<typename ElementType, typename KeyType>
bool Castor3D::ObjectCacheBase< ElementType, KeyType >::Has ( Key const &  p_name) const
inline
Paramètres
[in]p_nameLe nom d'objet.
Renvoie
true Si un élément avec le nom donné existe.

◆ IsEmpty()

template<typename ElementType, typename KeyType>
bool Castor3D::ObjectCacheBase< ElementType, KeyType >::IsEmpty ( )
inline
Renvoie
true si le cache est vide.

◆ lock()

template<typename ElementType, typename KeyType>
void Castor3D::ObjectCacheBase< ElementType, KeyType >::lock ( ) const
inline

Locke le mutex de la collection.

◆ MergeInto()

template<typename ElementType, typename KeyType>
void Castor3D::ObjectCacheBase< ElementType, KeyType >::MergeInto ( MyObjectCacheType p_destination)
inline
Renvoie
Met les éléments de ce cache dans ceux de celui donné.
Paramètres
[out]p_destinationLe cache de destination.

◆ Remove()

template<typename ElementType, typename KeyType>
void Castor3D::ObjectCacheBase< ElementType, KeyType >::Remove ( Key const &  p_name)
inline

Retire un objet à partir d'un nom.

Paramètres
[in]p_nameLe nom d'objet.

◆ unlock()

template<typename ElementType, typename KeyType>
void Castor3D::ObjectCacheBase< ElementType, KeyType >::unlock ( ) const
inline

Délocke le mutex de la collection.

Documentation des fonctions amies et associées

◆ Scene

template<typename ElementType, typename KeyType>
friend class Scene
friend

Documentation des données membres

◆ m_attach

template<typename ElementType, typename KeyType>
Attacher Castor3D::ObjectCacheBase< ElementType, KeyType >::m_attach
protected

◆ m_clean

template<typename ElementType, typename KeyType>
Cleaner Castor3D::ObjectCacheBase< ElementType, KeyType >::m_clean
protected

◆ m_detach

template<typename ElementType, typename KeyType>
Detacher Castor3D::ObjectCacheBase< ElementType, KeyType >::m_detach
protected

◆ m_elements

template<typename ElementType, typename KeyType>
Collection Castor3D::ObjectCacheBase< ElementType, KeyType >::m_elements
mutableprotected

◆ m_engine

template<typename ElementType, typename KeyType>
Engine& Castor3D::ObjectCacheBase< ElementType, KeyType >::m_engine
protected

◆ m_initialise

template<typename ElementType, typename KeyType>
Initialiser Castor3D::ObjectCacheBase< ElementType, KeyType >::m_initialise
protected

◆ m_merge

template<typename ElementType, typename KeyType>
Merger Castor3D::ObjectCacheBase< ElementType, KeyType >::m_merge
protected

◆ m_produce

template<typename ElementType, typename KeyType>
Producer Castor3D::ObjectCacheBase< ElementType, KeyType >::m_produce
protected

◆ m_rootCameraNode

template<typename ElementType, typename KeyType>
SceneNodeWPtr Castor3D::ObjectCacheBase< ElementType, KeyType >::m_rootCameraNode
protected

◆ m_rootNode

template<typename ElementType, typename KeyType>
SceneNodeWPtr Castor3D::ObjectCacheBase< ElementType, KeyType >::m_rootNode
protected

◆ m_rootObjectNode

template<typename ElementType, typename KeyType>
SceneNodeWPtr Castor3D::ObjectCacheBase< ElementType, KeyType >::m_rootObjectNode
protected

◆ m_scene

template<typename ElementType, typename KeyType>
Scene& Castor3D::ObjectCacheBase< ElementType, KeyType >::m_scene
protected

◆ onChanged

template<typename ElementType, typename KeyType>
OnChanged Castor3D::ObjectCacheBase< ElementType, KeyType >::onChanged

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