/// <summary> /// The callable genes will be the source gene and all of the source gene's /// children and their children's children, etc. /// </summary> /// <param name="sourceGene"></param> /// <returns></returns> public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene) { var callableGenes = new List<IGEPGene>() { sourceGene }; foreach (IGEPGene childGene in sourceGene.GetChildGenes()) callableGenes.AddRange(this.GetCallableGenes(childGene)); return callableGenes; }
/// <summary> /// No callable genes will be returned. /// </summary> /// <param name="sourceGene"></param> /// <returns></returns> public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene) { return new IGEPGene[] {}; }
/// <summary> /// /// </summary> /// <param name="main">The Main() IGene that will be executed when this IChromosome /// is executed.</param> /// <param name="environment"></param> public GEPChromosome(IGEPEnvironment environment, IGEPGene main) : base(environment: environment, main:main) { }
public IGEPGene Add(IGEPGene gene) { gene.Parent = this; base.Add(gene); return gene; }
/// <summary> /// /// </summary> /// <param name="main">The Main() IGene that will be executed when this IChromosome /// is executed.</param> /// <param name="environment"></param> protected GEPChromosomeBase(IGEPEnvironment environment, IGEPGene main) { this.Main = main; this.Main.Parent = this; this.LocalGlobalRegistry = new Registry(identifier: environment.LocalGlobalRegistryIdentifier, registryType: RegistryType.LocalGlobal, readOnly: false); }
/// <summary> /// The callable genes will be the source gene and all of the source gene's immediate children. /// </summary> /// <param name="sourceGene"></param> /// <returns></returns> public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene) { var callableGenes = new List<IGEPGene>() { sourceGene }; callableGenes.AddRange(sourceGene.GetChildGenes().Cast<IGEPGene>()); return callableGenes; }
/// <summary> /// The callable genes will be all of the source gene's immediate children. /// </summary> /// <param name="sourceGene"></param> /// <returns></returns> public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene) { return sourceGene.GetChildGenes().Cast<IGEPGene>().ToList(); }