public SimulatorVisualizer(string experimentName,string genome) { frame = new CoordinateFrame(0.0f, 0.0f, 5.0f, 0.0f); ExperimentWrapper wr = ExperimentWrapper.load(experimentName); experiment = wr.experiment; if(genome!=null) { experiment.loadGenome(genome); } experiment.initialize(); frame.syncFromEnvironment(experiment.environment); selected_POI = -1; bDrawFOV = false; bDrawFOV = false; bDrawLabel = true; displayAOIRectangle = false; displayEvolution = true; bEvolve = false; //by default we are not evolving, just displaying the CurrentEnvironment drawMode = drawModes.selectMode; //default mode is selecting and moving walls selectMode = selectModes.dragMode; display_tempwall = false; //no temporary wall exists at creation display_snap = false; //we have nothing to snap to at creation InitializeComponent(); this.Text = "MultiAgent-HyperSharpNEAT Simulator - " + experimentName; //set up double buffering this.SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true); }
private void MouseDownHandler(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) selectMode = selectModes.dragMode; if (e.Button == MouseButtons.Right) selectMode = selectModes.rotateMode; if (e.Button == MouseButtons.Middle) selectMode = selectModes.scaleMode; if (drawMode == drawModes.selectMode) { if (selected_robot != null) { bSelected_robot = true; display_snap = false; x1 = e.X; y1 = e.Y; } else if (selected_wall != null) { bSelected_wall = true; display_snap = false; x1 = e.X; y1 = e.Y; } else { bDragDisplay=true; x1 = e.X; y1 = e.Y; } } if (drawMode == drawModes.wallMode) { //try to avert some of the menu clicking business if (e.Y > 20) { x1 = e.X; y1 = e.Y; if (display_snap) { x1 = snapx; y1 = snapy; } display_tempwall = true; } } if (drawMode == drawModes.AOIMode) { float ox,oy; frame.convertFromDisplay(e.X,e.Y,out ox, out oy); experiment.environment.AOIRectangle = new Rectangle((int)ox,(int)oy, (int)ox, (int)oy); displayAOIRectangle = true; } }