public override void Execute() { foreach (MyNode child in Owner.SortedChildren) { if (child is MyAbstractLayer) { foreach (PropertyInfo memBlockInfo in MyNodeInfo.Get(child.GetType()).OwnedMemoryBlocks) { Object memBlock = memBlockInfo.GetValue(child); if (memBlock is MyTemporalMemoryBlock<float>) { (memBlock as MyTemporalMemoryBlock<float>).RunMode(); } } } } }
private void ConnectWorld() { if (Network != null && World != null) { if (Network.InputBranches != World.OutputBranches) { Network.InputBranches = World.OutputBranches; Network.InitInputNodes(); } for (int i = 0; i < World.OutputBranches; i++) { Network.GroupInputNodes[i].Name = ShortenMemoryBlockName(World.GetOutput(i).Name); } if (Network.OutputBranches != World.InputBranches) { Network.OutputBranches = World.InputBranches; Network.InitOutputNodes(); } for (int i = 0; i < World.InputBranches; i++) { Network.GroupOutputNodes[i].Name = ShortenMemoryBlockName(MyNodeInfo.Get(World.GetType()).InputBlocks[i].Name); } for (int i = 0; i < World.OutputBranches; i++) { MyConnection worldToNetwork = new MyConnection(World, Network, i, i); worldToNetwork.Connect(); } for (int i = 0; i < World.InputBranches; i++) { MyConnection networkToWorld = new MyConnection(Network, World, i, i); networkToWorld.Connect(); } } }