/// <summary> /// Get all leafs that belongs to this factor tree node. /// This tree node may also be included in the result. /// </summary> /// <returns>All leaf tree node that belongs to this factor tree node.</returns> public FactorTreeNodeList GetAllLeafTreeNodes() { FactorTreeNodeList leaves = new FactorTreeNodeList(); if (Children.IsEmpty()) { leaves.Add(this); } else { foreach (IFactorTreeNode child in Children) { leaves.AddRange(child.GetAllLeafTreeNodes()); } } return(leaves); }