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.