Beispiel #1
0
        protected override Node CreateAndAddNode(uint nodeIdentifier)
        {
            EvaluatableHiddenNode evaluatableHiddenNode = new EvaluatableHiddenNode(nodeIdentifier);

            HiddenNodes.Add(evaluatableHiddenNode);
            return(evaluatableHiddenNode);
        }
Beispiel #2
0
        protected virtual Node CreateAndAddNode(uint nodeIdentifier)
        {
            // Tries to find the node in the hidden nodes list, if not found returns a default.
            HiddenNode node = HiddenNodes.FirstOrDefault(n => n.NodeIdentifier == nodeIdentifier);

            // If the node is not equal to default return the given node.
            if (node != default)
            {
                return(node);
            }

            // If no node was found then create a hidden node.
            node = new HiddenNode(nodeIdentifier);

            // Add it to the hidden nodes list.
            HiddenNodes.Add(node);

            // Return the hidden node.
            return(node);
        }
Beispiel #3
0
        public Node GetNodeFromIdentifier(uint nodeIdentifier)
        {
            // Tries to find the first relation where the input node has the given identifier or return default.
            OrganismInputNode organismInputNode = Inputs.FirstOrDefault(n => n.InputNode.NodeIdentifier == nodeIdentifier);

            // if the organism input node is not default return the input node.
            if (organismInputNode != default)
            {
                return(organismInputNode.InputNode);
            }

            // Tries to find the first relation where the output node has the given identifier, else return default.
            OrganismOutputNode organismOutputNode = Outputs.FirstOrDefault(n => n.OutputNode.NodeIdentifier == nodeIdentifier);

            // if the organism output node is not default return the output node.
            if (organismOutputNode != default)
            {
                return(organismOutputNode.OutputNode);
            }

            // Tries to find a hidden node with the given identifier; otherwise, create and return a new hidden node.
            return(HiddenNodes.FirstOrDefault(node => node.NodeIdentifier == nodeIdentifier) ?? CreateAndAddNode(nodeIdentifier));
        }