/// <summary> /// Constructor for a ConnectionGene /// </summary> /// <param name="inNode"></param> /// <param name="outNode"></param> /// <param name="weight"></param> /// <param name="expressed"></param> /// <param name="innovation"></param> internal ConnectionGene(NodeGene inNode, NodeGene outNode, float weight, bool expressed = true, ulong innovation = 0) { Innovation = innovation == 0 ? InnovationFactory.GetConnectionInnovation() : innovation; In = inNode; Out = outNode; Weight = weight; Expressed = expressed; }
/// <summary> /// Checks whether a Node is part of this Connection (as either Input or Output) by Innovation-Number /// </summary> /// <param name="node">Node to Check for</param> /// <returns>True if <c ref="In">In</c> or <c ref="Out">Out</c> have an Equal Innovation-Number to <paramref name="node"/></returns> public bool HasNode(NodeGene node) { return(In.Equals(node) || Out.Equals(node)); }