protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory, IContentManager contentManager) { base.LoadContent(GraphicInfo, factory, contentManager); { SimpleModel simpleModel = new SimpleModel(factory, "Model//block"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Red), TextureType.DIFFUSE); BoxObject tmesh = new BoxObject(new Vector3(0), 1, 1, 1, 10, new Vector3(1000, 1, 1000), Matrix.Identity, MaterialDescription.DefaultBepuMaterial()); tmesh.isMotionLess = true; ForwardTransparenteShader shader = new ForwardTransparenteShader(); shader.TransparencyLevel = 0.2f; ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); } Simulator.setTimeStep(0.10f); Simulator.setAgentDefaults(15.0f, 25, 5.0f, 5.0f, 2.0f, new Vector3()); for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { SimpleModel simpleModel = new SimpleModel(factory, "Model//block"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.White), TextureType.DIFFUSE); GhostObject tmesh = new GhostObject(new Vector3(100 + j * 15, 5, i * 15), Matrix.Identity, new Vector3(1, 1, 1)); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); int id = Simulator.addAgent(tmesh.Position); RVOObject obj = new RVOObject(id, fmaterial, simpleModel, tmesh); obj.OnUpdate += new OnUpdate(obj_OnUpdate); /// dummy position update way =p this.World.AddObject(obj); } } this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo)); Picking p = new Picking(this, 1000); p.OnPickedLeftButton += new OnPicked(p_OnPickedLeftButton); }
static void setupScenario(RVOSimulator sim) { /* Specify the global time step of the simulation. */ sim.setTimeStep(0.125f); /* Specify the default parameters for agents that are subsequently added. */ sim.setAgentDefaults(15.0f, 10, 10.0f, 1.5f, 2.0f,new Vector3()); /* Add agents, specifying their start position, and store their goals on the opposite side of the environment. */ for (float a = 0; a < Math.PI; a += 0.1f) { float z = 100.0f * (float)Math.Cos(a); float r = 100.0f * (float)Math.Sin(a); for (int i = 0; i < r / 2.5f; ++i) { float x = r * (float)Math.Cos(i * 2.0f * (float)Math.PI / (r / 2.5f)); float y = r * (float)Math.Sin(i * 2.0f * (float)Math.PI / (r / 2.5f)); sim.addAgent(new Vector3(x, y, z)); goals.Add(sim.getAgentPosition(sim.getNumAgents() - 1)); } } }
static void setupScenario(RVOSimulator sim) { /* Specify the global time step of the simulation. */ sim.setTimeStep(0.25f); /* Specify the default parameters for agents that are subsequently added. */ sim.setAgentDefaults(15.0f, 10, 5.0f, 5.0f, 2.0f, 2.0f,new Vector2()); /* * Add agents, specifying their start position, and store their goals on the * opposite side of the environment. */ for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) { sim.addAgent(new Vector2(55.0f + i * 10.0f, 55.0f + j * 10.0f)); goals.Add(new Vector2(-75.0f, -75.0f)); sim.addAgent(new Vector2(-55.0f - i * 10.0f, 55.0f + j * 10.0f)); goals.Add(new Vector2(75.0f, -75.0f)); sim.addAgent(new Vector2(55.0f + i * 10.0f, -55.0f - j * 10.0f)); goals.Add(new Vector2(-75.0f, 75.0f)); sim.addAgent(new Vector2(-55.0f - i * 10.0f, -55.0f - j * 10.0f)); goals.Add(new Vector2(75.0f, 75.0f)); } } /* * Add (polygonal) obstacles, specifying their vertices in counterclockwise * order. */ List<Vector2> obstacle1 = new List<Vector2>(); List<Vector2> obstacle2= new List<Vector2>(); List<Vector2> obstacle3= new List<Vector2>(); List<Vector2> obstacle4= new List<Vector2>(); obstacle1.Add(new Vector2(-10.0f, 40.0f)); obstacle1.Add(new Vector2(-40.0f, 40.0f)); obstacle1.Add(new Vector2(-40.0f, 10.0f)); obstacle1.Add(new Vector2(-10.0f, 10.0f)); obstacle2.Add(new Vector2(10.0f, 40.0f)); obstacle2.Add(new Vector2(10.0f, 10.0f)); obstacle2.Add(new Vector2(40.0f, 10.0f)); obstacle2.Add(new Vector2(40.0f, 40.0f)); obstacle3.Add(new Vector2(10.0f, -40.0f)); obstacle3.Add(new Vector2(40.0f, -40.0f)); obstacle3.Add(new Vector2(40.0f, -10.0f)); obstacle3.Add(new Vector2(10.0f, -10.0f)); obstacle4.Add(new Vector2(-10.0f, -40.0f)); obstacle4.Add(new Vector2(-10.0f, -10.0f)); obstacle4.Add(new Vector2(-40.0f, -10.0f)); obstacle4.Add(new Vector2(-40.0f, -40.0f)); sim.addObstacle(obstacle1); sim.addObstacle(obstacle2); sim.addObstacle(obstacle3); sim.addObstacle(obstacle4); /* Process the obstacles so that they are accounted for in the simulation. */ sim.processObstacles(); }
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory, IContentManager contentManager) { base.LoadContent(GraphicInfo, factory, contentManager); { SimpleModel simpleModel = new SimpleModel(factory, "Model//block"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Red), TextureType.DIFFUSE); BoxObject tmesh = new BoxObject(new Vector3(0), 1, 1, 1, 10, new Vector3(1000, 1, 1000), Matrix.Identity, MaterialDescription.DefaultBepuMaterial()); tmesh.isMotionLess = true; ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); } Simulator.setTimeStep(0.25f); Simulator.setAgentDefaults(5.0f, 25, 10.0f, 25.0f, 2.0f, 4.0f, new Vector2(0)); for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { SimpleModel simpleModel = new SimpleModel(factory, "Model//block"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.White), TextureType.DIFFUSE); BoxObject tmesh = new BoxObject(new Vector3(100 + j * 5, 5, i * 5), 1, 1, 1, 10, new Vector3(1, 1, 1), Matrix.Identity, MaterialDescription.DefaultBepuMaterial()); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); int id = Simulator.addAgent(VectorUtils.ToVector2(tmesh.Position)); RVOObject obj = new RVOObject(id, fmaterial, simpleModel, tmesh); obj.OnUpdate += new OnUpdate(obj_OnUpdate); /// dummy position update way =p this.World.AddObject(obj); } } ///counterclockwise vertices Simulator.addObstacle( new List <Vector2>() { new Vector2(20, 20), new Vector2(40, 20), new Vector2(40, 40), new Vector2(40, 40), new Vector2(20, 40), new Vector2(20, 20), } ); Simulator.processObstacles(); ///obstacle { SimpleModel simpleModel = new SimpleModel(factory, "Model//block"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Yellow), TextureType.DIFFUSE); GhostObject tmesh = new GhostObject(new Vector3(30, 0, 30), Matrix.Identity, new Vector3(10)); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); } this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo)); Picking p = new Picking(this, 1000); p.OnPickedLeftButton += new OnPicked(p_OnPickedLeftButton); }