Ejemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        map = new PolyMapLoaderT3("polygMap1/x", "polygMap1/y", "polygMap1/goalPos", "polygMap1/startPos",
                                  "polygMap1/button", "polygMap1/customerPos");
        mapData = map.polyData;
        R       = 5;

        agents = new List <PolyAgent> ();
        for (int i = 0; i < mapData.start.Count; i++)
        {
            Vector3 start = mapData.start[i];
            Vector3 end   = mapData.end[i];
            agents.Add(new PolyAgent("Agent " + i, start, end, R, "point"));
            agents [i].agent.renderer.material.color = Color.blue;
            agents[i].model = gameObject.AddComponent <DynamicPointModel> ();
        }

        vrp = new VRPPL(mapData.customers, agents.Count);

        foreach (PolyAgent agent in agents)
        {
            List <Vector3> path = new List <Vector3> ();
            path.Add(agent.end);
            agent.model.SetPath(path, agent, mapData.lines);
            agent.model.StartCoroutineMove();
        }
    }
Ejemplo n.º 2
0
    void OnDrawGizmos()
    {
        map = new PolyMapLoaderT3("polygMap1/x", "polygMap1/y", "polygMap1/goalPos", "polygMap1/startPos",
                                  "polygMap1/button", "polygMap1/customerPos");

        if (map.polyData.nodes != null)
        {
            foreach (Vector3 node in map.polyData.nodes)
            {
                Gizmos.color = Color.blue;
                Gizmos.DrawCube(node, Vector3.one);
            }
            foreach (Line line in map.polyData.lines)
            {
                Gizmos.color = Color.black;
                Gizmos.DrawLine(line.point1, line.point2);
            }
        }

        Gizmos.color = Color.green;
        foreach (Vector3 v in map.polyData.start)
        {
            Gizmos.DrawCube(v, new Vector3(3, 1, 3));
        }
        Gizmos.color = Color.red;
        foreach (Vector3 v in map.polyData.end)
        {
            Gizmos.DrawCube(v, new Vector3(3, 1, 3));
        }
        Gizmos.color = Color.blue;
        foreach (Vector3 v in map.polyData.customers)
        {
            Gizmos.DrawCube(v, new Vector3(3, 1, 3));
        }
        if (agents != null)
        {
            Gizmos.color = Color.magenta;
            foreach (PolyAgent pagent in agents)
            {
                Gizmos.DrawSphere(pagent.agent.transform.position, R);
            }
        }
    }
Ejemplo n.º 3
0
    void Start()
    {
        map = new PolyMapLoaderT3("polygMap1/x", "polygMap1/y", "polygMap1/goalPos", "polygMap1/startPos",
                                  "polygMap1/button", "polygMap1/customerPos");
        polyData = map.polyData;

        graph         = new VGraph();
        walkableLines = new List <Line> ();

        // START VRP
        R      = 3;
        agents = new List <PolyAgent> ();
        for (int i = 0; i < polyData.start.Count; i++)
        {
            Vector3 start = polyData.start[i];
            Vector3 end   = polyData.end[i];
            agents.Add(new PolyAgent("Agent " + i, start, end, R, "car"));
            agents [i].agent.renderer.material.color = Color.black;
            agents[i].model = gameObject.AddComponent <DynamicCarModel> ();
            //agents[i].model = gameObject.AddComponent<DynamicPointModel> ();
        }

        List <Vector3> customers = new List <Vector3> ();       // for plotting

        foreach (Vector3 v in polyData.customers)
        {
            customers.Add(v);
        }
        vrp = new VRPPL(customers, agents.Count);


        // END VRP

        CreateObstacles();
        ConstructWalkableLines();
        CreateInterObstacleWalk();
        //	print ("Walkable lines: " + walkableLines.Count);
        //		graph.PrintGraph ();

        stopwatch.Start();
        ready = new List <PolyAgent> ();
    }
Ejemplo n.º 4
0
    void Start()
    {
        map = new PolyMapLoaderT3("polygMap1/x", "polygMap1/y", "polygMap1/goalPos", "polygMap1/startPos",
                                  "polygMap1/button", "polygMap1/customerPos");
        polyData = map.polyData;

        graph         = new VGraph();
        walkableLines = new List <Line> ();

        // START VRP
        R = 3;
        CreateObstacles();
        ConstructWalkableLines();
        CreateInterObstacleWalk();

        agents = new List <T5PolyAgent> ();
        for (int i = 0; i < polyData.start.Count; i++)
        {
            Vector3 start = polyData.start[i];
            Vector3 end   = polyData.end[i];
            agents.Add(new T5PolyAgent("Agent " + i, start, end, R, "car"));
            agents [i].agent.renderer.material.color = Color.black;

            agents[i].model = gameObject.AddComponent <T5DynCar> ();

            List <PolyNode> ppath = pathFinder.AStarSearch(start, end, graph);
            List <Vector3>  path  = new List <Vector3> ();
            foreach (PolyNode node in ppath)
            {
                path.Add(node.pos);
            }
            agents[i].model.SetPath(path, agents[i], new List <Line> ());
        }
        foreach (T5PolyAgent agent in agents)
        {
            agent.model.SetAgents(ref agents);
            agent.model.StartCoroutineMove();
        }
        stopwatch.Start();
        ready = new List <T5PolyAgent> ();
    }