![]() |
Castor3D 0.16.0
Multiplatform 3D engine
|
#include <ObjectCacheBase.hpp>
Types publics | |
using | OnChangedFunction = castor::Function< void() > |
using | OnChanged = castor::SignalT< OnChangedFunction > |
![]() | |
using | ElementT |
using | ElementKeyT |
using | ElementCacheTraitsT |
using | ElementCacheBaseT |
using | ElementCacheT |
using | ElementPtrT |
using | ElementObsT |
using | ElementContT |
using | ElementInitialiserT |
using | ElementCleanerT |
using | ElementMergerT |
Fonctions membres publiques | |
void | mergeInto (ElementObjectCacheT &destination) |
Met les éléments de ce cache dans ceux de celui donné. | |
Engine * | getEngine () const noexcept |
castor::String const & | getObjectTypeName () const noexcept |
![]() | |
Scene * | getOwner () const |
L'objet propriétaire. | |
![]() | |
ResourceCacheBaseT (ResourceCacheBaseT const &)=delete | |
ResourceCacheBaseT (ResourceCacheBaseT &&) noexcept=delete | |
ResourceCacheBaseT & | operator= (ResourceCacheBaseT const &)=delete |
ResourceCacheBaseT & | operator= (ResourceCacheBaseT &&) noexcept=delete |
void | cleanup () noexcept |
Met tous les éléments à nettoyer. | |
void | clear () noexcept |
Vide la collection. | |
ElementPtrT | create (ElementKeyT const &name, ParametersT &&... parameters) const |
Crée un élément. | |
ElementObsT | tryAdd (ElementKeyT const &name, ElementPtrT &element, bool initialise=false) |
Ajoute un élément. | |
ElementObsT | tryAdd (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters) |
Ajoute un élément, construict sur place. | |
ElementObsT | tryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=false) |
Ajoute un élément. | |
ElementObsT | tryAddNoLock (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters) |
Ajoute un élément, construict sur place. | |
ElementObsT | add (ElementKeyT const &name, ElementPtrT &element, bool initialise=true) |
Version journalisante de tryAdd. | |
ElementObsT | add (ElementKeyT const &name, ParametersT &&... parameters) |
Version journalisante de tryAdd. | |
ElementObsT | addNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true) |
Version journalisante de tryAdd. | |
ElementObsT | addNoLock (ElementKeyT const &name, ParametersT &&... parameters) |
Version journalisante de tryAdd. | |
ElementPtrT | tryRemove (ElementKeyT const &name, bool cleanup=false) noexcept |
Retire un élément à partir d'un nom. | |
ElementPtrT | tryRemoveNoLock (ElementKeyT const &name, bool cleanup=false) noexcept |
Retire un élément à partir d'un nom. | |
ElementPtrT | remove (ElementKeyT const &name, bool cleanup=false) noexcept |
Version journalisante de tryAdd. | |
ElementPtrT | removeNoLock (ElementKeyT const &name, bool cleanup=false) noexcept |
Version journalisante de tryAdd. | |
void | rename (ElementKeyT const &oldName, ElementKeyT const &newName) |
Renomme une ressource. | |
ElementObsT | tryFind (ElementKeyT const &name) const noexcept |
Cherche un élément par son nom. | |
ElementObsT | tryFindNoLock (ElementKeyT const &name) const noexcept |
Cherche un élément par son nom. | |
ElementObsT | find (ElementKeyT const &name) const |
Version journalisante de tryAdd. | |
ElementObsT | findNoLock (ElementKeyT const &name) const |
Version journalisante de tryAdd. | |
void | mergeInto (ElementCacheBaseT &destination) |
Met les éléments de ce cache dans ceux de celui donné. | |
void | forEach (FuncType func) const |
void | forEach (FuncType func) |
uint32_t | getObjectCount () const noexcept |
uint32_t | getObjectCountNoLock () const noexcept |
String const & | getObjectTypeName () const noexcept |
bool | has (ElementKeyT const &name) const noexcept |
bool | hasNoLock (ElementKeyT const &name) const noexcept |
bool | isEmpty () const noexcept |
bool | isEmptyNoLock () const noexcept |
void | lock () const |
void | unlock () const noexcept |
auto | begin () noexcept |
auto | begin () const noexcept |
auto | end () noexcept |
auto | end () const noexcept |
void | reportCreation (String const &name) const |
void | reportAdded (String const &name) const |
void | reportDuplicate (String const &name) const |
void | reportNull () const |
void | reportUnknown (String const &name) const |
Attributs publics | |
OnChanged | onChanged |
Types protégés | |
using | ElementT = ObjT |
using | ElementKeyT = KeyT |
using | ElementCacheTraitsT = TraitsT |
using | ElementCacheT = castor::ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT > |
using | ElementCacheBaseT = ElementCacheT |
using | ElementObjectCacheT = ObjectCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT > |
using | ElementPtrT = ObjectPtrT< ElementT, ElementKeyT > |
using | ElementObsT = ObjectObsT< ElementT, ElementKeyT > |
using | ElementContT = ObjectContT< ElementT, ElementKeyT > |
using | ElementInitialiserT = ObjectInitialiserT< ElementT, ElementKeyT > |
using | ElementCleanerT = ObjectCleanerT< ElementT, ElementKeyT > |
using | ElementMergerT = ObjectMergerT< ElementT, ElementKeyT > |
using | ElementAttacherT = ObjectAttacherT< ElementT, ElementKeyT > |
using | ElementDetacherT = ObjectDetacherT< ElementT, ElementKeyT > |
![]() | |
using | MutexT |
Fonctions membres protégées | |
ObjectCacheBaseT (Scene &scene, SceneNodeRPtr rootNode, SceneNodeRPtr rootCameraNode, SceneNodeRPtr rootObjectNode, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{}, ElementAttacherT attach=ElementAttacherT{}, ElementDetacherT detach=ElementDetacherT{}) | |
Constructeur. | |
![]() | |
OwnedBy (Scene &owner) | |
Constructeur. | |
![]() | |
void | doCleanupNoLock () const noexcept |
void | doClearNoLock () noexcept |
ElementPtrT | doCreateT (ElementKeyT const &name, ParametersT &&... parameters) const |
ElementObsT | doTryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true) |
ElementObsT | doAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true) |
ElementObsT | doTryAddNoLockT (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters) |
ElementObsT | doAddNoLockT (ElementKeyT const &name, ParametersT &&... parameters) |
ElementPtrT | doTryRemoveNoLock (ElementKeyT const &name, bool cleanup=false) noexcept |
ElementObsT | doTryFindNoLock (ElementKeyT const &name) const noexcept |
ResourceCacheBaseT (LoggerInstance &logger, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{}) | |
virtual | ~ResourceCacheBaseT () noexcept=default |
Attributs protégés | |
Engine & | m_engine |
SceneNodeRPtr | m_rootNode |
SceneNodeRPtr | m_rootCameraNode |
SceneNodeRPtr | m_rootObjectNode |
ElementMergerT | m_merge |
ElementAttacherT | m_attach |
ElementDetacherT | m_detach |
![]() | |
LoggerInstance & | m_logger |
CheckedMutexT< MutexT > | m_mutex |
ElementContT | m_resources |
ElementInitialiserT | m_initialise |
ElementCleanerT | m_clean |
ElementMergerT | m_merge |
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 |
|
protected |
|
protected |
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::OnChanged = castor::SignalT< OnChangedFunction > |
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::OnChangedFunction = castor::Function< void() > |
|
inlineprotected |
Constructeur.
[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] | 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). |
|
inlinenoexcept |
Références castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_engine.
|
inlinenoexcept |
|
inline |
Met les éléments de ce cache dans ceux de celui donné.
[out] | destination | Le cache de destination. |
Références castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >::doClearNoLock(), castor::ResourceCacheBaseT< ObjT, KeyT, TraitsT >::lock(), castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_merge, castor::makeUniqueLock(), et castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::onChanged.
|
friend |
|
protected |
L'attacheur d'objet.
|
protected |
Le détacheur d'objet.
|
protected |
Le moteur.
Référencé par castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::getEngine().
|
protected |
L'attacheur d'objet.
Référencé par castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto().
|
protected |
Le noeud père de tous les noeuds de caméra.
|
protected |
Le noeud père de tous les noeuds de la scène.
|
protected |
Le noeud père de tous les noeuds d'objet.
OnChanged castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::onChanged |
Le signal émis lorsque le contenu a changé.
Référencé par castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto().