//TODO: This should store results in dna public static void AssignCameras(BrainRGBRecognizer[] recognizers, CameraColorRGB[] cameras) { if (cameras != null) { foreach (CameraColorRGB camera in cameras) { camera.NeuronContainerType = NeuronContainerType.Sensor; } } if (recognizers == null || recognizers.Length == 0) { return; } foreach (BrainRGBRecognizer recognizer in recognizers) { recognizer.SetCamera(null); } if (cameras == null || cameras.Length == 0) { return; } // Call linker LinkItem[] recogItems = recognizers. Select(o => new LinkItem(o.Position, o.Radius)). ToArray(); LinkItem[] cameraItems = cameras. Select(o => new LinkItem(o.Position, o.Radius)). ToArray(); Tuple<int, int>[] links = ItemLinker.Link_1_2(cameraItems, recogItems, new ItemLinker_OverflowArgs()); // Assign cameras foreach (var link in links) { recognizers[link.Item2].SetCamera(cameras[link.Item1]); cameras[link.Item1].NeuronContainerType = NeuronContainerType.None; // this recognizer will now be this camera's output } }