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.