This is the documentation for Enlighten.

class Geo TreeNode

template<typename>
class Geo::TreeNode

A generic tree structure, where each node contains an item by value.

Nodes are not copied after construction, but the SetValue function requires that the item type (_Ty) is assignable.

Functions

Name Description
~TreeNode()

Destructor.

AddChild(const _Ty &)

Add a child node with the given value 'val'.

DeleteChild(Geo::s32)

Delete the child with index 'idx', children of the node is assigned to this node at the end of the child array.

DeleteSubTree(Geo::s32)

Delete the child with index 'idx' and all nodes below this child.

GetChild(Geo::s32)

Get child with index 'idx', NULL if 'idx' is out of range.

GetChild(Geo::s32)

Get child with index 'idx', NULL if 'idx' is out of range.

GetDepth()

Get the depth of the node.

GetLeaves(Geo::GeoArray< const TreeNode< _Ty > * > &)

Fills in an array of all the leaf nodes underneath this node. Returns the total number of leaves in the resulting array.

GetLevelFromRoot(Geo::GeoArray< TreeNode< _Ty > * > &, Geo::s32)

Return an array of nodes at the given depth ordered from left to right in the tree.

GetLevelFromRoot(Geo::GeoArray< const TreeNode< _Ty > * > &, Geo::s32)

Return an array of nodes at the given depth ordered from left to right in the tree.

GetNumChildren()

Number of immediate children nodes.

GetNumInternalNodes()

Total number of internal nodes in the tree (i.e. not leaves)

GetNumLevels()

Get the number of levels in the tree.

GetNumNodes()

Total number of nodes in the tree.

GetNumNodes(Geo::s32)

Total number of nodes in a given level.

GetParent()

Get the parent node, NULL if this is the root.

GetParent()

Get the parent node, NULL if this is the root.

GetRoot()

Get the root of the tree.

GetRoot()

Get the root of the tree.

GetValue()

Get the value stored in the node.

GetValue()

Get the value stored in the node.

IsLeaf()

Returns whether this is a leaf node, i.e. has no children.

IsRoot()

Returns whether this is a root node, i.e. has no parent.

Load(Geo::IGeoInputStream &)

Load tree from disk.

NonCopyable(NonCopyable &&)

Defaulted to allow move.

operator=(NonCopyable &&)

Defaulted to allow move.

RemoveChild(Geo::s32)

Remove and return the child with index 'idx' from the tree.

Save(Geo::IGeoStream &)

Save tree to disk.

SetValue(const _Ty &)

Set the value stored in the node.

TreeNode()

Constructor.


Geo::TreeNode< _Ty >::~TreeNode


public: ~TreeNode()


Destructor.


TreeNode<_Ty>* Geo::TreeNode< _Ty >::AddChild


public: TreeNode< _Ty > * AddChild
(
    const _Ty & val
)


Add a child node with the given value 'val'.


bool Geo::TreeNode< _Ty >::DeleteChild


public: bool DeleteChild
(
    Geo::s32 idx
)


Delete the child with index 'idx', children of the node is assigned to this node at the end of the child array.


bool Geo::TreeNode< _Ty >::DeleteSubTree


public: bool DeleteSubTree
(
    Geo::s32 idx
)


Delete the child with index 'idx' and all nodes below this child.


const TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetChild


public: const TreeNode< _Ty > * GetChild
(
    Geo::s32 idx
) const


Get child with index 'idx', NULL if 'idx' is out of range.


TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetChild


public: TreeNode< _Ty > * GetChild
(
    Geo::s32 idx
)


Get child with index 'idx', NULL if 'idx' is out of range.


Geo::s32 Geo::TreeNode< _Ty >::GetDepth


public: Geo::s32 GetDepth() const


Get the depth of the node.


Geo::s32 Geo::TreeNode< _Ty >::GetLeaves


public: Geo::s32 GetLeaves
(
    Geo::GeoArray< const TreeNode< _Ty > * > & leaves
) const


Fills in an array of all the leaf nodes underneath this node. Returns the total number of leaves in the resulting array.


bool Geo::TreeNode< _Ty >::GetLevelFromRoot


protected: bool GetLevelFromRoot
(
    Geo::GeoArray< TreeNode< _Ty > * > & levelNodes,
    Geo::s32 level
)


Return an array of nodes at the given depth ordered from left to right in the tree.


bool Geo::TreeNode< _Ty >::GetLevelFromRoot


public: bool GetLevelFromRoot
(
    Geo::GeoArray< const TreeNode< _Ty > * > & levelNodes,
    Geo::s32 level
) const


Return an array of nodes at the given depth ordered from left to right in the tree.


Geo::s32 Geo::TreeNode< _Ty >::GetNumChildren


public: Geo::s32 GetNumChildren() const


Number of immediate children nodes.


Geo::s32 Geo::TreeNode< _Ty >::GetNumInternalNodes


public: Geo::s32 GetNumInternalNodes() const


Total number of internal nodes in the tree (i.e. not leaves)


Geo::s32 Geo::TreeNode< _Ty >::GetNumLevels


public: Geo::s32 GetNumLevels() const


Get the number of levels in the tree.


Geo::s32 Geo::TreeNode< _Ty >::GetNumNodes


public: Geo::s32 GetNumNodes() const


Total number of nodes in the tree.


Geo::s32 Geo::TreeNode< _Ty >::GetNumNodes


public: Geo::s32 GetNumNodes
(
    Geo::s32 level
) const


Total number of nodes in a given level.


const TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetParent


public: const TreeNode< _Ty > * GetParent() const


Get the parent node, NULL if this is the root.


TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetParent


public: TreeNode< _Ty > * GetParent()


Get the parent node, NULL if this is the root.


const TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetRoot


public: const TreeNode< _Ty > * GetRoot() const


Get the root of the tree.


TreeNode<_Ty>* Geo::TreeNode< _Ty >::GetRoot


public: TreeNode< _Ty > * GetRoot()


Get the root of the tree.


const _Ty& Geo::TreeNode< _Ty >::GetValue


public: const _Ty & GetValue() const


Get the value stored in the node.


_Ty& Geo::TreeNode< _Ty >::GetValue


public: _Ty & GetValue()


Get the value stored in the node.


bool Geo::TreeNode< _Ty >::IsLeaf


public: bool IsLeaf() const


Returns whether this is a leaf node, i.e. has no children.


bool Geo::TreeNode< _Ty >::IsRoot


public: bool IsRoot() const


Returns whether this is a root node, i.e. has no parent.


bool Geo::TreeNode< _Ty >::Load


public: bool Load
(
    Geo::IGeoInputStream & reader
)


Load tree from disk.


Geo::NonCopyable::NonCopyable


public: NonCopyable
(
    NonCopyable &&
)


Defaulted to allow move.


NonCopyable& Geo::NonCopyable::operator=


public: NonCopyable & operator=
(
    NonCopyable &&
)


Defaulted to allow move.


TreeNode<_Ty>* Geo::TreeNode< _Ty >::RemoveChild


public: TreeNode< _Ty > * RemoveChild
(
    Geo::s32 idx
)


Remove and return the child with index 'idx' from the tree.


bool Geo::TreeNode< _Ty >::Save


public: bool Save
(
    Geo::IGeoStream & writer
) const


Save tree to disk.


void Geo::TreeNode< _Ty >::SetValue


public: void SetValue
(
    const _Ty & val
)


Set the value stored in the node.


Geo::TreeNode< _Ty >::TreeNode


public: TreeNode()


Constructor.