public WorkShop() { InitializeComponent(); var network = new Network(); var solver = new ODESolver(); var recorder = new Recorder(Simulator, RecordType.None, "Soul"); Simulator = new Simulator(0.01, 50, network, solver, recorder); IsReportProgress = true; CellNet = new CellNet(network); IsImaging = true; var transformGroup = new Transform3DGroup(); TranslateTransform = new TranslateTransform3D(); RotateTransform = new RotateTransform3D(new QuaternionRotation3D()); ScaleTransform = new ScaleTransform3D(); transformGroup.Children.Add(TranslateTransform); transformGroup.Children.Add(RotateTransform); transformGroup.Children.Add(ScaleTransform); ModelVisual.Transform = transformGroup; ActionType = ActionType.None; MouseLeftButtonDown += WorkShop_MouseLeftButtonDown; MouseLeftButtonUp += WorkShop_MouseLeftButtonUp; MouseRightButtonDown += WorkShop_MouseRightButtonDown; MouseRightButtonUp += WorkShop_MouseRightButtonUp; MouseMove += WorkShop_MouseMove; MouseWheel += WorkShop_MouseWheel; var n = new LI(-50, -48, 5, 2, -55); var net0 = Proliferation.Division(n, new Point3D(1, 10, 10), "InitPotential", new Randomizer(new RNG(), dimyend: 9, dimzend: 9, mean: -50.0, std: 5)); net0.ReSet(); //net0.ReShape(new Point3D(2, 10, 5)); var net1 = Proliferation.Division(n, new Point3D(1, 10, 10), "InitPotential", new Randomizer(new RNG(), dimyend: 9, dimzend: 9, mean: -50.0, std: 10)); net1.ReSet(); Projection.From_To(net0, net1, new WeightSynapse(null, 1), ProjectionType.OneToOne, 1.0); Projection.From_To(net0, net0, new WeightSynapse(null, -0.4), ProjectionType.AllToAll, 0.3); Projection.From_To(net1, net0, new WeightSynapse(null, -0.1), ProjectionType.AllToAll, 0.5); Projection.From_To(net1, net1, new WeightSynapse(null, 0.1), ProjectionType.OneToOne, 0.8); var net = new Network(); net.ChildNetworks.Add(net0.ID, net0); net.ChildNetworks.Add(net1.ID, net1); LoadNetwork(net); CellNet.ChildCellNet[net0.ID].Position = new Point3D(-15, 0, 15); }
public ICellNet Develop(INetwork network) { if (network == null) { return null; } var cellnet = new CellNet(network); for (int i = 0; i < cellnet.Network.Neurons.Count; i++) { var cell = Develop(cellnet.Network.Neurons.ElementAt(i).Value); cellnet.Cells.Add(cell.Neuron.ID, cell); cellnet.Mophology.Children.Add(cell.Mophology); } for (int i = 0; i < cellnet.Network.ChildNetworks.Count; i++) { var childcellnet = Develop(cellnet.Network.ChildNetworks.ElementAt(i).Value); cellnet.ChildCellNet.Add(childcellnet.Network.ID, childcellnet); cellnet.Mophology.Children.Add(childcellnet.Mophology); } return cellnet; }