Castor3D
0.11.0
Multiplatform 3D engine
|
Classe de base pour un cache d'éléments de scène. Plus de détails...
Types publics | |
using | OnChangedFunction = std::function< void() > |
using | OnChanged = castor::Signal< OnChangedFunction > |
Fonctions membres publiques | |
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 |
Scene * | getScene () const |
Engine * | getEngine () 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... | |
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 | 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 > |
Fonctions membres protégées | |
void | doReportCreation (castor::String const &name) |
void | doReportDuplicate (castor::String const &name) |
void | doReportNull () |
Attributs protégés | |
Engine & | m_engine |
Scene & | m_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 |
Classe de base pour un cache d'éléments de scène.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
using castor3d::ObjectCacheBase< ElementType, KeyType >::OnChanged = castor::Signal < OnChangedFunction > |
using castor3d::ObjectCacheBase< ElementType, KeyType >::OnChangedFunction = std::function< void() > |
|
protected |
|
inline |
Constructeur.
[in] | engine | Le moteur. |
[in] | scene | La scène. |
[in] | rootNode | Le noeud racine. |
[in] | rootCameraNode | Le noeud racine des caméras. |
[in] | rootObjectNode | Le noeud racine des objets. |
[in] | produce | Le créateur d'objet. |
[in] | initialise | L'initialiseur d'objet. |
[in] | clean | Le nettoyeur d'objet. |
[in] | merge | Le fusionneur de collection d'objets. |
[in] | attach | L'attacheur d'objet (à un noeud de scène). |
[in] | detach | Le détacheur d'objet (d'un noeud de scène). |
|
inline |
Destructeur.
|
inline |
Ajoute un objet.
[in] | name | Le nom d'objet. |
[in] | element | L'objet. |
|
inline |
Crée un objet.
[in] | name | Le nom d'objet. |
[in] | parent | Le noeud de scène parent. |
[in] | parameters | Les autres paramètres de construction. |
|
inline |
Renvoie un itérateur sur le premier élément de la collection.
|
inline |
Renvoie un itérateur constant sur le premier élément de la collection.
|
inline |
Met tous les éléments à nettoyer.
|
inline |
Vide la collection.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::mergeInto().
|
inlineprotected |
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add().
|
inlineprotected |
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add().
|
inlineprotected |
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add().
|
inline |
Renvoie un itérateur sur l'après dernier élément de la collection.
|
inline |
Renvoie un itérateur constant sur l'après dernier élément de la collection.
|
inline |
Cherche un élément par son nom.
[in] | name | Le nom d'objet. |
|
inline |
Applique une fonction à tous les éléments de ce cache.
[in] | func | La fonction. |
|
inline |
Applique une fonction à tous les éléments de ce cache.
[in] | func | La fonction. |
|
inline |
|
inline |
|
inline |
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::doReportCreation(), castor3d::ObjectCacheBase< BillboardList, castor::String >::doReportDuplicate(), et castor3d::ObjectCacheBase< BillboardList, castor::String >::doReportNull().
|
inline |
|
inline |
[in] | name | Le nom d'objet. |
true
Si un élément avec le nom donné existe.
|
inline |
true
si le cache est vide.
|
inline |
Locke le mutex de la collection.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add(), castor3d::ObjectCacheBase< BillboardList, castor::String >::cleanup(), castor3d::ObjectCacheBase< BillboardList, castor::String >::forEach(), castor3d::ObjectCacheBase< BillboardList, castor::String >::mergeInto(), et castor3d::ObjectCacheBase< BillboardList, castor::String >::remove().
|
inline |
[out] | destination | Le cache de destination. |
|
inline |
Retire un objet à partir d'un nom.
[in] | name | Le nom d'objet. |
|
inline |
Délocke le mutex de la collection.
|
friend |
|
protected |
L'attacheur d'objet.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add().
|
protected |
Le nettoyeur d'éléments.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::cleanup().
|
protected |
Le détacheur d'objet.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::cleanup(), et castor3d::ObjectCacheBase< BillboardList, castor::String >::remove().
|
mutableprotected |
La collection d'éléments.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add(), castor3d::ObjectCacheBase< BillboardList, castor::String >::begin(), castor3d::ObjectCacheBase< BillboardList, castor::String >::cleanup(), castor3d::ObjectCacheBase< BillboardList, castor::String >::clear(), castor3d::ObjectCacheBase< BillboardList, castor::String >::end(), castor3d::ObjectCacheBase< BillboardList, castor::String >::find(), castor3d::ObjectCacheBase< BillboardList, castor::String >::forEach(), castor3d::ObjectCacheBase< BillboardList, castor::String >::getObjectCount(), castor3d::ObjectCacheBase< BillboardList, castor::String >::has(), castor3d::ObjectCacheBase< BillboardList, castor::String >::isEmpty(), castor3d::ObjectCacheBase< BillboardList, castor::String >::lock(), castor3d::ObjectCacheBase< BillboardList, castor::String >::mergeInto(), castor3d::ObjectCacheBase< BillboardList, castor::String >::remove(), et castor3d::ObjectCacheBase< BillboardList, castor::String >::unlock().
|
protected |
Le moteur.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::getEngine().
|
protected |
L'initaliseur d'éléments.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add().
|
protected |
Le fusionneur de collection d'objets.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::mergeInto().
|
protected |
Le créateur d'éléments.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add().
|
protected |
Le noeud père de tous les noeuds de caméra.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add(), et castor3d::ObjectCacheBase< BillboardList, castor::String >::mergeInto().
|
protected |
Le noeud père de tous les noeuds de la scène.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add().
|
protected |
Le noeud père de tous les noeuds d'objet.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add(), et castor3d::ObjectCacheBase< BillboardList, castor::String >::mergeInto().
|
protected |
L'attacheur d'objet.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::getScene().
OnChanged castor3d::ObjectCacheBase< ElementType, KeyType >::onChanged |
Le signal émis lorsque le contenu a changé.
Référencé par castor3d::ObjectCacheBase< BillboardList, castor::String >::add(), castor3d::ObjectCacheBase< BillboardList, castor::String >::cleanup(), castor3d::ObjectCacheBase< BillboardList, castor::String >::mergeInto(), et castor3d::ObjectCacheBase< BillboardList, castor::String >::remove().