private bool SearchNode(Node NodeToSearch, Node NodeToFind)
{
if (NodeToSearch == null | NodeToFind == null) {
return false;
}
if (seenNodes.IndexOf(NodeToSearch) < 0) {
seenNodes.Add(NodeToSearch);
foreach (INodeConnection CurrentConnection in NodeToSearch.GetConnections()) {
if (NodeToSearch == CurrentConnection.NodeRemote) {
if (CurrentConnection.NodeLocal == NodeToFind) {
return true;
}
} else {
if (CurrentConnection.NodeRemote == NodeToFind) {
return true;
}
}
}
foreach (INodeConnection CurrentConnection in NodeToSearch.GetConnections()) {
if (NodeToSearch == CurrentConnection.NodeRemote) {
if (SearchNode(CurrentConnection.NodeLocal, NodeToFind) == true) {
return true;
}
} else {
if (SearchNode(CurrentConnection.NodeRemote, NodeToFind) == true) {
return true;
}
}
}
}
return false;
}