/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package algoritmo;

import java.util.Vector;

/**
 *
 * @author Marília
 */
public class SensorDeVizinhanca extends Sensor{
    
    private ConjuntoDeAgentes idsVizinhosAtuais;
    private short contadorDeVizinhos;
    

	public SensorDeVizinhanca(){
        super();
		idsVizinhosAtuais = new ConjuntoDeAgentes();//new int[20];//vizinhanca detectavel max
        setSensorDiametro(400);//em metros (Rcomunicacao = 4*Rsensor)
        setCor(new java.awt.Color(50, 50, 255,150));//cor que representa o sensor(azul)
	}

	public ConjuntoDeAgentes sensorResponse(double[] posicao){
		
		ConjuntoDeAgentes agentes = EspacoDeBusca.getInstance().getAgentes();
        idsVizinhosAtuais.removerTodos();
		//Rotina de busca de vizinhos
        Agente vizinho;
        double[] posicaoVizinho;
        //contadorDeVizinhos=0;
        double raioDeAlcanceDoSensor = getSensorDiametro()/2;
        //for (int i = 0; i < agentes.getNumAgentes() && contadorDeVizinhos < idsVizinhosAtuais.length; i++) {
        for (int i = 0; i < agentes.getNumAgentes(); i++) {
             //Testa se agente i é vizinho
             vizinho = agentes.get(i);
             posicaoVizinho = vizinho.getPosicao();
             if( (Math.abs(posicaoVizinho[0] - posicao[0]) <= raioDeAlcanceDoSensor)
                && (Math.abs(posicaoVizinho[1] - posicao[1]) <= raioDeAlcanceDoSensor)
                && ((posicaoVizinho[0] != posicao[0]) || (posicaoVizinho[1] != posicao[1])) ) {

                 idsVizinhosAtuais.inserirAgente(agentes.get(i));
                //idsVizinhosAtuais[contadorDeVizinhos] = vizinho.getIdAgente();
                //contadorDeVizinhos++;
             }

        }//Fim da rotina de busca de vizinhos

        return idsVizinhosAtuais;
	}

    public ConjuntoDeAgentes getIdsVizinhosAtuais() {
        return idsVizinhosAtuais;
    }

    public void setIdsVizinhosAtuais(ConjuntoDeAgentes idsVizinhosAtuais) {
        this.idsVizinhosAtuais = idsVizinhosAtuais;
    }


}
