12 #ifndef __D_NODE_HIERARCHY_H__
13 #define __D_NODE_HIERARCHY_H__
15 #include "dCoreStdafx.h"
18 #include "dContainersAlloc.h"
27 D_CORE_API
void Detach ();
39 dUnsigned64 GetNameID()
const;
41 void SetName(
const char*
const name);
67 void Attach (T*
const parent,
bool addFirst =
false);
70 T* GetParent ()
const;
71 T* GetSibling ()
const;
77 T* Find (dUnsigned64 nameCRC)
const;
78 T* Find (
const char*
const name)
const;
86 inline dNodeBaseHierarchy::dNodeBaseHierarchy ()
91 inline dNodeBaseHierarchy::dNodeBaseHierarchy (
const char*
const name)
98 inline void dNodeBaseHierarchy::Clear()
104 m_name = (
char*)
nullptr;
126 return Find (dCRC64 (name));
129 inline void dNodeBaseHierarchy::SetName(
const char*
const name)
132 m_nameID = dCRC64 (name);
135 inline dUnsigned64 dNodeBaseHierarchy::GetNameID()
const
140 inline const dString& dNodeBaseHierarchy::GetName()
const
178 dNodeBaseHierarchy::Attach(parent, addFirst);
184 dNodeBaseHierarchy::Detach ();
190 return (T*) dNodeBaseHierarchy::GetChild();
196 return (T*) dNodeBaseHierarchy::GetSibling ();
202 return (T*) dNodeBaseHierarchy::GetParent ();
209 return (T*) dNodeBaseHierarchy::GetRoot ();
216 return (T*) dNodeBaseHierarchy::GetFirst ();
222 return (T*) dNodeBaseHierarchy::GetLast ();
229 return (T*) dNodeBaseHierarchy::GetNext ();
235 return (T*) dNodeBaseHierarchy::GetPrev ();
242 return (T*) dNodeBaseHierarchy::Find (nameCRC);
248 return (T*) dNodeBaseHierarchy::Find (name);