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

#include <ObjectCacheBase.hpp>

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

Public Types

using OnChangedFunction = std::function< void() >
 
using OnChanged = castor::SignalT< OnChangedFunction >
 

Public Member Functions

void mergeInto (ElementObjectCacheT &destination)
 Merges this cache's elements to the one given. More...
 
EnginegetEngine () const
 
castor::String const & getObjectTypeName () const
 

Public Attributes

OnChanged onChanged
 

Protected Types

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

 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

Enginem_engine
 
SceneNodeWPtr m_rootNode
 
SceneNodeWPtr m_rootCameraNode
 
SceneNodeWPtr m_rootObjectNode
 
ElementMergerT m_merge
 
ElementAttacherT m_attach
 
ElementDetacherT m_detach
 

Friends

class Scene
 

Detailed Description

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

Base class for a scene element cache.

Member Typedef Documentation

◆ ElementAttacherT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementAttacherT = ObjectAttacherT< ElementT, ElementKeyT >
protected

◆ ElementCacheBaseT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementCacheBaseT = ElementCacheT
protected

◆ ElementCacheT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementCacheT = castor::ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
protected

◆ ElementCacheTraitsT

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

◆ ElementCleanerT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementCleanerT = ObjectCleanerT< ElementT, ElementKeyT >
protected

◆ ElementContT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementContT = ObjectContT< ElementT, ElementKeyT >
protected

◆ ElementDetacherT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementDetacherT = ObjectDetacherT< ElementT, ElementKeyT >
protected

◆ ElementInitialiserT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementInitialiserT = ObjectInitialiserT< ElementT, ElementKeyT >
protected

◆ ElementKeyT

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

◆ ElementMergerT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementMergerT = ObjectMergerT< ElementT, ElementKeyT >
protected

◆ ElementObjectCacheT

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

◆ ElementObsT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementObsT = ObjectObsT< ElementT, ElementKeyT >
protected

◆ ElementPtrT

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::ElementPtrT = ObjectPtrT< ElementT, ElementKeyT >
protected

◆ ElementT

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

◆ OnChanged

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::OnChanged = castor::SignalT< OnChangedFunction >

◆ OnChangedFunction

template<typename ObjT , typename KeyT , typename TraitsT >
using castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::OnChangedFunction = std::function< void() >

Constructor & Destructor Documentation

◆ ObjectCacheBaseT()

template<typename ObjT , typename KeyT , typename TraitsT >
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{} 
)
inlineprotected

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).

◆ ~ObjectCacheBaseT()

template<typename ObjT , typename KeyT , typename TraitsT >
castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::~ObjectCacheBaseT ( )
inlineprotected

Destructor.

Member Function Documentation

◆ getEngine()

template<typename ObjT , typename KeyT , typename TraitsT >
Engine * castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::getEngine ( ) const
inline

◆ getObjectTypeName()

template<typename ObjT , typename KeyT , typename TraitsT >
castor::String const & castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::getObjectTypeName ( ) const
inline
Returns
The objects type name.

◆ mergeInto()

template<typename ObjT , typename KeyT , typename TraitsT >
void castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto ( ElementObjectCacheT destination)
inline

Friends And Related Function Documentation

◆ Scene

template<typename ObjT , typename KeyT , typename TraitsT >
friend class Scene
friend

Member Data Documentation

◆ m_attach

template<typename ObjT , typename KeyT , typename TraitsT >
ElementAttacherT castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_attach
protected

The object attacher.

◆ m_detach

template<typename ObjT , typename KeyT , typename TraitsT >
ElementDetacherT castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_detach
protected

The object detacher.

◆ m_engine

template<typename ObjT , typename KeyT , typename TraitsT >
Engine& castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_engine
protected

◆ m_merge

template<typename ObjT , typename KeyT , typename TraitsT >
ElementMergerT castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_merge
protected

◆ m_rootCameraNode

template<typename ObjT , typename KeyT , typename TraitsT >
SceneNodeWPtr castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_rootCameraNode
protected

The root node used only for cameras.

Referenced by castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto().

◆ m_rootNode

template<typename ObjT , typename KeyT , typename TraitsT >
SceneNodeWPtr castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_rootNode
protected

The root node.

◆ m_rootObjectNode

template<typename ObjT , typename KeyT , typename TraitsT >
SceneNodeWPtr castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::m_rootObjectNode
protected

The root node for every object other than camera.

Referenced by castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto().

◆ onChanged

template<typename ObjT , typename KeyT , typename TraitsT >
OnChanged castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::onChanged

The signal emitted when the content has changed.

Referenced by castor3d::ObjectCacheBaseT< ObjT, KeyT, TraitsT >::mergeInto().


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