public object Clone()
{
GPCustomTreeNode clone = new GPCustomTreeNode();
// clone gene
clone.Gene = this.Gene.Clone();
// clone its children
if (this.Children != null)
{
clone.Children = new List<GPCustomTreeNode>();
// clone each child gene
foreach (GPCustomTreeNode node in Children)
{
clone.Children.Add((GPCustomTreeNode)node.Clone());
}
}
return clone;
}