public override void iniciarCalcularRuta(Vector3 v_inicio, Vector3 v_meta, float v_angulo_coche, ObtenerMapa v_mapa, Parrilla v_parrilla, float p_peso, int tam_parrilla, int ancho, int largo, bool v_dibujar_casillas) { Vector3[] array_vertices; dibujar_casillas = v_dibujar_casillas; //cerrados = new Cerrados (ancho, largo); cerrados = new Cerrados(); sucesores = new List <Nodo> (); abiertos = new Abiertos(tam_parrilla, ancho, largo); //abiertos = new Abiertos (tam_parrilla); peso = p_peso; abiertos.getEmpty(); cerrados.getEmpty(); vector_inicio = v_inicio; vector_meta = v_meta; mapa = v_mapa; parrilla = v_parrilla; vertices = new HashSet <Vector3> (); array_vertices = mapa.getVertices(); foreach (Vector3 vertice in array_vertices) { vertices.Add(vertice); } vertices.Add(vector_meta); meta_encontrada = false; nodo_final = null; nodo_actual = null; nodo_inicio = new Nodo(); nodo_inicio.vector = vector_inicio; nodo_inicio.padre = null; nodo_inicio.coste = 0; abiertos.add(nodo_inicio); }
public override void iniciarCalcularRuta(Vector3 v_inicio, Vector3 v_meta, float v_angulo_coche, ObtenerMapa v_mapa, Parrilla v_parrilla, float p_peso, int tam_parrilla, int v_ancho, int v_largo, bool v_dibujar_casillas) { Vector3[] array_vertices; dibujar_casillas = v_dibujar_casillas; ancho = v_ancho; largo = v_largo; //cerrados = new Cerrados (ancho, largo); cerrados = new Cerrados(); sucesores = new List <Nodo> (); abiertos = new Abiertos(tam_parrilla, ancho, largo); //abiertos = new Abiertos (tam_parrilla); peso = p_peso; abiertos.getEmpty(); cerrados.getEmpty(); vector_inicio = v_inicio; vector_meta = v_meta; mapa = v_mapa; parrilla = v_parrilla; vertices = new HashSet <Vector3> (); array_vertices = mapa.getVertices(); foreach (Vector3 vertice in array_vertices) { vertices.Add(vertice); } vertices.Add(vector_meta); meta_encontrada = false; nodo_final = null; nodo_actual = null; nodo_inicio = new Nodo(); nodo_inicio.vector = vector_inicio; nodo_inicio.vector_hybrid = vector_inicio; nodo_inicio.angulo_hybrid = v_angulo_coche; nodo_inicio.padre = null; nodo_inicio.coste = 0; abiertos.add(nodo_inicio); mapa.setRadio(0.5f); // array_mapa_obstaculos = new int[ancho + 1, largo + 1, 1]; tiempo_inicio = Time.realtimeSinceStartup; crearMapaObstaculos(); tiempo_final = Time.realtimeSinceStartup; Debug.Log("Mapa de obstaculos creado en: " + (tiempo_final - tiempo_inicio) + " segs."); tiempo_inicio = Time.realtimeSinceStartup; array_mapa_distancias = crearMapaDistancias(); tiempo_final = Time.realtimeSinceStartup; Debug.Log("Mapa de Distancias creado en: " + (tiempo_final - tiempo_inicio) + " segs."); tiempo_inicio = Time.realtimeSinceStartup; array_heuristica_obstaculos = crearMapaHeuristicaObstaculos(); tiempo_final = Time.realtimeSinceStartup; Debug.Log("Mapa de heuristica de obstaculos creado en: " + (tiempo_final - tiempo_inicio) + " segs."); radio_giro_rad = ((Constantes.distancia / Constantes.coche_largo) * Mathf.Tan(Mathf.Deg2Rad * Constantes.coche_max_angulo)); radio_giro = Mathf.Rad2Deg * radio_giro_rad; Debug.Log("Radio giro rad: " + radio_giro_rad); Debug.Log("Radio giro: " + radio_giro); }