ULIS  dev4.0.7
Utility Library for Imaging Systems
Public Types | Public Member Functions | Protected Member Functions | List of all members
TRoot< Type > Class Template Reference

Abstract Root.

Inheritance diagram for TRoot< Type >:

Public Types

using InnerType = Type
 
- Public Types inherited from TNode< Type >
using InnerType = Type
 
- Public Types inherited from TCallbackCapable< DelegateType, _ID >
using Delegate = DelegateType
 

Public Member Functions

 TRoot (tParent *iParent=nullptr, const TOnParentChanged< Type > &iParentChangedDelegate=TOnParentChanged< Type >(), const TOnSelfChanged< Type > &iSelfChangedDelegate=TOnSelfChanged< Type >(), const TOnNodeAdded< Type > &iNodeAddedDelegate=TOnNodeAdded< Type >(), const TOnNodeRemoved< Type > &iNodeRemovedDelegate=TOnNodeRemoved< Type >())
 
virtual ~TRoot () override
 
tSelfAddChild (tNode *iNode, uint64 iIndex=0xFFFFFFFFFFFFFFFF)
 
TArray< tNode * > & Children ()
 
const TArray< tNode * > & Children () const
 
void DeleteChild (int iIndex)
 
Type & operator[] (uint64 iIndex)
 
const Type & operator[] (uint64 iIndex) const
 
void Reset (tParent *iParent=nullptr, const TOnParentChanged< Type > &iParentChangedDelegate=TOnParentChanged< Type >(), const TOnNodeAdded< Type > &iNodeAddedDelegate=TOnNodeAdded< Type >(), const TOnNodeRemoved< Type > &iNodeRemovedDelegate=TOnNodeRemoved< Type >())
 
- Public Member Functions inherited from TNode< Type >
 TNode (const tParent *iParent=nullptr, const TOnParentChanged< Type > &iParentChangedDelegate=TOnParentChanged< Type >(), const TOnSelfChanged< Type > &iSelfChangedDelegate=TOnSelfChanged< Type >())
 
virtual ~TNode ()
 
Type & Def (std::function< void(Type &) > iFunc)
 
void NotifyChange () const
 
const tParentParent () const
 
Type & Self ()
 
const Type & Self () const
 
void SetParent (const tParent *iParent)
 
const tParentTopLevelParent () const
 
- Public Member Functions inherited from TCallbackCapable< DelegateType, _ID >
 TCallbackCapable (const DelegateType &iDelegate=DelegateType())
 
 TCallbackCapable (typename DelegateType::tFptr iDelegateFPTR)
 
const DelegateType & GetDelegate () const
 
template<typename ... Args>
void Invoke (Args ... args) const
 
void SetDelegate (const DelegateType &iDelegate)
 
void SetDelegate (const TCallbackCapable< DelegateType, _ID > &iOther)
 
void SetDelegate (typename DelegateType::tFptr iDelegateFPTR)
 

Protected Member Functions

virtual void InitFromParent (const tParent *iParent) override
 

Member Typedef Documentation

◆ InnerType

template<class Type>
using TRoot< Type >::InnerType = Type

Constructor & Destructor Documentation

◆ ~TRoot()

template<class Type>
virtual TRoot< Type >::~TRoot ( )
inlineoverridevirtual

◆ TRoot()

template<class Type>
TRoot< Type >::TRoot ( tParent iParent = nullptr,
const TOnParentChanged< Type > &  iParentChangedDelegate = TOnParentChanged< Type >(),
const TOnSelfChanged< Type > &  iSelfChangedDelegate = TOnSelfChanged< Type >(),
const TOnNodeAdded< Type > &  iNodeAddedDelegate = TOnNodeAdded< Type >(),
const TOnNodeRemoved< Type > &  iNodeRemovedDelegate = TOnNodeRemoved< Type >() 
)
inline

Member Function Documentation

◆ AddChild()

template<class Type>
tSelf& TRoot< Type >::AddChild ( tNode iNode,
uint64  iIndex = 0xFFFFFFFFFFFFFFFF 
)
inline

◆ Children() [1/2]

template<class Type>
TArray< tNode* >& TRoot< Type >::Children ( )
inline

◆ Children() [2/2]

template<class Type>
const TArray< tNode* >& TRoot< Type >::Children ( ) const
inline

◆ DeleteChild()

template<class Type>
void TRoot< Type >::DeleteChild ( int  iIndex)
inline

◆ InitFromParent()

template<class Type>
virtual void TRoot< Type >::InitFromParent ( const tParent iParent)
inlineoverrideprotectedvirtual

Reimplemented from TNode< Type >.

◆ operator[]() [1/2]

template<class Type>
Type& TRoot< Type >::operator[] ( uint64  iIndex)
inline

◆ operator[]() [2/2]

template<class Type>
const Type& TRoot< Type >::operator[] ( uint64  iIndex) const
inline

◆ Reset()

template<class Type>
void TRoot< Type >::Reset ( tParent iParent = nullptr,
const TOnParentChanged< Type > &  iParentChangedDelegate = TOnParentChanged< Type >(),
const TOnNodeAdded< Type > &  iNodeAddedDelegate = TOnNodeAdded< Type >(),
const TOnNodeRemoved< Type > &  iNodeRemovedDelegate = TOnNodeRemoved< Type >() 
)
inline