Castor3D 0.12.0
Multiplatform 3D engine
Public Types | Public Member Functions | List of all members
castor3d::ObjectCacheT< ObjT, KeyT, TraitsT > Class Template Reference

#include <ObjectCache.hpp>

Inheritance diagram for castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >:
Inheritance graph
[legend]
Collaboration diagram for castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >:
Collaboration graph
[legend]

Public Types

using ElementT = ObjT
 
using ElementKeyT = KeyT
 
using ElementCacheTraitsT = TraitsT
 
using ElementObjectCacheT = ObjectCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementPtrT = typename ElementObjectCacheT::ElementPtrT
 
using ElementObsT = typename ElementObjectCacheT::ElementObsT
 
using ElementContT = typename ElementObjectCacheT::ElementContT
 
using ElementInitialiserT = typename ElementObjectCacheT::ElementInitialiserT
 
using ElementCleanerT = typename ElementObjectCacheT::ElementCleanerT
 
using ElementMergerT = typename ElementObjectCacheT::ElementMergerT
 
using ElementAttacherT = typename ElementObjectCacheT::ElementAttacherT
 
using ElementDetacherT = typename ElementObjectCacheT::ElementDetacherT
 
- Public Types inherited from castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >
using OnChangedFunction = std::function< void() >
 
using OnChanged = castor::SignalT< OnChangedFunction >
 

Public Member Functions

 ObjectCacheT (Scene &scene, SceneNodeSPtr rootNode, SceneNodeSPtr rootCameraNode, SceneNodeSPtr rootObjectNode, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{}, ElementAttacherT attach=ElementAttacherT{}, ElementDetacherT detach=ElementDetacherT{})
 Constructor. More...
 
- Public Member Functions inherited from castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >
void mergeInto (ElementObjectCacheT &destination)
 Merges this cache's elements to the one given. More...
 
EnginegetEngine () const
 
castor::String const & getObjectTypeName () const
 

Additional Inherited Members

- Public Attributes inherited from castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >
OnChanged onChanged
 
- Protected Types inherited from castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >
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 >
 
- Protected Member Functions inherited from castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >
 ObjectCacheBaseT (Scene &scene, SceneNodeSPtr rootNode, SceneNodeSPtr rootCameraNode, SceneNodeSPtr rootObjectNode, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{}, ElementAttacherT attach=ElementAttacherT{}, ElementDetacherT detach=ElementDetacherT{})
 Constructor. More...
 
 ~ObjectCacheBaseT ()
 Destructor. More...
 
- Protected Attributes inherited from castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >
Enginem_engine
 
SceneNodeWPtr m_rootNode
 
SceneNodeWPtr m_rootCameraNode
 
SceneNodeWPtr m_rootObjectNode
 
ElementMergerT m_merge
 
ElementAttacherT m_attach
 
ElementDetacherT m_detach
 

Detailed Description

template<typename ObjT, typename KeyT, typename TraitsT>
class castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >

Base class for a scene element cache.

Member Typedef Documentation

◆ ElementAttacherT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementAttacherT = typename ElementObjectCacheT::ElementAttacherT

◆ ElementCacheTraitsT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementCacheTraitsT = TraitsT

◆ ElementCleanerT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementCleanerT = typename ElementObjectCacheT::ElementCleanerT

◆ ElementContT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementContT = typename ElementObjectCacheT::ElementContT

◆ ElementDetacherT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementDetacherT = typename ElementObjectCacheT::ElementDetacherT

◆ ElementInitialiserT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementInitialiserT = typename ElementObjectCacheT::ElementInitialiserT

◆ ElementKeyT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementKeyT = KeyT

◆ ElementMergerT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementMergerT = typename ElementObjectCacheT::ElementMergerT

◆ ElementObjectCacheT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementObjectCacheT = ObjectCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >

◆ ElementObsT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementObsT = typename ElementObjectCacheT::ElementObsT

◆ ElementPtrT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementPtrT = typename ElementObjectCacheT::ElementPtrT

◆ ElementT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ElementT = ObjT

Constructor & Destructor Documentation

◆ ObjectCacheT()

template<typename ObjT , typename KeyT , typename TraitsT >
castor3d::ObjectCacheT< ObjT, KeyT, TraitsT >::ObjectCacheT ( Scene scene,
SceneNodeSPtr  rootNode,
SceneNodeSPtr  rootCameraNode,
SceneNodeSPtr  rootObjectNode,
ElementInitialiserT  initialise = ElementInitialiserT{},
ElementCleanerT  clean = ElementCleanerT{},
ElementMergerT  merge = ElementMergerT{},
ElementAttacherT  attach = ElementAttacherT{},
ElementDetacherT  detach = ElementDetacherT{} 
)
inline

Constructor.

Parameters
[in]sceneThe scene.
[in]rootNodeThe root node.
[in]rootCameraNodeThe cameras root node.
[in]rootObjectNodeThe objects root node.
[in]initialiseThe element initialiser.
[in]cleanThe element cleaner.
[in]mergeThe element collection merger.
[in]attachThe element attacher (to a scene node).
[in]detachThe element detacher (from a scene node).

The documentation for this class was generated from the following files: