Castor3D  0.11.0
Multiplatform 3D engine
Fonctions membres publiques | Types protégés | Liste de tous les membres
Référence du modèle de la classe castor3d::ObjectCache< ElementType, KeyType >

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

Graphe d'héritage de castor3d::ObjectCache< ElementType, KeyType >:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::ObjectCache< ElementType, KeyType >:
Collaboration graph
[légende]

Fonctions membres publiques

 ObjectCache (Engine &engine, Scene &scene, SceneNodeSPtr rootNode, SceneNodeSPtr rootCameraNode, SceneNodeSPtr rootObjectNode, Producer &&produce, Initialiser &&initialise=Initialiser{}, Cleaner &&clean=Cleaner{}, Merger &&merge=Merger{}, Attacher &&attach=Attacher{}, Detacher &&detach=Detacher{})
 Constructeur. Plus de détails...
 
 ~ObjectCache ()
 Destructeur. Plus de détails...
 
- Fonctions membres publiques hérités de castor3d::ObjectCacheBase< ElementType, KeyType >
 ObjectCacheBase (Engine &engine, Scene &scene, SceneNodeSPtr rootNode, SceneNodeSPtr rootCameraNode, SceneNodeSPtr rootObjectNode, Producer &&produce, Initialiser &&initialise=Initialiser{}, Cleaner &&clean=Cleaner{}, Merger &&merge=Merger{}, Attacher &&attach=Attacher{}, Detacher &&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 () const
 
ElementPtr add (Key const &name, ElementPtr element)
 Ajoute un objet. Plus de détails...
 
template<typename ... Parameters>
ElementPtr add (Key const &name, SceneNode &parent, Parameters &&... parameters)
 Crée un objet. Plus de détails...
 
void remove (Key const &name)
 Retire un objet à partir d'un nom. Plus de détails...
 
void mergeInto (MyObjectCacheType &destination)
 
template<typename FuncType >
void forEach (FuncType func) const
 Applique une fonction à tous les éléments de ce cache. Plus de détails...
 
template<typename FuncType >
void forEach (FuncType 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 &name) const
 
ElementPtr find (Key const &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...
 

Types protégés

using MyObjectCacheType = ObjectCacheBase< ElementType, KeyType >
 
using Element = typename MyObjectCacheType::Element
 
using Key = typename MyObjectCacheType::Key
 
using Collection = typename MyObjectCacheType::Collection
 
using LockType = typename MyObjectCacheType::LockType
 
using ElementPtr = typename MyObjectCacheType::ElementPtr
 
using Producer = typename MyObjectCacheType::Producer
 
using Initialiser = typename MyObjectCacheType::Initialiser
 
using Cleaner = typename MyObjectCacheType::Cleaner
 
using Merger = typename MyObjectCacheType::Merger
 
using Attacher = typename MyObjectCacheType::Attacher
 
using Detacher = typename MyObjectCacheType::Detacher
 
- Types protégés hérités de castor3d::ObjectCacheBase< ElementType, KeyType >
using MyObjectCacheType = ObjectCacheBase< ElementType, KeyType >
 
using MyObjectCacheTraits = ObjectCacheTraits< ElementType, KeyType >
 
using Element = ElementType
 
using Key = KeyType
 
using Collection = castor::Collection< Element, Key >
 
using LockType = std::unique_lock< Collection >
 
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 >
 

Membres hérités additionnels

- Types publics hérités de castor3d::ObjectCacheBase< ElementType, KeyType >
using OnChangedFunction = std::function< void() >
 
using OnChanged = castor::Signal< OnChangedFunction >
 
- Attributs publics hérités de castor3d::ObjectCacheBase< ElementType, KeyType >
OnChanged onChanged
 
- Fonctions membres protégées hérités de castor3d::ObjectCacheBase< ElementType, KeyType >
void doReportCreation (castor::String const &name)
 
void doReportDuplicate (castor::String const &name)
 
void doReportNull ()
 
- Attributs protégés hérités de castor3d::ObjectCacheBase< ElementType, KeyType >
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
 

Description détaillée

template<typename ElementType, typename KeyType>
class castor3d::ObjectCache< ElementType, KeyType >

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

Documentation des définitions de type membres

◆ Attacher

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Attacher = typename MyObjectCacheType::Attacher
protected

◆ Cleaner

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Cleaner = typename MyObjectCacheType::Cleaner
protected

◆ Collection

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Collection = typename MyObjectCacheType::Collection
protected

◆ Detacher

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Detacher = typename MyObjectCacheType::Detacher
protected

◆ Element

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Element = typename MyObjectCacheType::Element
protected

◆ ElementPtr

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::ElementPtr = typename MyObjectCacheType::ElementPtr
protected

◆ Initialiser

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Initialiser = typename MyObjectCacheType::Initialiser
protected

◆ Key

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Key = typename MyObjectCacheType::Key
protected

◆ LockType

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::LockType = typename MyObjectCacheType::LockType
protected

◆ Merger

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Merger = typename MyObjectCacheType::Merger
protected

◆ MyObjectCacheType

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

◆ Producer

template<typename ElementType , typename KeyType >
using castor3d::ObjectCache< ElementType, KeyType >::Producer = typename MyObjectCacheType::Producer
protected

Documentation des constructeurs et destructeur

◆ ObjectCache()

template<typename ElementType , typename KeyType >
castor3d::ObjectCache< ElementType, KeyType >::ObjectCache ( Engine engine,
Scene scene,
SceneNodeSPtr  rootNode,
SceneNodeSPtr  rootCameraNode,
SceneNodeSPtr  rootObjectNode,
Producer &&  produce,
Initialiser &&  initialise = Initialiser{},
Cleaner &&  clean = Cleaner{},
Merger &&  merge = Merger{},
Attacher &&  attach = Attacher{},
Detacher &&  detach = Detacher{} 
)
inline

Constructeur.

Paramètres
[in]engineLe moteur.
[in]sceneLa scène.
[in]rootNodeLe noeud racine.
[in]rootCameraNodeLe noeud racine des caméras.
[in]rootObjectNodeLe noeud racine des objets.
[in]produceLe créateur d'objet.
[in]initialiseL'initialiseur d'objet.
[in]cleanLe nettoyeur d'objet.
[in]mergeLe fusionneur de collection d'objets.
[in]attachL'attacheur d'objet (à un noeud de scène).
[in]detachLe détacheur d'objet (d'un noeud de scène).

◆ ~ObjectCache()

template<typename ElementType , typename KeyType >
castor3d::ObjectCache< ElementType, KeyType >::~ObjectCache ( )
inline

Destructeur.


La documentation de cette classe a été générée à partir des fichiers suivants :